Skip to main content

01: The Robotic Nervous System (ROS 2)

Overview of ROS 2 as a Robotic Nervous System

ROS 2 functions as the communication backbone of modern robots. It provides standardized messaging, distributed computing, and real-time control required for humanoid systems. The architecture supports modular design where each robotic capability—perception, locomotion, balance, manipulation—runs as an independent process yet stays synchronized through the middleware.

ROS 2 uses DDS (Data Distribution Service) as its transport layer, enabling reliable message passing, time-critical scheduling, and multi-machine collaboration. For humanoid robotics, this structure behaves like a biological nervous system where components sense, decide, and act through continuous information exchange.

ROS 2 Nodes

A node represents a single computational unit inside a robot. Each sensor, motor controller, state estimator, or AI module runs as a node. Nodes remain loosely coupled and operate independently.

Key Properties

  • Runs as a separate process.

  • Publishes and subscribes to data streams.

  • Provides actions, services, or parameters.

  • Can be deployed on different machines across a network.

In humanoids, nodes control subsystems such as IMU sensing, joint control loops, camera processing, footstep planning, and trajectory generation.

ROS 2 Topics

Topics provide unidirectional message flow from publishers to subscribers. They support continuous data streaming and are essential for real-time humanoid control.

Use Cases

  1. IMU → balance controller

  2. Camera → vision pipeline

  3. Joint encoders → state estimator

  4. AI decision module → locomotion manager

Characteristics

  • Asynchronous communication

  • Supports multiple publishers and subscribers

  • Uses DDS for Quality of Service (QoS) configurations

  • Humanoid robots rely heavily on topics for streaming large sensor data and fast joint feedback.

ROS 2 Services

Services support request–response interactions. They are used for operations requiring confirmation or immediate decision-making.

  • Examples in Humanoid Systems

  • Requesting joint calibration

  • Triggering a predefined motion

  • Querying robot state snapshots

  • Fetching kinematic configurations

  • Services complement topics when deterministic replies are required.

Bridging Python Agents to ROS 2 Using rclpy

Python-based agents communicate with ROS 2 through the rclpy client library. This enables integration of higher-level AI logic with low-level robotic controllers.

  • Capabilities of rclpy

  • Create and manage nodes

  • Publish and subscribe to topics

  • Define and call services

  • Parameter handling

  • Timers and asynchronous callbacks

Agent Integration Workflow

  • The Python agent receives sensory information.

  • The agent analyzes the environment or task.

  • rclpy publishes control commands to motion controllers.

  • ROS nodes execute actuator commands on hardware.

  • This bridge is fundamental for physical AI systems that combine reasoning, planning, and robotics.

URDF for Humanoid Robots

URDF (Unified Robot Description Format) models the mechanical structure of a robot. It defines joints, links, coordinate frames, and physical properties required for simulation and real-world execution.

Core Components

    • Links: Rigid bodies (torso, limbs, head).
    • Joints: Movement constraints (revolute, continuous, prismatic).
    • Inertial parameters: Mass, center of mass, inertia matrix.
    • Visual elements: Meshes for appearance.
    • Collision models: Geometric primitives for physics engines.

Purpose of URDF

  • Generates accurate kinematic and dynamic models

  • Enables visualization in RViz

  • Supports simulation through Gazebo or Isaac

  • Provides joint and transform information to controller nodes

  • Humanoid robots require highly detailed URDF structures due to multi-joint arms, legs, and balance-critical configurations.