Skip to content

Commit a4b9578

Browse files
committed
Add urdf tests
1 parent f8df54c commit a4b9578

File tree

4 files changed

+308
-2
lines changed

4 files changed

+308
-2
lines changed

src/ui/urdf.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,9 +213,9 @@ function joint_selector(jointtype, link1, link2, T;
213213
elseif jointtype == "floating"
214214
joint = EqualityConstraint(Floating(link1, link2), name=name)
215215
elseif jointtype == "ball"
216-
joint = EqualityConstraint(Spherical(plink, clink; p1=p1, p2=p2, qoffset = qoffset), name=name)
216+
joint = EqualityConstraint(Spherical(link1, link2; p1=p1, p2=p2, qoffset = qoffset), name=name)
217217
elseif jointtype == "fixedorientation"
218-
joint = EqualityConstraint(FixedOrientation(plink, clink; qoffset = qoffset), name=name)
218+
joint = EqualityConstraint(FixedOrientation(link1, link2; qoffset = qoffset), name=name)
219219
elseif jointtype == "cylindrical"
220220
joint = EqualityConstraint(Cylindrical(link1, link2, axis; p1=p1, p2=p2, qoffset = qoffset), name=name)
221221
elseif jointtype == "cylindricalfree"

test/runtests.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ include("initialization/initialization_test.jl")
1818
include("ui_test.jl")
1919
end
2020

21+
@safetestset "URDF Tests" begin
22+
include("urdf_test.jl")
23+
end
24+
2125
@safetestset "Optionals Tests" begin
2226
include("optionals_test.jl")
2327
end

test/urdf_test.jl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
using ConstrainedDynamics
2+
3+
Mechanism("urdf_test.urdf", floating=false)
4+
@test true
5+
6+
Mechanism("urdf_test.urdf", floating=true)
7+
@test true

test/urdf_test.urdf

Lines changed: 295 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,295 @@
1+
<?xml version="1.0"?>
2+
3+
<robot name="Test">
4+
<link name="base_link">
5+
</link>
6+
7+
<link name="revolute_link">
8+
<inertial>
9+
<origin xyz="0 0 0" rpy="0 0 0" />
10+
<mass value="1" />
11+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1" />
12+
</inertial>
13+
<visual>
14+
<origin xyz="0 0 0" rpy="0 0. 0." />
15+
<geometry>
16+
<box size="1 1 1" />
17+
</geometry>
18+
<material name="green">
19+
<color rgba="1 0 1 1" />
20+
</material>
21+
</visual>
22+
</link>
23+
24+
<link name="continuous_link">
25+
<inertial>
26+
<origin xyz="0 0 0" rpy="0 0 0" />
27+
<mass value="1" />
28+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1" />
29+
</inertial>
30+
<visual>
31+
<origin xyz="0 0 0" rpy="0 0. 0." />
32+
<geometry>
33+
<box size="1 1 1" />
34+
</geometry>
35+
<material name="green">
36+
<color rgba="1 0 1 1" />
37+
</material>
38+
</visual>
39+
</link>
40+
41+
<link name="prismatic_link">
42+
<inertial>
43+
<origin xyz="0 0 0" rpy="0 0 0" />
44+
<mass value="1" />
45+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1" />
46+
</inertial>
47+
<visual>
48+
<origin xyz="0 0 0" rpy="0 0. 0." />
49+
<geometry>
50+
<box size="1 1 1" />
51+
</geometry>
52+
<material name="green">
53+
<color rgba="1 0 1 1" />
54+
</material>
55+
</visual>
56+
</link>
57+
58+
<link name="planar_link">
59+
<inertial>
60+
<origin xyz="0 0 0" rpy="0 0 0" />
61+
<mass value="1" />
62+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1" />
63+
</inertial>
64+
<visual>
65+
<origin xyz="0 0 0" rpy="0 0. 0." />
66+
<geometry>
67+
<box size="1 1 1" />
68+
</geometry>
69+
<material name="green">
70+
<color rgba="1 0 1 1" />
71+
</material>
72+
</visual>
73+
</link>
74+
75+
<link name="planarfree_link">
76+
<inertial>
77+
<origin xyz="0 0 0" rpy="0 0 0" />
78+
<mass value="1" />
79+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1" />
80+
</inertial>
81+
<visual>
82+
<origin xyz="0 0 0" rpy="0 0. 0." />
83+
<geometry>
84+
<box size="1 1 1" />
85+
</geometry>
86+
<material name="green">
87+
<color rgba="1 0 1 1" />
88+
</material>
89+
</visual>
90+
</link>
91+
92+
<link name="fixed_link">
93+
<inertial>
94+
<origin xyz="0 0 0" rpy="0 0 0" />
95+
<mass value="1" />
96+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1" />
97+
</inertial>
98+
<visual>
99+
<origin xyz="0 0 0" rpy="0 0. 0." />
100+
<geometry>
101+
<box size="1 1 1" />
102+
</geometry>
103+
<material name="green">
104+
<color rgba="1 0 1 1" />
105+
</material>
106+
</visual>
107+
</link>
108+
109+
<link name="floating_link">
110+
<inertial>
111+
<origin xyz="0 0 0" rpy="0 0 0" />
112+
<mass value="1" />
113+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1" />
114+
</inertial>
115+
<visual>
116+
<origin xyz="0 0 0" rpy="0 0. 0." />
117+
<geometry>
118+
<box size="1 1 1" />
119+
</geometry>
120+
<material name="green">
121+
<color rgba="1 0 1 1" />
122+
</material>
123+
</visual>
124+
</link>
125+
126+
<link name="ball_link">
127+
<inertial>
128+
<origin xyz="0 0 0" rpy="0 0 0" />
129+
<mass value="1" />
130+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1" />
131+
</inertial>
132+
<visual>
133+
<origin xyz="0 0 0" rpy="0 0. 0." />
134+
<geometry>
135+
<box size="1 1 1" />
136+
</geometry>
137+
<material name="green">
138+
<color rgba="1 0 1 1" />
139+
</material>
140+
</visual>
141+
</link>
142+
143+
<link name="fixedorientation_link">
144+
<inertial>
145+
<origin xyz="0 0 0" rpy="0 0 0" />
146+
<mass value="1" />
147+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1" />
148+
</inertial>
149+
<visual>
150+
<origin xyz="0 0 0" rpy="0 0. 0." />
151+
<geometry>
152+
<box size="1 1 1" />
153+
</geometry>
154+
<material name="green">
155+
<color rgba="1 0 1 1" />
156+
</material>
157+
</visual>
158+
</link>
159+
160+
<link name="cylindrical_link">
161+
<inertial>
162+
<origin xyz="0 0 0" rpy="0 0 0" />
163+
<mass value="1" />
164+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1" />
165+
</inertial>
166+
<visual>
167+
<origin xyz="0 0 0" rpy="0 0. 0." />
168+
<geometry>
169+
<box size="1 1 1" />
170+
</geometry>
171+
<material name="green">
172+
<color rgba="1 0 1 1" />
173+
</material>
174+
</visual>
175+
</link>
176+
177+
<link name="cylindricalfree_link">
178+
<inertial>
179+
<origin xyz="0 0 0" rpy="0 0 0" />
180+
<mass value="1" />
181+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1" />
182+
</inertial>
183+
<visual>
184+
<origin xyz="0 0 0" rpy="0 0. 0." />
185+
<geometry>
186+
<box size="1 1 1" />
187+
</geometry>
188+
<material name="green">
189+
<color rgba="1 0 1 1" />
190+
</material>
191+
</visual>
192+
</link>
193+
194+
<link name="planaraxis_link">
195+
<inertial>
196+
<origin xyz="0 0 0" rpy="0 0 0" />
197+
<mass value="1" />
198+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1" />
199+
</inertial>
200+
<visual>
201+
<origin xyz="0 0 0" rpy="0 0. 0." />
202+
<geometry>
203+
<box size="1 1 1" />
204+
</geometry>
205+
<material name="green">
206+
<color rgba="1 0 1 1" />
207+
</material>
208+
</visual>
209+
</link>
210+
211+
212+
<joint name="revolute_joint" type="revolute">
213+
<parent link="base_link" />
214+
<child link="revolute_link" />
215+
<origin rpy="0 0 0" xyz="0 0 0" />
216+
<axis xyz="0 0 0" />
217+
</joint>
218+
219+
<joint name="continuous_joint" type="continuous">
220+
<parent link="base_link" />
221+
<child link="continuous_link" />
222+
<origin rpy="0 0 0" xyz="0 0 0" />
223+
<axis xyz="0 0 0" />
224+
</joint>
225+
226+
<joint name="prismatic_joint" type="prismatic">
227+
<parent link="base_link" />
228+
<child link="prismatic_link" />
229+
<origin rpy="0 0 0" xyz="0 0 0" />
230+
<axis xyz="0 0 0" />
231+
</joint>
232+
233+
<joint name="planar_joint" type="planar">
234+
<parent link="base_link" />
235+
<child link="planar_link" />
236+
<origin rpy="0 0 0" xyz="0 0 0" />
237+
<axis xyz="0 0 0" />
238+
</joint>
239+
240+
<joint name="planarfree_joint" type="planarfree">
241+
<parent link="base_link" />
242+
<child link="planarfree_link" />
243+
<origin rpy="0 0 0" xyz="0 0 0" />
244+
<axis xyz="0 0 0" />
245+
</joint>
246+
247+
<joint name="fixed_joint" type="fixed">
248+
<parent link="base_link" />
249+
<child link="fixed_link" />
250+
<origin rpy="0 0 0" xyz="0 0 0" />
251+
<axis xyz="0 0 0" />
252+
</joint>
253+
254+
<joint name="floating_joint" type="floating">
255+
<parent link="base_link" />
256+
<child link="floating_link" />
257+
<origin rpy="0 0 0" xyz="0 0 0" />
258+
<axis xyz="0 0 0" />
259+
</joint>
260+
261+
<joint name="ball_joint" type="ball">
262+
<parent link="base_link" />
263+
<child link="ball_link" />
264+
<origin rpy="0 0 0" xyz="0 0 0" />
265+
<axis xyz="0 0 0" />
266+
</joint>
267+
268+
<joint name="fixedorientation_joint" type="fixedorientation">
269+
<parent link="base_link" />
270+
<child link="fixedorientation_link" />
271+
<origin rpy="0 0 0" xyz="0 0 0" />
272+
<axis xyz="0 0 0" />
273+
</joint>
274+
275+
<joint name="cylindrical_joint" type="cylindrical">
276+
<parent link="base_link" />
277+
<child link="cylindrical_link" />
278+
<origin rpy="0 0 0" xyz="0 0 0" />
279+
<axis xyz="0 0 0" />
280+
</joint>
281+
282+
<joint name="cylindricalfree_joint" type="cylindricalfree">
283+
<parent link="base_link" />
284+
<child link="cylindricalfree_link" />
285+
<origin rpy="0 0 0" xyz="0 0 0" />
286+
<axis xyz="0 0 0" />
287+
</joint>
288+
289+
<joint name="planaraxis_joint" type="planaraxis">
290+
<parent link="base_link" />
291+
<child link="planaraxis_link" />
292+
<origin rpy="0 0 0" xyz="0 0 0" />
293+
<axis xyz="0 0 0" />
294+
</joint>
295+
</robot>

0 commit comments

Comments
 (0)