Hey everyone, I’d like to get everyone up to speed what’s been going on since the initial release of Vizanti (Announcing Vizanti, a web visualizer & mission planner for ROS).
ROS 2
I really have to thank @Alastair_Bradford for helping out with the bulk of the backend porting for ROS 2, so we now have a preliminary release ready for wider testing on the ros2 branch (Noetic and Humble are currently being maintained in parallel):
Here’s a little Nav2 demo, using NavigateThroughPoses through one of the nodes in the vizanti_demos package:
General interface improvements
There’s been a long list of fixes regarding rendering and stability. Firefox and Safari which should now run and display Vizanti fine on both desktop and mobile. Also a fair amount of smaller reliability adjustments, e.g. only loading display assets once on first load and caching them in case the connection drops, auto reconnecting, etc. There are still a handful of known bugs but it should be a lot more stable now.
There are some new visualizers:
Compressed Image
Point Cloud 2
Costmap (technically just a display option on the regular OccupancyGrid widget)
MarkerArray rendering has better parity with rviz (though some of the more esoteric types remain unsupported):
Topic status handling for easier debugging, as per the rviz paradigm:
Caveats
It currently seems that the ROS 2 branch is not as performant as ROS 1, which I suspect is mainly because CBOR compression isn’t yet supported on ROS 2 rosbridge, which results in larger packets and more TCP congestion. Loading params for reconfigure also takes a lot longer since bash param dumping takes a while, and rosapi calls might sometimes glitch out (i.e. getting topic lists).
Call for contributors
For anyone that feels like giving us a hand with the project, I’ve written a more extensive doc that should come in handy in figuring out what’s what
The roadmap ahead has quite a few items on it like speeding up streaming of throughput-heavy topics (e.g. images, point clouds) using webrtc with aiortc, adding missing widgets, unit tests, etc.
But mainly it could use a lot more testing and more eyes on the codebase to figure out what could be improved.