0
$\begingroup$

Rosanswers logo

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


Originally posted by BesterJester on ROS Answers with karma: 73 on 2020-11-12

Post score: 2


Original comments

Comment by skpro19 on 2020-11-12:
Did you check your tf tree? Try running rosrun tf view_frames and open the frames.pdf file generated. What do you see?

Comment by BesterJester on 2020-11-13:\

  • 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

Comment by BesterJester on 2020-11-15:\

  • 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-launch-the-turtlebot3-simulation-with-ros/). 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.

Comment by skpro19 on 2020-11-15:
Can you try to download and build the turtlebot3 package from source and then try once again?

Comment by skpro19 on 2020-11-15:
Meanwhile, you can try launching the turtlebot3 using the roslaunch turtlebot3_bringup turtlebot3_model.launch.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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.


Originally posted by skpro19 with karma: 310 on 2020-11-15

This answer was ACCEPTED on the original site

Post score: 3


Original comments

Comment by BesterJester on 2020-11-16:
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.

Comment by skpro19 on 2020-11-16:
Glad we could help :-)

$\endgroup$

Your Answer

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