Skip to content

[joint_state_controller/broadcaster] "Resorted" joint_names compared to URDF/xacro file #159

Closed
@destogl

Description

@destogl

I just got reported that the joint_state_controller has resorted joint_names compared to the ros2_control-tag defined in the URDF file. They could be confusing and we should "debug" this if possible.

For this, I propose the following procedure:

  1. Start an example 6D robot to test this:
    1. Checkout ros2_control_demos repository 6Dbot-example-for-tests branch (Add example 6Dbot for tests and debugging ros2_control_demos#74).
    2. Compile the package and start ros2 launch ros2_control_demo_robot 6Dbot_example.launch.py
    3. Echo /joint_states topics and see that the name field does not start with "joint1", but "joint2". Why? This has to be answered in this issue!
  2. Check how the interfaces are ordered in the configuration incoming to the FakeSystem implementation. Check names of the joints in this line.
  3. Check the order of the state_interfaces in the assign_interfaces method here.
  4. Check the order here.
  5. Finally, the output joint names are sorted as stored in the joint_names_ variable here.

If the joint_names are mixed, we have to find out exactly where to know if this is repairable or add additional parameters or parsing of URDF in the controller.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions