I’m proud to share that our group at Acceleration Robotics has disclosed our latest FPGA designs which allow bringing ROS 2 message-passing infrastructure completely into hardware. To enhance composability and cover various use cases, we’ve split the complete networking stack in three IP cores: ROBOTCORE
UDP/IP. Altogether, they allow to exchange small ROS 2 messages in less than
2.5 us (one-way), accelerating networking by more than
62x on average when compared to traditional software implementations on CPUs.
When considering the worst case scenario (maximum latency) for small ROS 2 messages, ROBOTCORE ROS 2 remains isochronous reporting a consistent round-trip latency below
5 us. Opposed to this, software implementations on modern CPUs take on average
339 us for the same, but can reach latencies of up to
22.7 ms (
22700 us) or more, which means ROBOTCORE ROS 2 is Thousands-Fold (
4540x) faster in these worst case scenarios.
Block diagrams of each one of these designs are short descriptions are available below for those interested:
||ROBOTCORE RTPS||ROBOTCORE ROS 2|
|Accelerated UDP/IP networking stack. UDP/IP on FPGA.||Accelerated DDS network communications. DDS-RTPS on FPGA||Accelerated ROS 2 network communications. ROS 2 on FPGA|
ROBOTCORE® ROS 2 and friends are the result of the last 5 years working towards faster and more efficient hardware for robots surrounding ROS 2 technologies. This started back in 2018, when we released a series of papers that investigated robot networking and unveiled that modern CPU-based networking solutions, even when optimized, could not cope with many of the real-time needs of modern distributed robotic systems in industry powered by ROS. The disclosures above deliver absolute determinism and isochronous capabilities via hardware. Compared to software-based solutions, it ensures that the communication latency is lower, consuming less energy and that latency remains always the same, regardless of the load of the system. Crucial for real-time robotic systems and solving major bottlenecks in robotic communications today.
We’re excited to disclose this now and present it publicly at the upcoming ROSCon India which our group is organizing and already has 750 confirmed attendees, including the sponsorship of Qualcomm, Analog Devices and NVIDIA among others. Stay tuned for more information on this regard.
For the ROS community, we’re currently considering to hold another Hardware Acceleration Working Group (HAWG) meeting soon to discuss these results and also the upcoming release of RobotPerf which will include new categories and interesting observations.
For more, including power-efficiency or how this minimizes the ROS 2 overhead over DDS (something many DDS vendors are currently criticizing about ROS 2) check the official page of ROBOTCORE
ROS 2 and the official announcement.
This considers the ROS 2 layers, the communication middleware implementation (DDS) and the networking stack, most often the Linux Networking Stack (LNS). ↩︎
Gutiérrez, C. S. V., Juan, L. U. S., Ugarte, I. Z., & Vilches, V. M. (2018). Real-time Linux communications: an evaluation of the Linux communication stack for real-time robotic applications. arXiv preprint arXiv:1808.10821. ↩︎
Gutiérrez, C. S. V., Juan, L. U. S., Ugarte, I. Z., & Vilches, V. M. (2018). Towards a distributed and real-time framework for robots: Evaluation of ROS 2.0 communications for real-time robotic applications. arXiv preprint arXiv:1809.02595. ↩︎
Gutiérrez, C. S. V., Juan, L. U. S., Ugarte, I. Z., Goenaga, I. M., Kirschgens, L. A., & Vilches, V. M. (2018). Time synchronization in modular collaborative robots. arXiv preprint arXiv:1809.07295. ↩︎