Protobuf & ROS messages interoperability

Hello there,

I am working on UAV research and we are using ROS onboard. For the communications with the ground station, we are considering using a 4G module and have a ROS node connect to a MQTT server. The MQTT messages will be sent as protobuf messages, since we want a similar way to define interfaces and having the code be automatically generated. So ideally our node should be able to convert between ROS messages and protobuf messages. I’ve been researching how this could be done and found this repo, but it seems to be dependent on the ecal ROS middleware.

I don’t have any experience with empy or other template languages, is there any good resources on how to extend rosidl? Do you know any other simpler alternative? We discarded using ROS messages on MQTT because we don’t really know how that would work out on the server side since we won’t be running ROS there and thought there wouldn’t be support for that.

Thanks for reading

If you are still considering this option you could take a look at rosnodejs – a node.js client library for ROS. With it you can easily consume and produce ROS messages without needing to install ROS on your server or using catkin, assuming your server is written in node.js. All you’ll need is the message definition files themselves when you use the onTheFly option.