top | item 41983240

(no title)

liamkinne | 1 year ago

It’s interesting to me that every robotics framework essentially boils down to a specialised pub-sub system with some flavour of serialisation and some kind of startup/launcher to wrangle running separate processes.

Props to this team for picking Protobuf given its wider adoption unlike ROS and its custom format.

Is there a reason an existing pub-sub system like NATS isn’t suitable for a framework like this?

Also unfortunate that this project is written in C++ and offers Rust bindings rather than the other way around.

discuss

order

causal|1 year ago

I always wonder about this too. Half the ROS projects I've seen are just single-board applications with topics.

ROS bags are a useful facility for data capture and testing, and there are some ROS packages that are useful (against the backdrop of an awful packaging/build system). But even all that is just because the community decided this particular pub-sub system was the robotics one and started building packages on it.

So why ROS, robotics community, why?

ptero|1 year ago

I suspect it just happened to be at the right place at the right time, worked well for a set of users in the robotics community and built up strong network effects there.

This is a pretty common story. Python became very successful in a similar way. I have seen things like flight critical software written in Python not because Python is a good language for it (if I heard this 15 years ago I would laugh), but because Python became a de-facto standard for prototyping in the domain due to its libraries, tools and bindings and solving a realtime challenge for an existing prototype is often an easier lift than rebuilding it from scratch. My 2c.

NalNezumi|1 year ago

One story not mentioned here is the real history.

ROS was developed as the framework for the PR1 robot, as a "Linux for robotics" idea. But it really took off when Willow Garage GAVE out a bunch of PR2 robots to academic institutes around the world.

It then stuck because those labs, even independently, developed really useful tools in a very backwards compatible language (C++) or with support to old languages (Lisp). You can find many repos such as this one which basically have EVERYTHING, handed down from PhD to PhD student over decades

https://github.com/jsk-ros-pkg

Basically a lot of the headache inducing grudge work exist there as a library, you only need to glue it together.

You want to calibrate your camera, get the relative position to the root of a robot arm? You can knack it together with openCV and then end up debugging for hours because coordinate transform convention was wrong. Or just install this library, publish your sensor data in specified topic, and it does it for you.

Imo it's easy to miss the usefulness of ROS if you don't consider the tf package, rosbag and rviz together with ROS as a bundle.

Everytime I see a pub/sub "new ROS" framework, sooner or later I realize I need to reinvent tf/rosbag/rviz, because those standard packages are almost never available (or available only for the developers specific need)

kevin42|1 year ago

IMO, the real value of ROS is the data logging (bag/mcap files), visualization (FoxGlove) are the main value of ROS. Even then, I'm not sure it's worth the overhead and brittleness of building and running it. There is just so much complexity deploying and developing for it.