Targeted tools of the week

  • ColorTuner

  • CamViz-ROS2-cpp

  • VisualStates


Visualstates tool is currently supported in ROS-kinetic. Installed it by source in ROS-Melodic. Executed the tool and studied it’s codebase.


  1. Migrated the required snippets to Python3 (Except ros1 part). ROS2 is supported only on python3. So, the tool can work with both versions.

  2. Extended the support for ROS2.

  3. Modified the interface to support both ROS1-ROS2. Pull_Request: #PR6

  4. [Doing] Separating the colortuner tool for making it standalone in ROS.

Please click on the image to view the final video of the tool.

ColorTuner Tool- ROS1+ROS2 Interface

Major challenges:

  1. Identifying the error due to compressed images being published by ROS2 publisher

  2. Using multithreading correctly to get the image stream continously

More future work to enhance the tool

  1. Separate the comm, config and commm(previously parallelIce library) from the main tool. Create separate communication library for ros1+ros2 interface.

  2. To close the tool ctrl+c doesn’t do the required work. We have to do it by ctrl+z (i.e. suspend the whole process). ROS had unregister method for subscriber, but it isn’t provided in ROS2 yet. Though I am using destroynode too here.


I was supposed to create a small script similar to the lines in code where the problem was coming, but there was some issue in identifying the exact line of segmentation fault.

I implemented multithreading in python with spin_once(), I will do it similarly in C++ Without using multiexecutor provided by ROS2 once.