Robotic behavior is often built as a computational graph, with data flowing from sensors to computational technology, all the way to actuators and back. To gain additional performance capabilities, robotic computing platforms must efficiently map these graph-like structures to CPUs, as well as to specialized hardware including FPGAs and GPUs.
Traditional software development for robotic systems has primarily focused on programming the central processing unit (CPU). However, these robotic systems often exhibit processing inefficiencies, high power consumption, and safety issues due to the inherent architectural constraints and limitations of CPUs.
What is a Robot Computing Platform?
Robotic behavior is often built as a computational graph, with data flowing from sensors to computational technology, all the way to actuators and back. To gain additional performance capabilities, robotic computing platforms must efficiently map these graph-like structures to CPUs, as well as to specialized hardware including FPGAs and GPUs.
Robots are complex mechatronic devices, which comprehensively use the latest research results of machinery and precision machinery, microelectronics and computers, automatic control and driving, sensors and information processing, and artificial intelligence.
To integrate these achievements and truly form the ability of cognition, feeling, and action, so that the robot can understand and respond to the real world and accurately complete the operation tasks, the computing platform it carries needs to meet various requirements:
- Perception ability: The platform has rich I/O interfaces, supports USB3, UART, I2C, and other I/O protocols to receive various sensor data. 360-degree omnidirectional scanning and ranging detection of the surrounding environment, and then obtain the contour map of the surrounding environment.
- Control ability: It can control various moving parts, such as chassis, arms, fingers, and head, to complete actions in multiple dimensions, and it has real-time and safety guarantees.
- Computing power: It is necessary to cope with the processing overhead of a large amount of data, as well as meet the huge computing needs of various intelligent algorithms.
Advantages and disadvantages of various computing resources?
Robotics and AI platforms incorporate a variety of computing resources, including CPUs, digital signal processors (DSPs), graphics processing units (GPUs), field-programmable gate arrays (FPGAs), and application-specific integrated circuits (ASICs). They allow roboticists to build flexible computing architectures for robots, requiring the right tools for each task to maximize their performance.
-
Scalar Processor (CPU):
Scalar processing elements are very efficient in complex algorithms with multiple decision trees and extensive libraries. But performance scaling is limited. Although CPUs are very flexible, their underlying hardware is fixed. Most CPUs are still based on the Von-Neumann architecture (stored-program computer), where data is brought from memory to the processor, manipulated, and then written back to memory. Each CPU operates sequentially, one instruction at a time, and the architecture is centered around an arithmetic logic unit (ALU), which requires moving data in and out of each operation. In robotics architectures, scalar processors play a central role. Coordinating the flow of information across sensing, actuation, and cognition by using the CPU is fundamental to robotic systems. In addition, Robot Operating System (ROS), a widely adopted software framework for robot application development, is designed in a CPU-centric manner.
-
Vector processors (DSP, GPU):
Computational Architecture Vector processing elements (DSP, GPU) are more efficient on a narrower set of parallelizable computing capabilities compared to CPUs. The downside is an inflexible memory hierarchy, which creates latency and loss of efficiency. The GPU performs the same few tasks over and over again, best for professional and functional performance. Vector processors overcome the shortcomings of CPUs in robotics and have the ability to process large amounts of data.
-
Programmable Logic (FPGA):
Programmable logic can be precisely tailored to specific computing functions for latency-critical real-time applications. However, these advantages come at the cost of programming complexity. Also, reconfiguration and reprogramming of FPGA’s require longer compile times compared to the programing of scalar and vector processors. Unlike general-purpose memory structures, FPGAs are flexible and adaptable, tailorable to desired tasks,. In robotics architectures, FPGAs enable the creation of run-time reconfigurable robotic hardware via software. Software-defined hardware for robots is good at dataflow computations because statements are executed once all operands are available. This makes FPGAs useful for connecting sensors, actuators, and processing networks. In addition, FPGAs can create custom hardware-accelerated cores with the flexibility to be an alternative to vector processors for data processing tasks.
-
Application-Specific Integrated Circuits (ASICs):
The special fixed architecture of the ASIC provides higher performance and power efficiency, as well as the best price for high volume production. But ASICs take many years to develop and no changes are allowed. Therefore, while ASICs will play a role in some future robotic systems, the use of ASICs in robotics architecture is still limited.
-
Network of Networks:
Robots are inherently deterministic machines. They are a network of networks where sensors capture data, pass it to computing technology, then to actuators, and back again in a deterministic way. These networks can be understood as the nervous system of the robot. Like the human nervous system, real-time information is passed through all networks to control the coherent behavior of the robot. Von-Neumann-based scalar and vector processor architectures excel at control flow but struggle to guarantee determinism. This is where FPGAs and ASICs come into play as key enabling technologies for robotic systems.
-
Robot Computing Architecture:
Consider robotic systems that use robotic operating systems (ROS), which have become common in robotics development. Using ROS, robotic processes are designed as nodes in a computational graph. Robotic computing platforms must be able to efficiently map these graph-like structures onto silicon. The ROS computational graph should seamlessly run across the computational substrate, and data must flow from the programmable logic (FPGA) to the CPU, from the CPU to the vector processor, and all the way back. Robot chips should map not only the ROS computational graph to CPUs, but also FPGAs, GPUs, and other computing technologies for additional performance.
-
Best computing resources:
In contrast to traditional, CPU-centric robotics programming models, the availability of additional computing platforms provides engineers with a high degree of architectural flexibility. Roboticists can take advantage of the properties of various computing platforms: determinism, power consumption, throughput, etc., by selecting, mixing and matching the right computing resources as needed.