Show HN: Ros2_utils_tool, a powerful GUI toolset for ROS2-based utilities

github.com

5 points by bakefish 8 hours ago

Hi Hackernews,

over the past few weeks, I've been tirelessly working on a GUI toolset for all sorts of ROS2-based utilites to simplify my tasks with ROS at work. Now I want to present to you the ros2_utils_tool.

This tool can do many ROS2-based utilites, for example editing a ROS bag file to remove, rename or crop topics, extracting a video or image sequence out of a ROS bag, creating dummy bag files or just publishing a video as a ROS topic.

While being developed to be as simple and lightweight as possible, the toolset supports many advanced options, for example different video and image formats, custom fps values, switching colorspaces and more. I've also heavily optimized the tool to support multithreading or in some cases even hardware-acceleration to run as fast as possible.

The tool offers full graphical user interface support for all features, while I've also added additional command line interface support for most of them.

As of now, the ros2_utils_tool supports ROS2 humble and jazzy.

The application is still in an alpha phase, which means I want to add many more features in the future, for example GUI-based ROS bag merging or republishing of topics under different names, or some more advanced options such as selecting messages for video or image generation.

The ros2_utils_tool requires an installed ROS2 distribution, as well as Qt6 or Qt5 for the user interface, the cv_bridge for transforming images to ROS and vice versa, and finally catch2_ROS for unit testing.

You can install all dependencies (except for the ROS2 distribution itself) with the following command:

    sudo apt install libopencv-dev ros-humble-cv-bridge qt6-base-dev ros-humble-catch-ros2
For ROS2 Jazzy:

    sudo apt install libopencv-dev ros-jazzy-cv-bridge qt6-base-dev ros-jazzy-catch-
Install the UI with the following steps:

    cd path/to/your/workspace/src
    git clone https://gitlab.com/nct_tso_public/mediassist4/ros2_utils_tool.git
    cd path/to/your/workspace/
    colcon build
Then run it with the following commands:

    source install/setup.bash
    ros2 run ros2_utils_tool tool_ui
    
The ros2_utils_tool uses the EUPLv1.2 as license. More information, for example regarding the command line interface tools are shown under [0].

[0] https://github.com/MaxFleur/ros2_utils_tool