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:
https://github.com/WPI-ARC/datalink_toolkit/wiki
Get the package from our git repository here:
https://github.com/WPI-ARC/datalink_toolkit
Dmitry Berenson
Assistant Professor
Robotics Engineering Program
Computer Science Department
Worcester Polytechnic Institute
http://users.wpi.edu/~dberenson/