1
$\begingroup$

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?

$\endgroup$

0

Your Answer

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