README

Insight
Insight - a minimalist GUI for ROS2

Insight is a minimalist GUI alternative to rqt. It is a GTK4-based tool for exploring ROS2 topics, services, and messages, featuring the GNOME Adwaita style.

Features

Nodes

Node List Page

Node List
  • Browse all active ROS2 nodes

  • Group nodes by namespace

  • Search and filter nodes

  • View hidden nodes

Node Info Page

Node Info
  • View detailed node information

  • Display node publishers, subscribers

  • Show service clients and servers and action clients and servers

  • Show Node parameters and jump to the parameter edit page

Topics

Topic List Page

Topic List
  • Browse all available ROS2 topics

  • Group topics by namespace

  • Search and filter topics

  • View topic types and hidden topics

Topic Info Page

Topic Info
  • View detailed topic information

  • Display topic interface types and their definition

  • Show publishers and subscribers

Topic Publisher Page

Topic Publisher
  • Publish messages to ROS2 topics

  • Edit the published message as YAML/JSON/CSV

  • Publish once or as continuous stream

Topic Subscriber Page

Topic Subscriber
  • Subscribe to ROS2 topics

  • Receive messages as YAML/JSON/CSV

  • Message history and filtering

  • Get only one message or the continuous stream

Services

Service List Page

Service List
  • Browse all available ROS2 services

  • Group services by namespace

  • Search and filter services

  • View service types and hidden services

Service Info

Service Info
  • View detailed service information

  • Show service providers

  • Display service request/response interface type and definition

  • Quickly jump to the service call page

Service Call Page

Service Call
  • Call ROS2 services

  • Edit the service request as YAML/JSON/CSV

  • View service responses

Actions

Action List Page

Action List
  • Browse all available ROS2 actions

  • Group actions by namespace

  • Search and filter actions

  • View action types

Action Info Page

Action Info
  • View detailed action information

  • Display action interface type and definition

  • Show action servers and clients

  • Access goal/result/feedback structure

Action Goal Page

Action Goal
  • Send goals to ROS2 action servers

  • Edit the goal message as YAML/JSON/CSV

  • View feedback and results

Parameters

Parameter List Page

Parameter List
  • Browse all ROS2 parameters

  • Group parameters by node

  • Search and filter parameters

  • View parameter types and values

Parameter Edit Page

Parameter Edit
  • Edit ROS2 parameter values

  • Support for different parameter types

  • Real-time parameter updates

  • Parameter validation

Packages

Package List Page

Package List
  • Browse all ROS2 packages

  • Search and filter packages

  • View package information

Package Info Page

Package Info
  • View detailed package information

  • Show package executables

  • Access package metadata

  • Display package dependencies

New Package Dialog

New Package Dialog
  • Create new ROS2 packages

  • Configure package settings

  • Set dependencies and build type

  • Specify destination directory

Launch Files

Launch List Page

Launch List
  • Browse available launch files

  • Search and filter launch files

  • View launch file information

Launch Info Page

Launch Info
  • ! STILL EXPERIMENTAL !

  • View launch file details

  • Display launch arguments, and started nodes

  • Launch file execution

Interfaces

Interface Browser Page

Interface Browser
  • Browse ROS2 message/service/action interfaces

  • Interfaces are grouped by their packages

  • Switch between all/msgs/srvs/actions interfaces types

  • Access interface infos

Interface Info Page

Interface Info
  • View interface constants

  • Separate message / service (request/response) / action (goal/feedback/result)

  • Navigate through nested interfaces

  • Open interface definitions in a separate text editor or show it online

  • View detailed interface definitions

  • Display default values for basic data types (like int, string etc)

Interface Definition Page

Interface Definition
  • Show raw interface definition as YAML/JSON/CSV

  • Copy string representation into clipboard

Misc

TF Page

TF Page
  • View TF transformation tree

  • Display coordinate frames

  • Show frame relationships

Image Viewer Page

Image Viewer
  • Display ROS2 image topics

  • Show images as single shot or continuous stream

  • Image format support

  • Display image meta data

Teleop

Teleop Page
  • Robot teleoperation interface with Twist (and later Joy)

  • Control it via direction buttons or via keyboard

Graph Page

Graph View
  • ! STILL EXPERIMENTAL !

  • Visualize ROS2 node-topic connections

  • Interactive graph layout

  • Quickly jump to respectify info page for further info on the node/topic

Joint States Page

Joint States
  • ! STILL EXPERIMENTAL !

  • Monitor robot joint states

Diagnosis

Doctor Page

Doctor Page
  • ROS2 system diagnostics

  • Network configuration check

  • Package version information

  • QoS compatibility analysis

Logger Page

Logger Page
  • View ROS2 log messages

  • Filter logs by severity

  • Regex search for messages and nodes

GUI Features

Preferences Dialog

Preferences
  • Change the settings of the application

  • Set ROS2 environmental variables

  • Theme and appearance options

  • Behavior configuration

Multi-Window Support

Multi-Window
  • Multiple windows via detachable pages

Shortcuts

  • CTRL+R or F5 triggers a refresh of the page

  • CTRL+F triggers the search on every page

  • CTRL+D detaches the current page into a new window

  • CTRL+ENTER triggers the pages main action (like publish)

  • CTRL+Q closes the current window

Appearance

  • DARK THEME! (depending on the current system theme)

Prerequisites

Install the following packages, as some currently cannot be installed by rosdep (I’m working on it).

sudo apt install libgtk-4-dev libgirepository1.0-dev adwaita-icon-theme libadwaita-1-dev libglib2.0-dev python3-gi python3-gi-cairo python3-networkx python3-graphviz

Installation

Binary Install with apt

! THIS IS NOT WORKING YET, but hopefully will in the future (I’m waiting for approval) !

sudo apt install ros-jazzy-insight-gui

Install from Source

  1. Create the workspace and clone this repo:

mkdir -p ros2_ws/src
cd ros2_ws/src
git clone https://github.com/julianmueller/insight_gui

If you want the jazzy-dev branch, where I’m currently working on the latest features, use:

git clone -b jazzy-dev https://github.com/julianmueller/insight_gui
  1. Install dependencies with rosdep:

rosdep install --from-paths src -y --ignore-src
  1. Build the workspace:

colcon build --symlink-install
source install/setup.bash

Execution

Like every other ros2 node, the GUI is started by:

ros2 run insight_gui main

License

GPLv3. See LICENSE.