Skip to content

The ur_macro.srdf.xacro macro has no prefix parameter - breaks multi-robot setups #1688

@pawelir

Description

@pawelir

Environment

  • ROS 2 Jazzy
  • ros-jazzy-ur-moveit-config version 3.7.0

Description

The srdf/ur_macro.srdf.xacro is declared with an empty params list:

  <xacro:macro name="ur_srdf" params="">

All group names, group state names, and link names in the macro body are hard-coded without any prefix substitution (e.g. group name="ur_manipulator", joint name="elbow_joint").

This makes the macro unusable in multi-robot setups where a tf_prefix is needed to namespace each robot's joints and planning groups independently.

Expected behaviour

The macro should accept a prefix parameter (as it did in the Humble-era version of the package) so that all joint names, group names, and collision entries can be namespaced:

  <xacro:macro name="ur_srdf" params="prefix">
    <group name="${prefix}manipulator">
      <joint name="${prefix}elbow_joint" value="0" />
      ...
    </group>
    <disable_collisions link1="${prefix}base_link" link2="${prefix}base_link_inertia" reason="Adjacent" />
    ...
  </xacro:macro>

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions