Skip to content

Some bugs in using SDF extensions from URDF #232

@osrf-migration

Description

@osrf-migration

Original report (archived issue) by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


The urdf_gazebo_extensions.cc test uses urdf_gazebo_extensions.urdf to demonstrate the functionality for inserting SDF extension tags into URDF files with the <gazebo> tag, as described in the description of pull request #225. There are some issues with this functionality that I noticed while reviewing pr #506, and I'm working on illustrating them with a test in branch urdf_gazebo_extensions_fix.

A summary of the changes so far in that branch:

  • 36b9c67: remove joint23 since it creates a kinematic loop and makes the URDF invalid
  • 1c19e26: fix some expectations for joint12 since it is looking for elements in the wrong place
  • e07490a: add //joint/physics/ode/cfm and //joint/physics/ode/erp tags using the syntax described in pr #225 and expect the tags to be included in the same //joint/physics/ode block as the other extension tags, but it appears to be added in a duplicate //joint/physics/ode block, as shown below:
    <joint name='joint01' type='revolute'>
      <pose relative_to='link0'>0 0 -1 0 -0 1.5708</pose>
      <parent>link0</parent>
      <child>link1</child>
      <axis>
        <xyz>1 0 0</xyz>
        <limit>
          <lower>-1e+16</lower>
          <upper>1e+16</upper>
        </limit>
        <dynamics>
          <damping>1.1111</damping>
          <friction>2.2222</friction>
          <spring_reference>0.234</spring_reference>
          <spring_stiffness>0.567</spring_stiffness>
        </dynamics>
      </axis>
      <physics>
        <provide_feedback>1</provide_feedback>
        <ode>
          <implicit_spring_damper>0</implicit_spring_damper>
          <cfm_damping>0</cfm_damping>
          <fudge_factor>0.56789</fudge_factor>
          <limit>
            <cfm>123</cfm>
            <erp>0.987</erp>
          </limit>
          <provide_feedback>1</provide_feedback>
        </ode>
      </physics>
      <physics>
        <ode>
          <erp>1.5</erp>
          <cfm>10.5</cfm>
        </ode>
      </physics>
    </joint>

Sometimes you want extension tags to be inserted, and sometimes I think you want them to be merged into existing parameter blocks. I think we could improve the behavior here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    URDFURDF parsingbugSomething isn't workingmajor

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions