Trust me, having your own crufty cobbled-together robotics code base that gets more and more insipid over time is way worse. 10/10 would start anything new with ROS.
We replaced ROS with GRPC, foxglove and our own code. Works reliably, much better to handle. Would recommend everyone else to try it
That's really interesting. I've thought about trying to replace ROS with GRPC before too. I could never find a report of anybody actually doing that in the robotics space. Can you share more? How did it go? What pitfalls did you run into?
GRPC is very performant. A few points, ensure you have a script to compile the GRPC protobuf, ideally in docker so that you don’t pollute your local environment. That other pitfall, is don’t save raw protobuf binaries, you will face backwards compatibility issues as you change the definition of the protobuf, just write everything into MCAP’s. GRPC essentially replaces ROS messages with protobuf definitions and is not a publish, subscriber model, but you can build publisher/ subscribers out of it. It is managed by Google, used in android, web dev etc so it is very performant and reliable.
We replaced it with an open source pub/sub framework and implemented our own autonomy on top.
Works well.
If you have the people to build something like this, could well be. If you're a smaller shop without any real experts, the structure enforced by ROS will prevent a lot of chaos and debugging.
Isn't Foxglove built for ROS?
Foxglove founder here. Foxglove is framework agnostic - we have first class ROS support but you can just as easily bring in custom data via Websocket or MCAP files.