From Dmitry Berenson via ros-users@
The ARC Lab at WPI is releasing the Datalink Toolkit ROS package, designed to for remote operation of a robot over a high-latency and low-bandwidth datalink. The package was developed and extensively tested as part of the DARPA robotics challenge, though it is not specific to a type of robot.
The package allows the user to easily set up relays and compression methods for a single-master system. These relays avoid duplicating data sent over the datalink while compressing common datatypes (i.e. point-clouds and images) to minimize bandwidth usage.
The toolkit includes both message-based and service-based relays so that data can be sent on-demand or at a specified frequency. The service-based relays are more robust in low-bandwidth conditions, guaranteeing the synchronization of camera images and camera info messages, and allow more reconfiguration while running.
The key features of the package are:
- Generic relays with integrated rate throttling for all message types
- Dedicated relays with rate throttling for images and pointclouds
- Generic service-based relays with integrated rate throttling for all message types
- Dedicated service-based relays with integrated rate throttling for images and pointclouds
- Image resizing and compression using methods from OpenCV and image_transport
- Pointcloud voxel filtering and compression using methods from PCL, Zlib, and other algorithms. (Note: pointcloud compression is provided in a separate library that can be easily integrated with other projects)
- Launch files for easy use of the datalink software with RGBD cameras
- Works with ROS Hydro
Overall performance:
- Reliable data transfer for a wide range of bandwidths and latencies (e.g. at DRC Trials: 1Mb/s - 100 Kb/s bandwidth, 100ms - 1000ms latency)
- Pointcloud compression >8x depending on compression algorithm (without voxel filtering)
- Pointcloud compression >20x depending on compression algorithm (with voxel filtering)
- Image compression equivalent to image_transport (without image resizing) or better (with resizing)
Performance comparison with ROS for image transfer:
- 1.5x more images/second at 1Mb/s (grayscale image size 320x240)
- 2x more images/second at 100Kb/s (grayscale image size 320x240)
- 3x more images/second at 50Kb/s (grayscale image size 320x240)
For more information, please see the wiki here:
Get the package from our git repository here:
Leave a comment