Modern computing platforms for robotics applications comprise a set of heterogeneous elements, e.g., multi-core CPUs, embedded GPUs, and FPGAs. FPGAs are reprogrammable hardware devices that allow for fast and energy-efficient computation of many relevant tasks in robotics. ROS is the de-facto programming standard for robotics and decomposes an application into a set of communicating nodes. ReconROS is a previous approach that can map complete ROS nodes into hardware for acceleration. Since ReconROS relies on standard ROS communication layers, exchanging data between hardware-mapped nodes can lead to a performance bottleneck.This paper presents fpgaDDS, a lean data distribution service for hardware-mapped ROS 2 nodes. fpgaDDS relies on a customized and statically generated streaming-based communication architecture. We detail this communication architecture with its components and outline its benefits. We evaluate fpgaDDS on a test example and a larger autonomous vehicle case study. Compared to a ROS 2 application in software, we achieve speedups of up to 13.34 and reduce jitter by two orders of magnitude.
I. INTRODUCTIONThe computation demand of robotics applications has increased in the last few years because modern robots gather more and more sensory information about their environment and employ sophisticated algorithms for decisionmaking. The rapid adoption of advanced machine learning for robotics additionally accelerates this trend.Modern robotics hardware architectures comprise a heterogeneous set of computing elements to provide the needed performance in an energy-efficient way. Computing elements include multi-core CPUs, embedded general-purpose GPUs, and FPGAs. FPGAs are reprogrammable hardware devices that are flexible since they can provide efficient acceleration for a wide range of workloads.The Robot Operating System (ROS) is the de-facto standard for robotics applications. Following the design philosophy of ROS, a robotics application is decomposed into nodes, which implement sub-functions of the overall application. Such functional decomposition facilitates easier development, maintenance, and increased reusability of code. ROS nodes can leverage different types of communication for data exchange, e.g., many-to-many publish-subscribe communication where one or more nodes publish data on specific topics, and other nodes that subscribe to these topics receive the data.