diff --git a/urdf_parser_py/src/urdf_parser_py/urdf.py b/urdf_parser_py/src/urdf_parser_py/urdf.py
index ee025df7..8d1805c9 100644
--- a/urdf_parser_py/src/urdf_parser_py/urdf.py
+++ b/urdf_parser_py/src/urdf_parser_py/urdf.py
@@ -21,8 +21,8 @@ def check_valid(self):
assert self.xyz is not None or self.rpy is not None
xmlr.reflect(Pose, params = [
- xmlr.Attribute('rpy', 'vector3', False),
- xmlr.Attribute('xyz', 'vector3', False)
+ xmlr.Attribute('xyz', 'vector3', False),
+ xmlr.Attribute('rpy', 'vector3', False)
])
@@ -200,9 +200,9 @@ def __init__(self, mass = 0.0, inertia = None, origin=None):
self.origin = origin
xmlr.reflect(Inertial, params = [
+ origin_element,
xmlr.Element('mass', 'element_value'),
- xmlr.Element('inertia', Inertia, False),
- origin_element
+ xmlr.Element('inertia', Inertia, False)
])
@@ -227,17 +227,17 @@ def __init__(self, effort=None, velocity=None, lower=None, upper=None):
xmlr.reflect(JointLimit, params = [
xmlr.Attribute('effort', float),
- xmlr.Attribute('velocity', float),
xmlr.Attribute('lower', float),
- xmlr.Attribute('upper', float)
+ xmlr.Attribute('upper', float),
+ xmlr.Attribute('velocity', float)
])
#FIXME: we are missing __str__ here.
class JointMimic(xmlr.Object):
def __init__(self, joint_name=None, multiplier=None, offset=None):
- self.joint_name = joint_name
+ self.joint = joint_name
self.multiplier = multiplier
- self.offset = offset
+ self.offset = offset
xmlr.reflect(JointMimic, params = [
xmlr.Attribute('joint', str),
@@ -284,10 +284,10 @@ def check_valid(self):
xmlr.reflect(Joint, params = [
name_attribute,
xmlr.Attribute('type', str),
- xmlr.Element('parent', 'element_link'),
- xmlr.Element('child', 'element_link'),
origin_element,
xmlr.Element('axis', 'element_xyz', False),
+ xmlr.Element('parent', 'element_link'),
+ xmlr.Element('child', 'element_link'),
xmlr.Element('limit', JointLimit, False),
xmlr.Element('dynamics', JointDynamics, False),
xmlr.Element('safety_controller', SafetyController, False),
@@ -307,9 +307,9 @@ def __init__(self, name=None, visual=None, inertial=None, collision=None, origin
xmlr.reflect(Link, params = [
name_attribute,
origin_element,
+ xmlr.Element('inertial', Inertial, False),
xmlr.Element('visual', Visual, False),
- xmlr.Element('collision', Collision, False),
- xmlr.Element('inertial', Inertial, False)
+ xmlr.Element('collision', Collision, False)
])
diff --git a/urdf_parser_py/test/pelican_gen_mer.patch b/urdf_parser_py/test/pelican_gen_mer.patch
deleted file mode 100644
index 48e9946d..00000000
--- a/urdf_parser_py/test/pelican_gen_mer.patch
+++ /dev/null
@@ -1,130 +0,0 @@
---- /tmp/pelican.urdf 2013-04-11 09:24:30.325804322 -0500
-+++ /tmp/tmp.urdf 2013-04-11 09:26:50.185809508 -0500
-@@ -1,111 +1,78 @@
-+
-
--
--################################################################################
--# LINKS #
--################################################################################
--
-- ##### base_link ##############################################################
--
-
-
--
-+
-
--
-+
-
-
-
-
-
-
--
-- ##### base_footprint #########################################################
--
-
--
-- ##### legs ###################################################################
--
-
-
-+
-
--
-+
-
--
-
-
-
-
-
--
-
-
-+
-
--
-+
-
--
-
-
-
--
-
-
-+
-
--
-+
-
--
-
-
-
--
-
-
-+
-
--
-+
-
--
-
-
-
--
--################################################################################
--# JOINTS #
--################################################################################
--
-- ##### base_footprint #########################################################
--
-
-
-
--
-+
-
--
-- ##### legs ###################################################################
--
-
-
-
--
-+
-
--
-
-
-
--
-+
-
--
-
-
-
--
-+
-
--
-
-
-
--
-+
-
--
-
--
--
--
diff --git a/urdf_parser_py/test/pelican_test.sh b/urdf_parser_py/test/pelican_test.sh
deleted file mode 100755
index 8372438b..00000000
--- a/urdf_parser_py/test/pelican_test.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-roslaunch ./pelican_test.launch
-rosrun urdf_parser_py display_urdf -o /tmp/pelican_gen.urdf
-python -c 'import rospy; open("/tmp/pelicant.urdf").write(rospy.get_param("/robot_description"))'
-diff -u /tmp/pelican.urdf /tmp/pelican_gen.urdf
\ No newline at end of file
diff --git a/urdf_parser_py/test/pelican_test.launch b/urdf_parser_py/test/romeo_description.launch
similarity index 100%
rename from urdf_parser_py/test/pelican_test.launch
rename to urdf_parser_py/test/romeo_description.launch
diff --git a/urdf_parser_py/test/romeo_gen.patch b/urdf_parser_py/test/romeo_gen.patch
new file mode 100644
index 00000000..e0880e69
--- /dev/null
+++ b/urdf_parser_py/test/romeo_gen.patch
@@ -0,0 +1,2114 @@
+diff --git a/romeo_description/urdf/romeo.urdf b/tmp/romeo.urdf
+index c78c618..0138356 100644
+--- a/romeo_description/urdf/romeo.urdf
++++ b/tmp/romeo.urdf
+@@ -1,1585 +1,1450 @@
+
+-
+-
++
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+
+-
+
+
+-
++
+
+-
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+
+
+-
+-
+-
++
++
++
+
+
+-
++
+
+-
++
+
+
+
+-
++
+
+-
++
+
+
+
+-
+-
+-
+-
+-
+
++
+
+
+-
+
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+-
+
+
+
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+
+
+
+
+-
+-
++
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+
+
+
+
+-
+-
++
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+
+
+
+
+-
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+
+
+
+
+-
+-
++
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+
+
+
+
+-
+-
++
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
+-
+-
++
++
+
+
+-
+-
++
++
+
+-
+
++
+
+
+-
+
+
++
+
+
+-
+
+-
+-
+
++
+
+
+-
+
+
+-
+-
+
+-
+-
++
++
+
+
+-
++
+
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+
+-
+
+-
+-
++
++
+
+
+-
++
+
+
+-
+
+-
++
+
+
+
+
+-
+
+-
++
+
+
+
+
+-
+
diff --git a/urdf_parser_py/test/romeo_test.sh b/urdf_parser_py/test/romeo_test.sh
new file mode 100755
index 00000000..138c95bc
--- /dev/null
+++ b/urdf_parser_py/test/romeo_test.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+name=romeo
+orig="$(rospack find romeo_description)/urdf/$name.urdf"
+gen="/tmp/$name.urdf"
+patch="/tmp/$name.patch"
+
+rosrun urdf_parser_py display_urdf "$orig" -o "$gen"
+diff -u "$orig" "$gen" > "$patch"
\ No newline at end of file