Open tckarenchiang opened 3 years ago
rosbridge v2.0 Protocol Specification: https://github.com/RobotWebTools/rosbridge_suite/blob/ros2/ROSBRIDGE_PROTOCOL.md
I tried using a low-level internet networking interface: socket and a higher-level library: Twisted to connect to a rosbridge
server. However, I can't handle sending data efficiently when the data size is large using either library. The higher-volume the data is coming from FS, the larger the lag is in receiving messages from ROS side. I'm not sure how to solve this issue so I'll for now put this issue on the back burner.
Current state of this work: rosbridge_protocol_client.
If everything is communicated using rosbridge, is #14 automatically tackled? As there is already rosbridge2.
Yes, correct.
However given the state of the rosbridge
implementation I don't believe we'll be able to switch to it. There are too many problems with performance. It's likely/possible that's our fault (as we tried some naive ways to connect everything together), but as-is, the custom 'bridge' outperforms rosbridge
by (at least) an order of magnitude, especially when it comes to larger messages (such as LaserScan
).
Instead of using
convert_json_to_ros_message
to convertJSON
to ROS messages in our custom python script, we could userosbridge
protocol to write rosbridgeJSON
packets to the pipe in Lua side and create a Python script that reads bytes from the pipe and write to the TCP socket (connected to arosbridge
) without interpreting them at all.