R&D of FPGA componentization technology for low power robots (SCOPE, SOUMU)

ROSxFPGA=OpenReroc Project

Japanese/ English

What is ROS-compliant FPGA components

What is 'ROS-compliant FPGA component'

  In recent years, robots are required to be autonomous and their robotic software becomes more sophisticated, advanced and complex. These robots have their problems of insufficient performance, since they can’t be equipped with any high-performance microprocessor due to battery-power operation. On the other hand, FPGA devices can accelerate specific functions in a robot system without increasing power consumption by implementing customized circuits. But, it is difficult to introduce FPGA devices into robots due to large development cost of FPGA circuits compared to software. Therefore, in this study, we propose a FPGA component technology for an easy integration of FPGA into robot systems. This FPGA component is compliant with ROS (Robot Operating System), which is becoming the mainstream as a software platform for robot development. Here, our ROS-compliant componentization method using Programmable SoC, Xilinx Zyng platform, is to be examined. And as a case study, we are going to show a hardware with FPGA of image labeling process, which can be treated as a ROS-compliant FPGA component.

Requirements for 'ROS-compliant FPGA component'

  First, we define “ROS-compliant” as follows: A FPGA component is ROS-compliant when the component conforms to publish/subscribe messaging rules so that it can communicate with any other ROS nodes. There are two requirements for ‘ROS-compliant FPGA component’.

  • The functionality of the ROS-compliant FPGA component is equivalent to that of what implemented in software.
  • The message type used in ROS and the data format of FPGA are unified.

  An integration of a FPGA into a robotic system needs equivalent functionality of a software ROS component when it is replaced with a ROS-compliant FPGA component. Therefore, 'ROS-compliant FPGA' components must unify data formats used in FPGA and in messages used in ROS process, during communication between ROS processes and FPGA. While satisfying these requirements, ROS-compliant FPGA component aims to improve its processing perfomrnace.

Structure of ROS-compliant FPGA component

 Figure 3 shows the structure of the proposed ROS-compliant FPGA component model. Based on the above requirements, the component must implement the following four functions:

  • The encapsulation of FPGA circuits,
  • Interface between ROS software and FPGA circuits,
  • Subscribe interface from a topic, and
  • Publish interface to a topic

  Objects to be componentized in FPGA are such as an intelligent image processing, which requires mass calculations. There are two kinds of software in the component. One is an interface process for data, i.e. obtainment of date input to the component and execution of process results from the component. It subscribes to a topic to receive input data, and also is responsible for formatting the data suitable for the FPGA processing, then sends the formatted data to the FPGA. The other is, an interface process for data matching and communication. It receives processing results from the FPGA and is responsible for re-formatting the data suitable for ROS system, then publishes them to a topic. If other nodes need the data on the topic, the nodes should subscribe to the topic. Such structure shall realize a robot system where software and hardware cooperate. 

 Figure 3 ROS-compliant FPGA component model

Reference ; "Proposal of ROS-comliant FPGA Component for Low-Power Robotic Systems" -case study on image processing application- 2nd International Workshop on FPGAs for Software Programmers (FSP 2015), London, United Kingdom, September 1, 2015