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.
Foxglove works well with ROS, but it also works well without ROS. It's not a requirement
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.