ROS 2 Runtime#
The Robotics AI Suite uses the Robot Operating System 2 (ROS 2) as its primary runtime execution engine, communication middleware, and lifecycle manager. ROS 2 provides the modular backbone that interconnects sensor ingestion, hardware abstraction, artificial intelligence inference, autonomous navigation, robotic manipulation, and deterministic motor control into a unified software stack.
The suite standardizes on ROS 2 Jazzy Jalisco running on Canonical Ubuntu 24.04 LTS (Noble Numbat) across supported Intel platforms. For hardware and platform prerequisites, refer to the System Requirements.
Architecture & Core Capabilities#
ROS 2 delivers an industrial-grade, distributed architecture designed for robotics systems with demanding performance, reliability, and real-time constraints.
Publish-Subscribe, Services, and Actions#
Robotics AI Suite applications communicate across processes and distributed compute nodes using standard ROS 2 communication primitives:
Topics (Publish-Subscribe): Unidirectional streaming for continuous, high-throughput data such as camera video frames (
sensor_msgs/Image), 3D point clouds (sensor_msgs/PointCloud2), and odometry measurements (nav_msgs/Odometry).Services (Request-Response): Synchronous or asynchronous two-way communication for configuration queries, mode switches, and calibration requests.
Actions (Goal-Feedback-Result): Long-running preemptible task execution with real-time feedback, utilized by Nav2 navigation goals and MoveIt 2 trajectory executions.
Data Distribution Service (DDS) & Zero-Copy Transport#
Communication in ROS 2 relies on Data Distribution Service (DDS) middleware implementations such as Fast DDS and Cyclone DDS. The Robotics AI Suite takes advantage of:
Intra-Process Communication (IPC): Minimizes serialization and socket overhead by using shared memory and loaned messages (
rclcpp::LoanedMessage) to achieve zero-copy data passing between co-located nodes. This is critical for high-resolution vision and volumetric point-cloud pipelines.Quality of Service (QoS) Tuning: Configurable reliability (reliable vs. best-effort), durability (transient local vs. volatile), history depth, and deadline/liveliness policies to prioritize critical motor control commands over best-effort diagnostic telemetry.
Managed Node Lifecycles & Composable Nodes#
Lifecycle Nodes (
rclcpp_lifecycle): Provides deterministic state-machine management (unconfigured,inactive,active,finalized). This allows orchestrating complex robotic graphs where sensor drivers must reach active states before navigation or AI perception nodes begin execution.Composable Nodes & Component Containers: Packages multiple functional nodes into dynamic shared libraries loaded inside a single runtime process container (
rclcpp_components), eliminating process boundaries while preserving modular code organization.
Robotics AI Suite Integration#
ROS 2 serves as the central orchestration bus connecting all components in the Robotics AI Suite:
AI Perception & Inference: Interconnects camera feeds with the OpenVINO™ Toolkit inference engine. Vision nodes publish inference bounding boxes, segmented masks, and classification outputs onto standard ROS 2 topics for downstream planning.
Sensors: Interfaces with Sensors including RealSense depth cameras (
realsense2_camera), industrial USB/GMSL vision sensors, and 2D/3D LiDARs.Navigation: Powers the Nav2 stack, augmented by Intel-optimized components such as the ITS Path Planner, Fast Mapping, and Robot Re-localization.
Manipulation: Integrates MoveIt 2 and MoveIt 2 Servo for Cartesian velocity jog and trajectory execution on multi-axis robotic arms.
Real-Time Determinism: Operates alongside Real-time Linux PREEMPT_RT kernels and fieldbuses such as the IgH EtherCAT Master Stack to execute hard real-time control loops.
Simulation: Enables digital-twin testing with Gazebo Simulation for full software-in-the-loop (SITL) validation before physical hardware deployment.
Getting Started with ROS 2#
Installation#
ROS 2 Jazzy is included by default when configuring a target system using the Robotics AI Suite:
Express & Image Composer: If you installed the suite using the Express Setup or Image Composer Tool, ROS 2 Jazzy, base dependencies, and Intel platform packages are already installed and configured.
Manual Installation: If performing a custom setup, follow the official ROS 2 Jazzy installation instructions for Ubuntu.
Environment Setup#
To initialize the ROS 2 environment in your terminal session, source the setup script:
source /opt/ros/jazzy/setup.bash
To automatically configure every new shell, append the command to your ~/.bashrc:
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
Network Domain Isolation (ROS_DOMAIN_ID)#
When multiple robots or development workstations share the same local network, isolate their DDS message traffic by assigning a distinct ROS_DOMAIN_ID (integer between 0 and 101):
export ROS_DOMAIN_ID=42
Note
Assign each physical robot or independent simulation session a unique ROS_DOMAIN_ID to prevent node collisions and cross-talk on the local subnet.
Verifying the Runtime#
Verify your ROS 2 runtime and environment configuration:
Check runtime environment health:
ros2 doctorTest communication between two nodes:
In one terminal, start a publisher:
ros2 run demo_nodes_cpp talker
In a second terminal, start a subscriber:
ros2 run demo_nodes_py listener
Inspect active nodes and topics:
ros2 node list ros2 topic list
Hardware Blueprints & Solutions#
Explore how the ROS 2 runtime drives end-to-end hardware solutions and reference applications:
Deploy ROS 2 Jazzy navigation, RTAB-Map SLAM, and sensor pipelines on mobile robot platforms.
Implement vision-guided pick-and-place workflows with MoveIt 2 Servo and Universal Robots manipulators.
Run Agentic ROS frameworks, model predictive control (MPC), and high-frequency LiDAR odometry.
Stream color, depth, and point cloud data from RealSense cameras to ROS 2 topics and RViz2.