ROS GUI

During his second internship at Willow Garage, Aaron Blasdel from the University of Tokyo worked on a graphical user interface (GUI) for ROS utilizing the Qt frameworkROS GUI, a system that allows users to interact and introspect the ROS environment in a visual manner.  Users are provided with tools and encouraged to develop and contribute tools of their own to the ROS GUI ecosystem.

The ROS GUI is designed as a plugin architecture which allows users to quickly implement Qt-based GUIs plugins for use with ROS.  The framework provides an automatic save/restore system for the currently loaded plugins and the position/size of their windows that load at plugin start.  Each plugin can contribute additional intrinsic state information which then persists.

Based on the ROS GUI framework, Aaron developed four tools to improve the debugging lives of ROS Users.  The first two plugins rqt_console and rqt_logger_level are closely coupled and they provide a graphical interface to capture any broadcasted log message and filter them.  Furthermore, the plugins can be used to suppress log messages before they are sent to keep the bandwidth low.

The third tool, rqt_bag, enables the user to introspect the content of ROS bag files, either with a text-based visualization or with a message specific view, for example viewing images.  Additionally, it provides recording and playback functionalities while passing the messages to other tools for visualization (i.e. rqt_plot for 2D plotting of numeric values). A basic API is provided to integrate custom visualizers.

Finally, the fourth tool rqt_web integrates Web-based tools into ROS GUI. It enables using these different technologies in an integrated user interface.

The four plugins developed in this project enable users to easily introspect and debug their ROS applications in a graphical manner.

For information on how to contribute a plugin or install these tools please go to: http://ros.org/wiki/rqt