Robotics StackExchange | Archived questions

URDF joint type "continuous" causes rviz2 issues?

Hi all,

I'm new to ROS2 and working through the tutorials. Please excuse me if this is a dumb question.

Background: I'm running ROS2 Foxy, my robot is running on a Pi4 running Ubuntu 20.04 and Rviz2 is running on a desktop running Ubuntu 20.04. On both device I installed Foxy from the ros repo and both are up to date.

I'm following this tutorial: https://navigation.ros.org/setup_guides/urdf/setup_urdf.html#urdf-handson

I'm using the example URDF at: https://github.com/ros-planning/navigation2_tutorials/blob/master/sam_bot_description/src/description/sam_bot_description.urdf And the rviz2 file provided in the tutorial.

Issue: The issue I'm having is that the wheels are in the center of the body, at 0,0,0 and on the rviz2 console I get these messages:

at line 133 in /tmp/binarydeb/ros-foxy-tf2-0.13.10/src/buffer_core.cpp

Warning: Invalid frame ID "drivewhlrlink" passed to canTransform argument source_frame - frame does not exist

at line 133 in /tmp/binarydeb/ros-foxy-tf2-0.13.10/src/buffer_core.cpp

Warning: Invalid frame ID "drivewhlllink" passed to canTransform argument source_frame - frame does not exist

This seems to be related to this line:

<joint name="${prefix}_joint" type="continuous">

If I change the link type to "fixed" then the wheels locate correctly and there are no errors on the console.

Is this a known issue with rviz2? Or did I do something wrong?

Thank you, Errol

Asked by errolt on 2021-07-10 13:43:30 UTC

Comments

I'm running into this exact same issue; did you find a resolution?

Asked by billymccafferty on 2021-12-30 19:48:24 UTC

Unfortunately not. Spending a week on this issue, which isn't supposed to be an issue because it is straight out of a tutorial, broke my will to learn ros. What else isn't going to work as the documentation purports it to work? Have not touched it since...

Asked by errolt on 2022-01-09 09:29:38 UTC

@errolt are you using <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" output="screen" /> in your launch file ?

Asked by bhomaidan on 2022-04-01 15:13:11 UTC

Answers

make sure to also add

joint_state_publisher_gui_node = launch_ros.actions.Node( package="joint_state_publisher_gui", executable="joint_state_publisher_gui", name="joint_state_publisher_gui", condition=launch.conditions.IfCondition(LaunchConfiguration("gui")), )

into your launch file.

I am guessing this is because the continuous joint require some other node to publish its current positions

Asked by MichaelWu666 on 2022-06-19 19:42:42 UTC

Comments