By Víctor Mayoral-Vilches and Giulio Corradi, Xilinx Corporation
Serial 6: The Road to ROS for Adaptive Computing Platform?
Tables 1 and 2 summarize previous studies on implementing ROS and ROS 2 on some adaptive computing platforms shown in Figure 1, respectively. Figure 4 shows the most relevant results over the years.
Figure 1: Xilinx Adaptive Computing Solutions
Table 1: Previous Research on Implementing ROS on Adaptive Computing Platforms
Table 2: Past Research on Running ROS on Adaptive Computing Platforms
Figure 2: Evolution of ROS and ROS 2
Figure 2 reflects the growing interest in the scientific community to facilitate the development of adaptive computing. From a ROS perspective, past research can be divided into three categories: The first category of research proposes tools to help roboticists take full advantage of hardware acceleration, offloading parts of the ROS computational graph to programmable logic (FPGA) and accelerating them and method. The second category of research proposes the concept of accelerating the underlying layers of ROS, in particular using the network stack to optimize intra-network interactions between nodes. According to the description of "Real-TIme Linux communicaTIons: an evaluaTIon of the linux communicaTIon stack for real-time robotic applications", the network stack is the bottleneck of ROS communication, and studies such as "Acceleration of publish/subscribe messaging in ROS-compliant FPGA component" Real-time distributed systems have reference value. A third class of research proposes using adaptive computation to optimize the ROS computational graph.
In addition to accelerating specific applications and ROS libraries at the user space level, it is also worth mentioning that interactions between ROS nodes are accelerated at the inter-process, intra-process, and even intra-network levels. Since robot behavior is based on the results of ROS node interactions, accelerators used for this purpose significantly impact overall latency by reducing the flow of ROS and ROS 2 computational graph data in general.
That said, a comprehensive view of hardware acceleration must be applied when considering ROS and ROS 2. This view can reflect: a) optimization of in-process, intra-process, and in-network (including underlying) ROS computational graph interactions; and b) acceleration of applications running on ROS.
Summary of key points: When considering ROS and ROS 2, a comprehensive view of hardware acceleration must be applied. This view can reflect: a) optimization of ROS computational graph interactions in-process, in-process, and in-network (including the underlying layers); and b) acceleration of applications running on ROS.
Another conclusion can be drawn from the previous studies listed in Figure 2. Most of the past methods mainly solve the integration problem of adaptive computing and ROS from the perspective of hardware engineers, and most of the tools and methods proposed have a prerequisite, that is, the end user must have both embedded streaming and hardware streaming. has experience. This often means familiarity with concepts such as RTL, HDL, and HLS, or proficiency with tools such as the Vivado® Design Suite or the Vitis™ unified software platform.
Similarly, deploying to an embedded target requires some familiarity with Yocto, OpenEmbedded, and related tools. Most roboticists working on ROS do not have this capability. Integrating adaptive computing requires a ROS-centric approach. The hardware and embedded processes must be integrated directly into the ROS ecosystem, providing an experience similar to that of roboticists building ROS workspaces on their desktop workstations. Building on all previous research results and experiences, the next section proposes a ROS-centric architecture for integrating adaptive computing.