Ambiguous joint names in /joint_states

First experiences with ROS2 and joint states.

The Articulation I am setting up is made up of several references to a USD file that has, let’s assume, a revolute joint named “RevoluteJoint”. As it is referenced multiple times, I have multiple joints with the name “RevoluteJoint”. No problem so far, as they are unique when referenced with their full prim path.

But, when I publish their states using a RosJointState Prim, the published joint names do not include the full prim path. What I receive looks like this:

header:
  stamp:
    sec: 139
    nanosec: 113041091
  frame_id: ''
name:
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
- RevoluteJoint
position:
- 0.0019
- -0.065
- -1.3935
- -6.0396
- 3.9892
- -0.608
- 4.7822
- 1.9748
- -0.9219
- -2.6714
- 0.1388
- -1.9924
- -0.0229
- 0.0477
...

It seems, I cannot override the joint names in my master USD file. How can I distinguish the different joints on the ROS side?

Thanks
Bruno

I have moved all my joints to the master USD which is a working workaround. I would still be interested in whether it would be achievable with joints in referenced layers.

Now I have an additional question. In the joint_states topic I see only revolute joints, no spherical joints. Is there a reason why no state is published for spherical joints?

The final joint prim name should be unique, the only way to resolve this is to edit the referenced file directly to change the joint names. (because you cannot rename prims on a reference as that would be a structural change)

On our end using the full prim path is not a good solution as it breaks some default assumptions made in URDF files, namely that the joint names (and not their full path) must be unique

Joint names must be unique in a urdf file:
http://wiki.ros.org/urdf/XML/joint
And also for the joint state message.
http://docs.ros.org/en/noetic/api/sensor_msgs/html/msg/JointState.html

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.