Skip to content

Commit 91be6cf

Browse files
committed
fixing ci after krrood update
1 parent cacd933 commit 91be6cf

5 files changed

Lines changed: 124 additions & 121 deletions

File tree

scripts/generate_orm.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@
1414
import krrood.entity_query_language.symbol_graph
1515
import trimesh
1616
from krrood.class_diagrams import ClassDiagram
17-
from krrood.entity_query_language.predicate import Predicate, HasTypes, HasType, Symbol
17+
from krrood.entity_query_language.predicate import HasTypes, HasType, Symbol
1818
from krrood.entity_query_language.symbol_graph import SymbolGraph
1919
from krrood.ormatic.dao import AlternativeMapping
2020
from krrood.ormatic.ormatic import ORMatic
21-
from krrood.ormatic.utils import classes_of_module, recursive_subclasses
21+
from krrood.ormatic.utils import classes_of_module
22+
from krrood.utils import recursive_subclasses
2223

2324
import semantic_digital_twin.orm.model
2425
import semantic_digital_twin.robots.abstract_robot
@@ -77,7 +78,7 @@
7778
}
7879

7980
# build the symbol graph
80-
symbol_graph = SymbolGraph.build()
81+
symbol_graph = SymbolGraph()
8182

8283
# collect all KRROOD classes
8384
all_classes |= {c.clazz for c in symbol_graph.class_diagram.wrapped_classes}

src/semantic_digital_twin/orm/ormatic_interface.py

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -188,11 +188,12 @@ class Point3MappingDAO(
188188
)
189189

190190

191-
class PredicateRelationDAO(
192-
Base, DataAccessObject[krrood.entity_query_language.symbol_graph.PredicateRelation]
191+
class PredicateClassRelationDAO(
192+
Base,
193+
DataAccessObject[krrood.entity_query_language.symbol_graph.PredicateClassRelation],
193194
):
194195

195-
__tablename__ = "PredicateRelationDAO"
196+
__tablename__ = "PredicateClassRelationDAO"
196197

197198
database_id: Mapped[builtins.int] = mapped_column(
198199
Integer, primary_key=True, use_existing_column=True
@@ -201,12 +202,12 @@ class PredicateRelationDAO(
201202
inferred: Mapped[builtins.bool] = mapped_column(use_existing_column=True)
202203

203204
source_id: Mapped[int] = mapped_column(
204-
ForeignKey("WrappedInstanceDAO.database_id", use_alter=True),
205+
ForeignKey("WrappedInstanceMappingDAO.database_id", use_alter=True),
205206
nullable=True,
206207
use_existing_column=True,
207208
)
208209
target_id: Mapped[int] = mapped_column(
209-
ForeignKey("WrappedInstanceDAO.database_id", use_alter=True),
210+
ForeignKey("WrappedInstanceMappingDAO.database_id", use_alter=True),
210211
nullable=True,
211212
use_existing_column=True,
212213
)
@@ -223,11 +224,17 @@ class PredicateRelationDAO(
223224
use_existing_column=True,
224225
)
225226

226-
source: Mapped[WrappedInstanceDAO] = relationship(
227-
"WrappedInstanceDAO", uselist=False, foreign_keys=[source_id], post_update=True
227+
source: Mapped[WrappedInstanceMappingDAO] = relationship(
228+
"WrappedInstanceMappingDAO",
229+
uselist=False,
230+
foreign_keys=[source_id],
231+
post_update=True,
228232
)
229-
target: Mapped[WrappedInstanceDAO] = relationship(
230-
"WrappedInstanceDAO", uselist=False, foreign_keys=[target_id], post_update=True
233+
target: Mapped[WrappedInstanceMappingDAO] = relationship(
234+
"WrappedInstanceMappingDAO",
235+
uselist=False,
236+
foreign_keys=[target_id],
237+
post_update=True,
231238
)
232239
predicate: Mapped[BinaryPredicateDAO] = relationship(
233240
"BinaryPredicateDAO",
@@ -623,14 +630,14 @@ class SymbolGraphMappingDAO(
623630
Integer, primary_key=True, use_existing_column=True
624631
)
625632

626-
instances: Mapped[typing.List[WrappedInstanceDAO]] = relationship(
627-
"WrappedInstanceDAO",
628-
foreign_keys="[WrappedInstanceDAO.symbolgraphmappingdao_instances_id]",
633+
instances: Mapped[typing.List[WrappedInstanceMappingDAO]] = relationship(
634+
"WrappedInstanceMappingDAO",
635+
foreign_keys="[WrappedInstanceMappingDAO.symbolgraphmappingdao_instances_id]",
629636
post_update=True,
630637
)
631-
predicate_relations: Mapped[typing.List[PredicateRelationDAO]] = relationship(
632-
"PredicateRelationDAO",
633-
foreign_keys="[PredicateRelationDAO.symbolgraphmappingdao_predicate_relations_id]",
638+
predicate_relations: Mapped[typing.List[PredicateClassRelationDAO]] = relationship(
639+
"PredicateClassRelationDAO",
640+
foreign_keys="[PredicateClassRelationDAO.symbolgraphmappingdao_predicate_relations_id]",
634641
post_update=True,
635642
)
636643

@@ -2535,29 +2542,25 @@ class WorldStateMappingDAO(
25352542
)
25362543

25372544

2538-
class WrappedInstanceDAO(
2539-
Base, DataAccessObject[krrood.entity_query_language.symbol_graph.WrappedInstance]
2545+
class WrappedInstanceMappingDAO(
2546+
Base,
2547+
DataAccessObject[krrood.entity_query_language.orm.model.WrappedInstanceMapping],
25402548
):
25412549

2542-
__tablename__ = "WrappedInstanceDAO"
2550+
__tablename__ = "WrappedInstanceMappingDAO"
25432551

25442552
database_id: Mapped[builtins.int] = mapped_column(
25452553
Integer, primary_key=True, use_existing_column=True
25462554
)
25472555

2548-
index: Mapped[typing.Optional[builtins.int]] = mapped_column(
2549-
use_existing_column=True
2550-
)
2551-
inferred: Mapped[builtins.bool] = mapped_column(use_existing_column=True)
2552-
25532556
symbolgraphmappingdao_instances_id: Mapped[typing.Optional[builtins.int]] = (
25542557
mapped_column(
25552558
ForeignKey("SymbolGraphMappingDAO.database_id", use_alter=True),
25562559
nullable=True,
25572560
use_existing_column=True,
25582561
)
25592562
)
2560-
instance_id: Mapped[int] = mapped_column(
2563+
instance_id: Mapped[typing.Optional[builtins.int]] = mapped_column(
25612564
ForeignKey("SymbolDAO.database_id", use_alter=True),
25622565
nullable=True,
25632566
use_existing_column=True,

src/semantic_digital_twin/robots/tracy.py

Lines changed: 90 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -45,102 +45,102 @@ def from_world(cls, world: World) -> Self:
4545
4646
:return: A Tracy robot semantic annotation.
4747
"""
48+
with world.modify_world():
49+
robot = cls(
50+
name=PrefixedName(name="tracy", prefix=world.name),
51+
root=world.get_body_by_name("table"),
52+
_world=world,
53+
)
4854

49-
robot = cls(
50-
name=PrefixedName(name="tracy", prefix=world.name),
51-
root=world.get_body_by_name("table"),
52-
_world=world,
53-
)
54-
55-
# Create left arm
56-
left_gripper_thumb = Finger(
57-
name=PrefixedName("left_gripper_thumb", prefix=robot.name.name),
58-
root=world.get_body_by_name("left_robotiq_85_left_knuckle_link"),
59-
tip=world.get_body_by_name("left_robotiq_85_left_finger_tip_link"),
60-
_world=world,
61-
)
55+
# Create left arm
56+
left_gripper_thumb = Finger(
57+
name=PrefixedName("left_gripper_thumb", prefix=robot.name.name),
58+
root=world.get_body_by_name("left_robotiq_85_left_knuckle_link"),
59+
tip=world.get_body_by_name("left_robotiq_85_left_finger_tip_link"),
60+
_world=world,
61+
)
6262

63-
left_gripper_finger = Finger(
64-
name=PrefixedName("left_gripper_finger", prefix=robot.name.name),
65-
root=world.get_body_by_name("left_robotiq_85_right_knuckle_link"),
66-
tip=world.get_body_by_name("left_robotiq_85_right_finger_tip_link"),
67-
_world=world,
68-
)
63+
left_gripper_finger = Finger(
64+
name=PrefixedName("left_gripper_finger", prefix=robot.name.name),
65+
root=world.get_body_by_name("left_robotiq_85_right_knuckle_link"),
66+
tip=world.get_body_by_name("left_robotiq_85_right_finger_tip_link"),
67+
_world=world,
68+
)
6969

70-
left_gripper = ParallelGripper(
71-
name=PrefixedName("left_gripper", prefix=robot.name.name),
72-
root=world.get_body_by_name("left_robotiq_85_base_link"),
73-
tool_frame=world.get_body_by_name("l_gripper_tool_frame"),
74-
front_facing_orientation=Quaternion(0.5, 0.5, 0.5, 0.5),
75-
front_facing_axis=Vector3(0, 0, 1),
76-
thumb=left_gripper_thumb,
77-
finger=left_gripper_finger,
78-
_world=world,
79-
)
80-
left_arm = Arm(
81-
name=PrefixedName("left_arm", prefix=robot.name.name),
82-
root=world.get_body_by_name("table"),
83-
tip=world.get_body_by_name("left_wrist_3_link"),
84-
manipulator=left_gripper,
85-
_world=world,
86-
)
70+
left_gripper = ParallelGripper(
71+
name=PrefixedName("left_gripper", prefix=robot.name.name),
72+
root=world.get_body_by_name("left_robotiq_85_base_link"),
73+
tool_frame=world.get_body_by_name("l_gripper_tool_frame"),
74+
front_facing_orientation=Quaternion(0.5, 0.5, 0.5, 0.5),
75+
front_facing_axis=Vector3(0, 0, 1),
76+
thumb=left_gripper_thumb,
77+
finger=left_gripper_finger,
78+
_world=world,
79+
)
80+
left_arm = Arm(
81+
name=PrefixedName("left_arm", prefix=robot.name.name),
82+
root=world.get_body_by_name("table"),
83+
tip=world.get_body_by_name("left_wrist_3_link"),
84+
manipulator=left_gripper,
85+
_world=world,
86+
)
8787

88-
robot.add_arm(left_arm)
88+
robot.add_arm(left_arm)
8989

90-
right_gripper_thumb = Finger(
91-
name=PrefixedName("right_gripper_thumb", prefix=robot.name.name),
92-
root=world.get_body_by_name("right_robotiq_85_left_knuckle_link"),
93-
tip=world.get_body_by_name("right_robotiq_85_left_finger_tip_link"),
94-
_world=world,
95-
)
96-
right_gripper_finger = Finger(
97-
name=PrefixedName("right_gripper_finger", prefix=robot.name.name),
98-
root=world.get_body_by_name("right_robotiq_85_right_knuckle_link"),
99-
tip=world.get_body_by_name("right_robotiq_85_right_finger_tip_link"),
100-
_world=world,
101-
)
102-
right_gripper = ParallelGripper(
103-
name=PrefixedName("right_gripper", prefix=robot.name.name),
104-
root=world.get_body_by_name("right_robotiq_85_base_link"),
105-
tool_frame=world.get_body_by_name("r_gripper_tool_frame"),
106-
front_facing_orientation=Quaternion(0.5, 0.5, 0.5, 0.5),
107-
front_facing_axis=Vector3(0, 0, 1),
108-
thumb=right_gripper_thumb,
109-
finger=right_gripper_finger,
110-
_world=world,
111-
)
112-
right_arm = Arm(
113-
name=PrefixedName("right_arm", prefix=robot.name.name),
114-
root=world.get_body_by_name("table"),
115-
tip=world.get_body_by_name("right_wrist_3_link"),
116-
manipulator=right_gripper,
117-
_world=world,
118-
)
119-
robot.add_arm(right_arm)
120-
121-
camera = Camera(
122-
name=PrefixedName("camera", prefix=robot.name.name),
123-
root=world.get_body_by_name("camera_link"),
124-
forward_facing_axis=Vector3(0, 0, 1),
125-
field_of_view=FieldOfView(horizontal_angle=1.047, vertical_angle=0.785),
126-
minimal_height=0.8,
127-
maximal_height=1.7,
128-
_world=world,
129-
)
90+
right_gripper_thumb = Finger(
91+
name=PrefixedName("right_gripper_thumb", prefix=robot.name.name),
92+
root=world.get_body_by_name("right_robotiq_85_left_knuckle_link"),
93+
tip=world.get_body_by_name("right_robotiq_85_left_finger_tip_link"),
94+
_world=world,
95+
)
96+
right_gripper_finger = Finger(
97+
name=PrefixedName("right_gripper_finger", prefix=robot.name.name),
98+
root=world.get_body_by_name("right_robotiq_85_right_knuckle_link"),
99+
tip=world.get_body_by_name("right_robotiq_85_right_finger_tip_link"),
100+
_world=world,
101+
)
102+
right_gripper = ParallelGripper(
103+
name=PrefixedName("right_gripper", prefix=robot.name.name),
104+
root=world.get_body_by_name("right_robotiq_85_base_link"),
105+
tool_frame=world.get_body_by_name("r_gripper_tool_frame"),
106+
front_facing_orientation=Quaternion(0.5, 0.5, 0.5, 0.5),
107+
front_facing_axis=Vector3(0, 0, 1),
108+
thumb=right_gripper_thumb,
109+
finger=right_gripper_finger,
110+
_world=world,
111+
)
112+
right_arm = Arm(
113+
name=PrefixedName("right_arm", prefix=robot.name.name),
114+
root=world.get_body_by_name("table"),
115+
tip=world.get_body_by_name("right_wrist_3_link"),
116+
manipulator=right_gripper,
117+
_world=world,
118+
)
119+
robot.add_arm(right_arm)
120+
121+
camera = Camera(
122+
name=PrefixedName("camera", prefix=robot.name.name),
123+
root=world.get_body_by_name("camera_link"),
124+
forward_facing_axis=Vector3(0, 0, 1),
125+
field_of_view=FieldOfView(horizontal_angle=1.047, vertical_angle=0.785),
126+
minimal_height=0.8,
127+
maximal_height=1.7,
128+
_world=world,
129+
)
130130

131-
# Probably should be classified as "Neck", as that implies that i can move.
132-
neck = Neck(
133-
name=PrefixedName("neck", prefix=robot.name.name),
134-
sensors={camera},
135-
root=world.get_body_by_name("camera_pole"),
136-
tip=world.get_body_by_name("camera_link"),
137-
_world=world,
138-
)
131+
# Probably should be classified as "Neck", as that implies that i can move.
132+
neck = Neck(
133+
name=PrefixedName("neck", prefix=robot.name.name),
134+
sensors={camera},
135+
root=world.get_body_by_name("camera_pole"),
136+
tip=world.get_body_by_name("camera_link"),
137+
_world=world,
138+
)
139139

140-
robot.add_kinematic_chain(neck)
141-
world.add_semantic_annotation(robot, exists_ok=True)
140+
robot.add_kinematic_chain(neck)
141+
world.add_semantic_annotation(robot, exists_ok=True)
142142

143-
vel_limits = defaultdict(lambda: 0.2)
144-
robot.tighten_dof_velocity_limits_of_1dof_connections(new_limits=vel_limits)
143+
vel_limits = defaultdict(lambda: 0.2)
144+
robot.tighten_dof_velocity_limits_of_1dof_connections(new_limits=vel_limits)
145145

146-
return robot
146+
return robot

src/semantic_digital_twin/testing.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import threading
33
import time
44

5+
from krrood.entity_query_language.symbol_graph import SymbolGraph
56
from krrood.entity_query_language.symbolic import Variable
67
from typing_extensions import Tuple
78

@@ -275,10 +276,7 @@ def cleanup_after_test():
275276
# Setup: runs before each test
276277
yield
277278
# Teardown: runs after each test
278-
for c in Variable._cache_.values():
279-
c.clear()
280-
Variable._cache_.clear()
281-
279+
SymbolGraph().clear()
282280

283281
@pytest.fixture()
284282
def kitchen_world():

test/test_semantic_annotations/test_semantic_annotations.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ def test_handle_semantic_annotation_eql(apartment_world):
133133
with rule_mode():
134134
body = let(
135135
type_=Body,
136+
domain=apartment_world.bodies
136137
)
137138
query = infer(entity(Handle(body=body), in_("handle", body.name.name.lower())))
138139

0 commit comments

Comments
 (0)