The Robotic Processing Unit (RPU
1) is a robot-specific processing unit that uses hardware acceleration and maps robotics computations efficiently to its CPUs, FPGAs and GPUs to obtain best performance. In particular, it specializes in improving the Robot Operating System (ROS 2) related robot computational graphs on underlying compute resources.
This project was originally sponsored by Acceleration Robotics and driven by the ROS 2 Hardware Acceleration Working Group. We are open to additional sponsorships and collaborations. Contact here for sponsoring the Robotic Processing Unit (RPU
) project. For commercial support regarding Robotic Processing Units, get commercial support here. If you're looking to buy a fully assembled unit, buy a Robotic Processing Unit here. Or instead, build your own Robot Processing Unit here.
Robotic Processing Units (RPUs) are robot brains, processing units for robots that map efficiently robot behaviors (programmed as ROS computational graphs) to underlying compute resources. They empower robots with the ability to react faster, consume less power, and deliver additional real-time capabilities.
The goal of this project is to provide robotic architects a reference hardware blueprint for building hardware accelerated robotic brains. To do so, the project leverages existing off-the-shelf hardware acceleration development platforms will be used to prototype a robot-specific processing unit that performs best when it comes to ROS 2 and robot computational graphs.
The vision is that Robotic Processing Units will empower robots with the ability to react faster (lower latency, higher throughput), consume less power, and deliver additional real-time capabilities with their custom compute architectures that fit best the usual robotics pipelines. This includes tasks across sensing, perception, mapping, localization, motion control, low-level control and actuation.
Milestone 1: first demonstrators - raise awareness
- Robotic Processing Unit (
RPU
) project announcement - RFC to receive feedback and interest https://forms.gle/d4rCCoLpx9ciPiau9
- Use cases driving the architecture and the development
- Perception (
image_pipeline
and friends)-
perception_2nodes
-
perception_3nodes
- Maybe consider a more elaborated graph with multi-processing paths involving more complex CV crunching, e.g. HOG (Histogram of Oriented Gradients)?
-
-
Navigation-
Still in dicussions, open to feedback.
-
- Perception (
- Partition work into demonstrators, prioritize and execute
- Disclose an initial hardware reference design of the Robotic Processing Unit (this repo)
- Disclose benchmarking results and discuss (connected to ros-acceleration/community#10)
You can build your own Robotic Processing Unit by purchasing each individual part and 3D printing the corresponding mechanical parts.
Part | Quantity |
---|---|
Base (mechanical part) |
1 |
Cover (mechanical part) |
1 |
KR260 adapter (mechanical part) |
1 |
AGX Orin adapter (mechanical part) |
1 |
Kria KR260 robotics development kit |
1 |
Jetson AGX Orin developer kit |
1 |
PYBE30-Q24-S12-T DC-DC converter |
1 |
M5 bolt (ISO 7046) |
4 |
M3 bolt (ISO 7046) |
14 |
M3 nut (DIN 934) |
14 |
Step | Image | Description |
---|---|---|
0 |
Here's the exploded view of the Robotic Processing Unit. This should help guide the process of building your own. Start by soldering the power wiring to the KR260 and AGX Orin boards separately. You need to do so on the power jack pins of each one of the robotics development kits2. |
|
1 |
Screw KR260 board to KR260 adapter with 4x M3 bolts (ISO7046) and 4x M3 nuts (DIN934). |
|
2 |
Screw AGX Orin board to AGX Orin adapter with the same original bolts included in the development kit. |
|
3 |
Connect the previously soldered wires on both dev. boards to the PYBE30-Q24-S12-T DC-DC converter. Power input should come from the AGX Orin and regulated output to the KR260 . |
|
4 |
Screw the PYBE30-Q24-S12-T DC-DC converter, the AGX orin and the KR260 to the Base . Use 10x M3 bolts (ISO7046) and 10x M3 nuts (DIN934). |
|
5 |
Finally, fix the 4 holes of the cover and join the base and cover with 4x M5 bolts (ISO7046). |
ROBOTCORE® is a commercial solution of a robot-specific processing unit that helps map Robot Operating System (ROS) computational graphs to its CPUs, GPU and FPGA efficiently to obtain best performance. It empowers robots with the ability to react faster, consume less power, and deliver additional real-time capabilities. ROBOTCORE can be purchased here.
With ROBOTCORE®, Acceleration Robotics offers also the following ROS 2 API-compatible hardware acceleration tools and robot Intellectual Property (IP) cores (robot cores
):
- ROBOTCORE®
Framework
, a hardware acceleration framework for ROS and ROS 2. - ROBOTCORE®
Cloud
, tools to speed-up ROS 2 graphs with the cloud, and in the cloud. - ROBOTCORE®
Perception
, accelerated ROS 2 robotics perception stack. ROS 2-API compatible with default perception stack. - ROBOTCORE®
Transform
, accelerated ROS 2 coordinate transformations (tf2
). ROS 2-API compatible with defaulttf2
.
For commercial support while building on top of the Robotic Processing Unit project, reach out here.
Footnotes
-
We're very aware that the RPU acronym is overloaded and also used to refer to other types of processing units including Remote Processing Unit, Ray Processing Unit, Real-time Processing Unit, Radio Processing Unit, Regional Processing Unit or RAID Processing Unit among others. See comparison for fun. ↩
-
You'll need to unscrew AGX Orin's 4 outer bolts and extract aluminum lower support to solder it properly. ↩