Skip to content

urdfdom_py transmission issue #90

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
drfenixion opened this issue Mar 24, 2025 · 0 comments
Open

urdfdom_py transmission issue #90

drfenixion opened this issue Mar 24, 2025 · 0 comments

Comments

@drfenixion
Copy link

drfenixion commented Mar 24, 2025

Looks like urdfdom and urdfdom_py are parsers with different behaviour and that should not be so.

I have issue with transmission what was fixed in ros/urdfdom#36 (comment)

problem urdf is:

  <transmission name="r_wrist_trans" type="pr2_mechanism_model/WristTransmission">
    <rightActuator mechanicalReduction="60.1714285714" name="r_wrist_r_motor"/>
    <leftActuator mechanicalReduction="60.1714285714" name="r_wrist_l_motor"/>
    <flexJoint mechanicalReduction="-1.0" name="r_wrist_flex_joint"/>
    <rollJoint mechanicalReduction="1.0" name="r_wrist_roll_joint"/>
  </transmission>

I see matches of needed tags (rightActuator) https://github.com/ros/urdfdom/blob/3f6bf9a608065464bb6c2828af6e96c8f577f2bf/xsd/urdf.xsd#L247 and therefore urdfdom should be ok with it (i did not tested)

but urdfdom_py leads to error and i dont see any matches of rightActuator https://github.com/search?q=repo%3Aros%2Furdf_parser_py%20rightActuator&type=code Looks like urdfdom_py cant work with it.

Error got by urdf_parser_py with urdf with that transmission.

  File "/home/user/.local/share/FreeCAD/Mod/freecad.robotcad/freecad/cross/urdf_loader.py", line 99, in load_from_file
    robot = Robot.from_xml_string(
            ^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/ros/jazzy/lib/python3.12/site-packages/urdf_parser_py/xml_reflection/core.py", line 612, in from_xml_string
    return cls.from_xml(node, path)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/ros/jazzy/lib/python3.12/site-packages/urdf_parser_py/xml_reflection/core.py", line 606, in from_xml
    return cur_type.from_xml(node, path)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/ros/jazzy/lib/python3.12/site-packages/urdf_parser_py/xml_reflection/core.py", line 228, in from_xml
    obj.read_xml(node, path)
  File "/opt/ros/jazzy/lib/python3.12/site-packages/urdf_parser_py/xml_reflection/core.py", line 594, in read_xml
    self.XML_REFL.set_from_xml(self, node, path)
  File "/opt/ros/jazzy/lib/python3.12/site-packages/urdf_parser_py/xml_reflection/core.py", line 509, in set_from_xml
    element.add_from_xml(obj, child, element_path)
  File "/opt/ros/jazzy/lib/python3.12/site-packages/urdf_parser_py/xml_reflection/core.py", line 386, in add_from_xml
    value = self.value_type.from_xml(node, path)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/ros/jazzy/lib/python3.12/site-packages/urdf_parser_py/xml_reflection/core.py", line 279, in from_xml
    raise ParseError(Exception(out), path)

ParseError in /robot[@name='pr2']/transmission[@name='r_wrist_trans']:
Could not perform duck-typed parsing.
Value Type: <class 'urdf_parser_py.urdf.Transmission'>
Exception: ParseError in /robot[@name='pr2']/transmission[@name='r_wrist_trans']:
Required element not set in XML: type
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant