Show HN: The easiest way to create web UIs for ROS robots (transitiverobotics.com)
Our new, free ros-tool capability makes it trivial to interact with ROS from the web. It provides a React API for subscribing and publish to topics and for placing service calls. It works with both ROS 1 and 2, and unlike rosbridge, it caches all data in the cloud, which means your UIs will work even when your robot is offline (just showing the latest data). Since all data is synced via the cloud, it is also much easier and more efficient to aggregate data from multiple robots, e.g., for showing your fleet on a map.
15 comments
[ 5.5 ms ] story [ 48.6 ms ] threadIt's serialization independent (integrating a new serializer is super easy, you can even use ROS messages if you have a lot of legacy code to migrate), works with regular old CMake, and provides a framework to run deterministic replay/simulation against.
Hoping to put up a Show HN myself in a few weeks - need a few more pieces in place first - I have the foundation of the replay system written, but it's not all there, yet.
(Hi Christian!, Kyle here)
ZeroMQ, protobuf, and a little thought would go a long way at our org.
/rant
Is there an open source self hosted option? Is this open source?
So what's the advantage of your cloud service vs something similar like https://github.com/groove-x/mqtt_bridge where you can easily create a MQTT API for your robots by hand-selecting topics to be exposed?
That's a bit like asking: why do we need React when we have HTML and JS? ros-tool is built on Transitive, which uses MQTTSync -- an open-source protocol we've developed for doing data sync on top of MQTT (instead of just message passing). So we are several levels up from MQTT. But yes, if people want to, they can easily write their own Transitive capabilities (see https://transitiverobotics.com/docs/develop/creating_capabil...) and, in fact, the starter-code provided by our capability init script includes example code for subscribing to ROS. So if anyone wants to write their own, I recommend starting with that. But because ros-tool is built on Transitive, a developer can specify permissions at very fine granularity in the JWT they provide to their users, including not permitting any publishing from the front-end, and/or limiting access to specific topics or services.