The core of robots resides in their computing systems including both the hardware and the software levels. This entails computer architectures, algorithms but also frameworks for development. With robotics called to be the next major driver for computing demand and ROS 2 the standard framework for robot application development, the ability to build faster ROS 2 graphs with hardware acceleration in an open and vendor agnostic manner will be instrumental for the development of robotic systems. We at Acceleration Robotics discuss the technology enablers that empower this, group them into the ROS 2 Hardware Acceleration Stack and present ROBOTCORE™ as its implementation.

The ROS 2 Hardware Acceleration Stack

Enter the ROS 2 Hardware Acceleration Stack, a series of extensions to ROS 2 which allow to leverage hardware acceleration and create custom compute architectures providing a faster ROS 2 execution and a timing-safe event-driven programming interface. The stack is composed of 4 key elements:

Standard/convention Title Rationale
REP 2009 Type Negotiation Feature Allow ROS 2 Nodes to dynamically negotiate the message types used by publishers and subscriptions, as well adaptively modifying the behavior of publisher and subscriptions to align with accelerators
REP 2008 ROS 2 Hardware Acceleration Architecture and Conventions Architectural pillars and conventions required to introduce hardware acceleration in ROS 2 in a scalable and technology-agnostic manner. Presents one interface for all hardware acceleration vendors.
REP 2007 Type Adaptation Feature An extension to rclcpp that will make it easier to convert between ROS types and custom, user-defined types for Topics, Services, and Actions.
REP 2000 ROS 2 Releases and Target Platforms Production-grade multi-platform ROS support with Yocto

While leading the ROS 2 Hardware Acceleration Working Group, Acceleration Robotics has contributed and maintains open source implementations of various components of the stack above. A complete implementation of the ROS 2 Hardware Acceleration Stack including support, documentation, examples as well as reference designs is realized within our product ROBOTCORE™. The section below discuss in more detail each one of its capabilities.

REP 2009 - Type Negotiation Feature: adaptively modify pub/sub behavior for accelerators

Type negotiation feature allow ROS 2 Nodes to dynamically negotiate the message types used by publishers and subscriptions, as well adaptively modifying the behavior of publisher and subscriptions. With type negotiation ROS 2 Nodes can a) publish different types of messages depending on the graph, b) publish multiple formats at the same time, c) enable only necessary publishers and subscriptions, d) delay publisher and subscription preferences while waiting for additional information from the graph.

ROS 2 Type Negotiation (REP 2009) allow Nodes to dynamically negotiate the message types used by publishers and subscriptions, as well adaptively modifying the behavior of publisher and subscriptions to align with accelerators. ROBOTCORE™ implements type negotiation and ships with documentation, examples and reference designs on how to include accelerators and speed-up ROS 2 computational graphs.

REP 2008 - ROS 2 Hardware acceleration architecture and conventions: One interface for all hardware acceleration vendors

Implementing the open architecture for hardware acceleration of REP 2008, the stack deals with vendor proprietary libraries for hardware acceleration in robotics. This provides a common consistent API for creating accelerators, which helps accelerate computations, increase performance and abstract away the complexity of bringing ROS computational graphs to any of the supported silicon architectures. All while delivering the common ROS development flow.

ROBOTCORE™ deals with vendor proprietary libraries for hardware acceleration in robotics. It helps accelerate computations, increase performance and abstract away the complexity of bringing your ROS computational graphs to your favourite silicon architecture. All while delivering the common ROS development flow.

REP 2007 - Type Adaptation Feature: No ROS type conversion for intra-process communications unless necessary

Type Adaptation introduces a series of extensions to ROS 2 rclcpp that will make it easier to convert between ROS types and custom, user-defined types for Topics, Services, and Actions. In the scope of the ROS 2 Hardware Acceleration Stack, type adaptation feature helps avoid unnecessary type conversions when interacting between Nodes and accelerators, which speeds up the dataflow in the graph.

Type Adaptation feature introduces rclcpp extensions that will make it easier to convert between ROS types and custom, user-defined types for Topics, Services, and Actions. ROBOTCORE™ implements type adaptation and ships with documentation, examples and reference designs on how to optimize Node-Node and Node-Accelerator interactions to speed-up ROS 2 computational graphs.

REP 2000 - ROS 2 Releases and Target Platforms, Yocto enablement: Production-grade multi-platform ROS support with Yocto

Instead of relying on common development-oriented Linux distros (such as Ubuntu), Yocto allows to build a customized Linux system for each robotics use case with ROS, providing unmatched granularity, performance and security. We contributed a port of the Yocto recipes of ROS 2 Humble which we leverage within ROBOTCORE™ to build production-grade ROS 2 custom operating systems for robots.

ROBOTCORE™ leverages the Yocto project to add support for the most popular hardware acceleration solutions and development kits to build robots with ROS 2.

ROBOTCORE™ Hardware Acceleration Framework for ROS

ROBOTCORE™ helps build custom compute architectures fo robots, or robot cores, that make robots faster, more deterministic and power-efficient. Simply put, it provides a development, build and deployment experience for creating robot hardware and hardware accelerators similar to the standard, non-accelerated ROS development flow.

ROBOTCORE™ implements the ROS 2 Hardware Acceleration Stack and allows to easily leverage hardware acceleration in a ROS-centric manner and build custom compute architectures for robots, or "robot cores" (IP cores, or Intellectual Property cores, sometimes also referred to as chipware). With support for various silicon vendors, with ROBOTCORE™ roboticists can adapt one or simultaneously more of the properties of their computational graphs (e.g., its speed, determinism or power consumption) optimizing the amount of hardware resources and, as a consequence, the performance in an accelerated computational graph dataflow.

Get in touch to learn more.