The behavior of robots is frequently modeled as a computational graph, wherein data flows from sensors to computational technology, extending to actuators and then looping back. To enhance performance capabilities, robotic computing platforms need to adeptly map these graph-like structures to CPUs and specialized hardware, such as FPGAs and GPUs.
Contemporary Robotic Computing Architectures and Resources
Traditional approaches to robotic software development have primarily focused on programming the central processing unit (CPU). However, inherent constraints in CPU architectures often lead to processing inefficiencies, high power consumption, and safety concerns. As a response, modern robotic computing platforms explore diverse resources to optimize performance and address the multifaceted requirements of robotic systems.
Robot Computing Platforms:
Robotic behavior is conceptualized as a computational graph, with data flowing from sensors to computational technology, and then to actuators. To enhance performance, these graph-like structures must be efficiently mapped not only to CPUs but also to specialized hardware, including FPGAs and GPUs.
Complexity of Robots:
Robots, as complex mechatronic devices, integrate advancements in machinery, precision machinery, microelectronics, computers, automatic control, sensors, information processing, and artificial intelligence. Achieving cognitive, sensory, and action capabilities necessitates a computing platform that fulfills various requirements.
Requirements for Robot Computing Platforms
Perception Ability: Rich I/O interfaces supporting various sensor data inputs, including USB3, UART, I2C. Comprehensive environmental scanning for 360-degree omnidirectional awareness.
Control Ability: Real-time and safe control of moving parts such as chassis, arms, fingers, and head. Multidimensional action execution.
Computing Power: Capable of handling significant data processing overhead and supporting various intelligent algorithms.
Advantages and Disadvantages of Computing Resources
Scalar Processor (CPU): Efficient for complex algorithms but limited in performance scaling. Flexibility is compromised by fixed hardware.
Vector Processors (DSP, GPU): More efficient for parallelizable computing tasks. Offers high performance but has an inflexible memory hierarchy.
Programmable Logic (FPGA): Precisely tailored for latency-critical real-time applications. Provides flexibility but requires complex programming.
Application-Specific Integrated Circuits (ASICs): High performance and power efficiency but requires significant development time.
Network of Networks:
Robots, viewed as deterministic machines, function as a network of networks. Deterministic passing of real-time information through interconnected networks ensures coherent robot behavior. FPGAs and ASICs play a crucial role in guaranteeing determinism, which traditional CPU architectures struggle to provide.
Robot Computing Architecture:
Robotic systems utilizing ROS are designed as nodes in a computational graph. Efficient mapping of this graph-like structure onto silicon involves seamlessly running the ROS computational graph across various computing substrates, including CPUs, FPGAs, GPUs, and more.
Best Computing Resources:
Contrary to CPU-centric programming models, modern roboticists have the flexibility to leverage diverse computing platforms based on determinism, power consumption, throughput, and other factors. The selection and combination of CPU, FPGA, GPU, and other resources offer engineers a high degree of architectural flexibility in designing efficient robotic systems.