at iRobot we are investigating the state of ROS2 tools and we think that it would be useful to allow the possibility of running all visualization plugins from a single application.
In ROS a tentative solution to this problem had been identified in the
rqt_rviz plugin. As its name states, this allows to run
rviz as if it was a regular
rqt plugin. It would share the same interface and it would be able to communicate with the other plugins through the ROS communication framework.
As you can see from the plugin wikipage, the ROS plugin is marked as experimental because it has frequent crash-related issues.
This problem is being tracked through the following tickets:
According to these tickets, the problems are due to
rqt runs an async spinner for C++ plugins
rviz is not designed to be run as a nodelet in the first place therefore I assume it is running its own spinner. With two different spinners running the context / thread in which objects are created / used is not deterministic
In ROS2 there is no more a difference between nodes and nodelets. Moreover, the whole managing of threading has been made simpler.
It’s important to note that
rqt_rviz was not designed to supersede
rviz, but it depends on it.|
For this reason, this port will eventually require to make changes to
I would like to discuss with you about the possible challenges of this port and whether you think this is the best solution for incorporating all the tooling functionalities in a single place.
Besides this, I would like to also ask to the
rviz users if they would be interested in such a plugin.
The topic was already mentioned by some users when
rqt for ROS2 was announced RQT in ROS2.