Robotic Computing On FPGAs
Robotic Computing On FPGAs
Robotic Computing On FPGAs
Abstract—Robotic computing has reached a tipping point, datapath, making it capable of meeting real-time requirements
with a myriad of robots (e.g., drones, self-driving cars, logistic with high energy efficiency compared to CPUs and GPUs.
robots) being widely applied in diverse scenarios. The continuous Second, FPGA can adaptively generate custom architectures
proliferation of robotics, however, critically depends on efficient
computing substrates, driven by real-time requirements, robotic and update with the fast-evolving of robotic algorithms without
size-weight-and-power constraints, cybersecurity considerations, going through re-fabrication as ASIC [8]. Third, FPGA is
and dynamically changing scenarios. Within all platforms, FPGA flexible in dealing with highly diverse robotic workloads,
is able to deliver both software and hardware solutions with especially with partial reconfiguration allowing modification
low power, high performance, reconfigurability, reliability, and part of the operating board. Fourth, FPGA provides reliable
adaptivity characteristics, serving as the promising computing
substrate for robotic applications. This paper highlights the cur- design by leveraging reconfiguration to patch flows, compared
rent progress, design techniques, challenges, and open research to potential vulnerabilities detected in fixed architectures [9],
challenges in the domain of robotic computing on FPGAs. which is especially essential in safety-critical scenarios [10].
Overall, FPGA has the potential to deliver high-performance,
I. I NTRODUCTION low-power, reconfigurable, adaptive, and secure features in
Robotic computing is on the rise. A myriad of robots robotic computing, and is booming in autonomous applica-
such as drones, legged robots, and self-driving cars are on tions. However, several challenges, such as tedious develop-
the verge of becoming an integral part of our life [1], [2]. ment procedures, inefficient system support, and huge design
Robotics is typically an art of system integration both in space, remain in the FPGA-based robotic computing and
software and hardware (Fig. 1). The continuous proliferation impede the way ahead.
of robots, however, face computing challenges, raised from In this paper, we will discuss the current progress, chal-
the higher performance requirements, resource constraints, lenges, and opportunities for FPGA-based robotic computing.
miniaturization of machine form factors, dynamic operating Section II introduces the cross-layer stack of robotic system.
scenarios, and cybersecurity considerations. Therefore, it is Section III presents current FPGA accelerators and systems
essential to choose a proper computing substrate for robotic for robotic computing, with an emphasis on design techniques.
system that can meet real-time and power requirements and Section IV discusses challenges and opportunities for FPGA-
adapt to changing workloads. based robotic computing, and our view of the road ahead.
CPUs and GPUs are two widely-used computing platforms,
however, their performance and efficiency are still incompe- II. C ROSS -L AYER ROBOTIC C OMPUTING S YSTEMS
tent in real-time computation for complex robots. Take the This section introduces the abstraction layers of the robotic
motion planning task as an example, CPU typically takes a computing stack. We traverse down Fig. 1 to explain robotic-
few seconds to find the collision-free trajectory [3], making specific algorithms and systems building blocks.
it too slow for complex navigation tasks. GPUs can finish
planning tasks in hundreds of milliseconds, still insufficient A. Robotic-Computing Algorithm Layer
for many scenarios while at hundreds of watts cost [4]. Fig. 2 illustrates the representative algorithm building blocks
ASICs are recently developed for specific robotic workloads in robotic computing, including sense-plan-act (perception,
with low power and high performance [5]–[7], but their localization, planning, control) and end-to-end learning.
fixed architecture has difficulty in adapting to rapid-evolving Perception. The goal of perception is to sense the dynamic
robotic algorithms and dynamic scenarios, and is vulnerable surroundings and build a reliable and detailed representation
to cybersecurity threats. based on sensory data (e.g., camera, IMU, GPS, LiDAR). Per-
As an alternative, we believe FPGA is the promising com- ception usually includes feature extraction, stereo vision, ob-
pute substrate for robotic applications. First, FPGA increases ject detection, scene understanding, etc. In feature extraction,
the performance with massive parallelism and deeply pipelined key points are usually detected using FAST feature and ORB
Robots Cross-stack Environment
End-to-End Learning Robots
Robotic
Computing or
Planning &
Perception Localization
Algorithm Control
(Section 2)
End-to-End Feature Extraction Kalman Filtering Path Planning
Perception Localization Planning & Control Learning Functional Stereo Vision Pose Estimation Action Prediction
Blocks: Object Detection Map Generation Obstacle Avoidance
Scene Understanding Object Tracking Feedback Control
Robot Operating System (ROS)
Representative FAST, ORB, ELAS, SLAM, VIO, RRT, PRM, RRT*,
Node Service Node Algorithms: Registration RRT-C, PID
Neural Network
System
(Section 2) Node Topic Node
Publish Subscribe
Fig. 2: Applications and algorithm building blocks in robotic systems.
Execution Run-Time
Sensors Compute Hardware the following cognitive robotic tasks using a single neural
Hardware network model. Maps or separate planning stages are not
(Section 3)
IMU Camera GPS CPU GPU FPGA ASIC required in end-to-end learning. The neural network model
can be trained using reinforcement learning [18] or supervised
Energy- Reliable Reconfigu-
Requirements Real-Time Adaptive Predictable
Efficient & Secure rable learning [19]. The challenges of end-to-end learning include
Challenges Solutions & Research Opportunities (Section 4) alleviating the model simulation-to-reality performance gap,
Dynamic changing workloads 1 Reconfiguring robotic computing at run time
Unoptimized general solutions 2 Modularizing robotic computing kernels design
designing optimal reward functions, and improving model
Diverse hardware components 3 Mapping robotic computing on heterogeneous platforms explainability and robustness, which are actively explored.
Inefficient ROS support 4 Connecting FPGA to ROS ecosystem
Large #algorithms and #hardware 5 Benchmarking robotic computing kernels