ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A answers.ros.org

# rviz Status Error: No Transform

For some reason, rviz isn't recognizing any transforms from the turtlebot3_model. For every component of the robot, listed under "Robot Model," I'm getting rviz errors such as:

No transform from [base_link] to [odom]
No transform from [base_scan] to [odom]
No transform from [wheel_left_link] to [odom]


I first run rviz using the command: rosrun rviz rviz

I add in the Robot Model to the display, and that is where all the aforementioned errors occur.

In rviz, the two options for "Fixed Frame" is "odom" and "base_footprint." I've tried both, but I just get errors saying there is no transform to [odom] or no transform to [base_footprint]. I'm guessing my issue has something to do with the Fixed Frame. For example, I would expect to have many more "Fixed Frame" options to select from, such as "wheel_left_link" "base_link" and "camera_depth_frame" to name a few. When I add in a robot model, shouldn't that give me more frames to choose from?

Or maybe the issue is that rviz isn't getting any transforms. Shouldn't the transforms automatically be accompanied with the robot model? Is there some issue with the model missing transforms? If so, I didn't make the model myself, it is just the generic turtlebot3 used for tutorials.

I know there are the two transform topics, "/tf" and "tf_static." Do I need to set something in rviz to subscribe to these?

Linux 5.3.0-62-generic #56 18.04.1-Ubuntu

edit retag close merge delete

Did you check your tf tree? Try running rosrun tf view_frames and open the frames.pdf file generated. What do you see?

( 2020-11-12 12:07:50 -0600 )edit
• frames.pdf shows only two frames. On top is odom (parent) and it points to base_footprint (child). It also says Broadcaster: /gazebo. My guess is that my robot model isn't broadcasting its transforms on the /tf topic. Shouldn't it broadcast a transform for every linkage/component (ex: wheel_left_link, base_link, camera_depth_frame) on the robot?

• Now that I've gone through the tf tutorials suggested by Miura, I have a vague idea of what tf broadcasting code to look for in the robot model code. However, I didn't make the model. Maybe it would be better to try a different turtlebot model?

• I'm using the turtlebot3 model, which I think is the most current model. I start it up by first using this command: export TURTLEBOT3_MODEL=burger and then then this command: roslaunch turtlebot3_gazebo turtlebot3_world.launch

( 2020-11-13 02:55:04 -0600 )edit
• This is driving me crazy! Any other troubleshooting ideas or help will be much appreciated.
• I found a tutorial that I figured would be exactly what I need (https://automaticaddison.com/how-to-l...). It does a fresh install of the TurtleBot3 model, and then launches the model into Rviz. However, after doing this tutorial, I am still getting similar results. The only Fixed Frame option is odom, the robot model has errors (each linkage is red and says "No transform from [linkage] to [odom]), my tf tree is empty, and rostopic echo /tf shows no transforms are being published.
• Shouldn't a newly downloaded model automatically be publishing the transforms onto the /tf topic? I haven't found any settings I need to change.
( 2020-11-15 06:10:30 -0600 )edit

Can you try to download and build the turtlebot3 package from source and then try once again?

( 2020-11-15 10:12:29 -0600 )edit

Meanwhile, you can try launching the turtlebot3 using the roslaunch turtlebot3_bringup turtlebot3_model.launch.

( 2020-11-15 17:28:58 -0600 )edit

Sort by » oldest newest most voted

As suggested by @miura, the turtlebot3_world.launch file inside the turtlebot3_gazebo package does not publish the requisite transforms required by Rviz to dispay the RobotModel.

It only publishes the /odom -> /base_link transform.

If you want to add the RobotModel plugin to Rviz, you would need to use a launch file that publishes all the requisite transforms on the tf tree.

So, for example, you can try roslaunch turtlebot3_bringup turtlebot3_model.launch. To use this, you would need to download and build the turtlebot3 package from source.

Alternatively, you can also manually publish the requisite transforms using the command line as suggested by @miura.

I hope that makes sense.

more

1

Thanks! Launching it using turtlebot3_bringup turtlebot3_model.launch enabled it to start publishing the transforms. I learned a lot about transforms through all this, so thank you to everyone who helped me out.

( 2020-11-16 01:06:49 -0600 )edit

Glad we could help :-)

( 2020-11-16 04:20:49 -0600 )edit

There are no conversion rules set for tf. I suggest you check out http://wiki.ros.org/tf/Tutorials or something similar.

dirty hack: The warning will disappear if you run

rosrun tf static_transform_publisher 0 0 0 0 0 base_link odom 100
rosrun tf static_transform_publisher 0 0 0 0 0 0 base_scan odom 100
rosrun tf static_transform_publisher 0 0 0 0 0 0 wheel_left_link odom 100

more