ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

When should I use rviz, rqt or gazebo?

asked 2019-03-03 08:22:07 -0500

nbro gravatar image

updated 2019-03-03 08:33:05 -0500

There are several visualisations tools in ROS. I think that the main ones are rviz, rqt and gazebo. Now, for a beginner (both in ROS and, in general, in robotics), it might not be easy to understand when one tool will be needed rather than the other. So, what are the use cases of these three tools? When should I use one over the other? If there are other tools, feel free to include them in the explanations.

edit retag flag offensive close merge delete


Almost a duplicate: #q316396.

gvdhoorn gravatar image gvdhoorn  ( 2019-03-03 08:39:50 -0500 )edit

We're happy to help btw, but like to avoid discussing / suggesting things you've already found yourself, so can you clarify what you believe are the use-cases / raisons d'etre for these tools?

gvdhoorn gravatar image gvdhoorn  ( 2019-03-03 08:40:49 -0500 )edit

In the past, I've used these three tools and I still don't know when I should use one over the other. I know that Gazebo is used for simulating robots, but I'm not sure about the other tools (I confuse them). I would like to see a list of use cases for each of them.

nbro gravatar image nbro  ( 2019-03-03 08:45:05 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2019-03-03 09:06:58 -0500

gvdhoorn gravatar image

updated 2019-03-03 09:17:02 -0500

There are several visualisations tools in ROS. I think that the main ones are rviz, rqt and gazebo. [..] I know that Gazebo is used for simulating robots, [..]

As Gazebo isn't a visualisation tool, but a dynamics simulator, I don't believe there is actually much overlap between it and the other tools you mention (yes, Gazebo has a UI component, but that's not a generic visualisation tool, it's completely tied to gzserver). See also #q316396.

As to the others:

  • RViz is "[..] a 3D visualizer for the Robot Operating System (ROS) framework" according to the description of its Github repository.

  • RQT is "[..] a Qt-based framework for GUI development for ROS" according the wiki page.

So one is a "batteries included", ready-to-use 3D visualisation environment for (supported) ROS messages, while the other is a Qt based software framework in which you create plugins -- that can also visualise supported ROS messages, but also supports many, many other things (2D plotting (or graphing) of time series data, submitting service requests, determining the dependencies of packages, introspecting actions, changing node logger levels, inspecting message and service definitions, interfacing with dynamic_reconfigure servers, etc).

At some point the developers of RQT decided that it made sense to be able to have small, plugin based and dockable "UI-lets" which would allow anyone to create an arbitrary combination of those plugins to create their own "control panel" with which they can create a UI for a specific robot or application:

rqt example

All of that could have been written as RViz plugins, but that would mean that all of that could also only be used from within RViz, which would mean that the overhead of rendering the full 3D visualisation would also always be incurred.

I'm not sure there is a definitive answer which should be used when, it also partly comes down to personal preference I believe, combined with what it is that you'd like to visualise.

A (very) old discussion on this topic: [ros-users] Should I write plugins for rqt or rviz?

edit flag offensive delete link more

answered 2019-12-13 19:43:36 -0500

pauljurczak gravatar image

One argument for using rviz is it's visualization of laser scans, which is absent in rqt as of the end of 2019.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2019-03-03 08:22:07 -0500

Seen: 2,088 times

Last updated: Dec 13 '19