Greetings, ROS community,
I am developing a new graphical interface application for ROS2 Jazzy, designed as an alternative to rqt. This project started as a personal endeavor over the last Christmas holidays, but I believe it could also benefit the community.
While rqt has served the community well as a versatile tool for interacting with ROS systems, for me it was always a bit tedious to work with. This motivated me to explore a different approach.
Introducing Insight
I am excited to introduce the application as Insight - a modern, user-friendly GUI for ROS2.
The source code is hosted on GitHub, where you can explore the project, contribute, or report issues:
Please feel free to explore the codebase and share your feedback.
Why Develop an Alternative to rqt?
- Improved Integration with Ubuntu and GNOME
ROS is predominantly used on Ubuntu, which employs the GNOME desktop environment and its Adwaita theme. rqt’s interface often feels outdated and out of place in this environment, lacking the polish and cohesion users expect from modern applications. My application, built with GTK4 and Adwaita, is designed to integrate seamlessly into the GNOME ecosystem, providing a consistent and visually appealing user experience. - Enhanced Usability
rqt’s interface, while functional, can be unintuitive and challenging to navigate, particularly for newer users. My goal is to create a streamlined, user-friendly application that looks and feels like known GNOME applications. Even though I’m an engineer myself and dont need fancy stuff, I also like, when things are easy to work with. - Modern Technology Stack
By leveraging GTK4 and Python, this project takes full advantage of contemporary GUI development standards. It also serves as a personal exploration of GUI development with GTK4.
Current GUI Features
The application already supports several core functionalities for interacting with ROS2:
- Viewing Nodes: Display detailed information about running nodes (similar to
ros2 node list
andros2 node info
), including their topics, services, and more. - Viewing Topics: List all topics (similar to
ros2 topic list
), inspect details of specific topics (similar toros2 topic info
), and view message definitions. - Viewing Services: List all services (similar to
ros2 service list
), inspect specific services (similar toros2 service info
), and view message definitions. - Viewing Actions: List all actions (similar to
ros2 action list
), inspect specific actions, and view message definitions. - Viewing Message Definitions: Access detailed message structures, including raw definitions. This was the first feature developed and the original motivation for creating the GUI.
- Viewing Transformations (TFs): Visualize all coordinate frames and calculate transformations between frames (similar to
ros2 run tf2_ros tf2_echo source_link target_link
).
Key GUI Features
- Filtering: Each page includes robust filtering options for quickly finding relevant content.
- Navigation: User-friendly navigation, no menu bar.
- Nested Pages: Navigate through nested message definitions.
- Copy Button: Simply press a button to copy relevant content (like the command to execute a node, eg.
ros2 run turtlesim turtlesim_node
) - View Online: See a message definition in the browser.
- Open folder: Open the folder of a package.
Planned Features
To further enhance the application’s utility, I plan to implement the following features:
- RQT Graph Equivalent: A visual representation of the ROS2 graph, showing nodes and their connections.
- Subscribing and Publishing Data to Topics: Enable users to send and receive messages directly from the GUI.
- Calling Services: Provide an intuitive interface for interacting with ROS2 services.
- Logging: A dedicated screen to display recent logs, with advanced filtering capabilities.
Screenshots
Here are some impressions of the current state of the application:
Development Process
This project is developed during my free time and currently has no fixed timeline for completion. As a side project, I am open to contributions from experienced ROS package developers and GUI developers who are interested in collaborating.
Also the application is not released yet, as it is my first ROS package, and I still need to test stuff, before releasing the first version.
I welcome your feedback and suggestions as I continue to refine this application. If you have ideas for features or improvements, I’d love to hear from you. Thank you for your time and interest!