I am working on a 4 wheel robot. I have added the 4 wheels under ros2_control tag for the controller to use it. Now I also have multiple continuous joints(connecting the rollers in the image below) in the robot which I wish them to move freely(without using any controller). I have not added these to the ros2_control tag. The image below shows what I am expecting rviz to show:

Desired View

The image below shows the missing rollers in rviz:

Actual View

NOTE: I am using 2 ros2 controllers, mecanum_drive_controllers and joint_state_broadcaster.

When I run the whole setup in rviz, I am unable to view links(rollers) attached to these freely moving joints. The 4 wheels are visible. Now I have 2 options to correct this:

  1. Using joint_state_publisher: When I run "ros2 run joint_state_publisher joint_state_publisher" I am able to get all the rollers and the whole model is visible in rviz. Now when I set fixed frame to odom, all the wheels (which were visible in rviz from the start) and all the rollers(which I want them to move freely) become white in rviz means no transform is being published.

  2. Add all the freely moving joints(roller joints) to ros2_control tag.

I find the second method working.

Question: I want to know how this situation is handled generally. Are the freely moving joints added to ros2_control tag or do we use joint_state_publisher node. Also if I add them to ros2_control tag, should I use velocity or position or both as state interface?



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.