New in Groovy (also builds against fuerte)

alt Screen shot of ROS GUI


rqt is a software framework of ROS that implements the various GUI tools in the form of plugins. One can run all the existing GUI tools as dockable windows within rqt! The tools can still run in a traditional standalone method, but rqt makes it easier to manage all the various windows on the screen at one moment.

You can run any rqt tools/plugins easily by:

$ rqt

On Fuerte you have to use rosrun to run rqt:

$ rosrun rqt_gui rqt_gui

that shows a GUI where you can choose any available plugins on your system.

Users can create their own plugins for rqt with either Python or C++. Over 20 plugins (as of Feb 2013) have already been created and more are slated for development.

rqt supercedes the former GUI tools of ROS rxtools, which now is deprecated since ROS groovy.

rqt components structure

rqt consists of three (+1) metapackages:

  • rqt - core modules. rqt plugin developers barely needs to pay attention.

  • rqt_common_plugins - ROS backend tools suite that can be used on/off robot runtime.

  • rqt_robot_plugins - Tools for interacting robots during their runtime.

    • rqt_pr2_dashboard - Robot specific (PR2). Temporarily excluded from other metapackages due to building issue

Required environment

  • Supported Qt version:

    • As of March 2013 and until ROS Jade all rqt pkgs are tested with Qt 4.8.

    • In ROS Kinetic the minimum Qt version was updated to Qt 5.3

  • (To be clarified) Tested OS and its version, and Window System:
    • Ubuntu: See REP-3 for the supported OS.

    • Mac OSX: Being tested.

Advantage of rqt framework

Compared to building your own GUIs from scratch...

  • Standardized common procedures for GUI (start-shutdown hook, restore previous states).
  • Dockable multiple widgets in a single window (no need to open multiple windows)
  • Easily turn your existing Qt widgets into rqt plugin.

  • Expect good support at (ROS community website for the questions) since rqt developers are active!

From system architecture's perspective,

  • Support multi-platform (basically wherever Qt and ROS run) and multi-language (Python, C++)

  • Manageable lifecycle: rqt plugins using common API makes maintainance & reuse easier

See also



  1. Installing rqt on Ubuntu

    Shows how to install the rqt related packages.

  2. Install rqt on Mac OSX

User Documentation

  1. User Guide

  2. Available Plugins


For those who want to develop their own rqt plugins.

  1. Create your rqt plugin package

    Entry point for creating your rqt plugin either in python or C++.

  2. Writing a C++ Plugin

    Shows how to write a plugin for rqt in C++.

  3. Writing a Python Plugin

    Shows how to write a plugin for rqt in Python.

  4. Create rqt plugin using an existing Qt based tool

    No Description

  5. Using .ui file in rqt plugin

    In this tutorial python is used for now. C++ tutorial is pending.

  6. To show error or exception message to users

    Shows error/warning msgs or progress bar on GUI by using a component in rqt_py_common pkg

Create a new tutorial:

Assistance & Contribution


Enhancement, issue report

  • For new tool idea, open a ticket at rqt's general bugtracker and describe the usecase.

    • Opening up a conversation in ros-users mailinglist might be a good idea too, but should better be saved for the discussion about the tools with larger size (it's up to you what "larger" means).

  • For enhancement request / issue report, open a ticket at the corresponding bugtrackers.

Design & development

Official decision process

Github policy for rqt plugins

There's a policy for the development repositories of rqt_common_plugins and rqt_robot_plugins (Related discussion):

  • Development happens on the branch groovy-devel. We use that as master branch.

  • Releases are made from that branch into Groovy and Hydro at the same time with the same version.
  • As soon as new Hydro-only features are upcoming a new branch hydro-devel will be created which than has to level the minor version for future releases

Wiki: rqt (last edited 2016-08-30 18:41:47 by DirkThomas)