Add support in the web socket protocol for sending non CDR messages from non ROS clients through the foxglove bridge #845
Replies: 6 comments
-
To clarify, are you asking for the foxglove_bridge node to translate from JSON to CDR? (cc @achim-k) |
Beta Was this translation helpful? Give feedback.
-
Hey, I suppose that's what gets done internally by the default ROS bridge ? send a message in JSON to the bridge, have it send a ROS message, so yes in CDR |
Beta Was this translation helpful? Give feedback.
-
This is not currently supported for ROS2 but is something that works in ROS1 using the babel-fish if my memory serves me well. While figuring out the ROS2 support for this is not on our immediate radar we'd be open to contributions: https://github.com/foxglove/ros-foxglove-bridge to add this functionality. @achim-k might have some additional tips to add for someone interesting in tackling this. |
Beta Was this translation helpful? Give feedback.
-
We briefly considered sending JSON encoded messages but then decided for CDR / ROS1 encoding as the server side was much easier to implement (plus, libraries for message encoding on the client side already existed)
Indeed, you can use ros_babel_fish (already a dependency) or ros2_babel_fish (unfortunately not released yet) to do that. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the answer guys. We'll look into the options you mentioned when the need comes up again. We'd like to switch to the foxglove bridge but it sounds like it's not a one to one replacement for our use case, but with a little bit of effort we'll be able to get there. (We are paying customers at aescape though, not sure if that would potentially make such a request higher priority). |
Beta Was this translation helpful? Give feedback.
-
This has been implemented in foxglove/ros-foxglove-bridge#307 and will be available with the next release. |
Beta Was this translation helpful? Give feedback.
-
We currently have client apps (Android and Unity software) sending messages to ROS nodes through the ROS web bridge (https://github.com/RobotWebTools/rosbridge_suite), in JSON format.
We want to move to the foxglove bridge for performance reasons, but it seems that clients can currently on send CDR serialized messages (as foxglove studio does behind the scenes with the publish panel). This feature would allow us to use the foxglove bridge while keeping our current workflows, and would add a lot of flexibility for us.
To be clear, the message flow I'm looking for is:
Non-ROS process -> JSON msg on topic /a -> Foxglove Bridge -> ROS2 msg on topic /a -> ROS 2 node subscribing to /a
Not sure how heavy an effort this would be but it'd be great!
Thanks
Beta Was this translation helpful? Give feedback.
All reactions