ROS 2 Humble
ROS 2 Humble – definition
ROS 2 Humble Hawksbill is a long-term support (LTS) distribution of the Robot Operating System 2. It was released on 23 May 2022 and is supported until May 2027 according to REP 2000. ROS 2 is not an operating system in the conventional sense. It is a set of middleware abstractions, client libraries, tools, message definitions, build systems, and packages used to develop distributed robotic applications.
In mobile robotics, ROS 2 Humble provides the software interfaces required to connect a UGV base, wheel encoders, IMU, LiDAR, depth cameras, GNSS receivers, and onboard compute hardware. It is commonly used to build a complete robot stack: low-level motion control, state estimation, mapping, localization, path planning, obstacle avoidance, telemetry, and simulation.
For Fictionlab platforms, ROS 2 Humble is relevant as a supported native software environment for Leo Rover, while Raph Rover ships with ROS 2 Jazzy on Ubuntu 24.04 LTS. Leo Rover uses a four-wheel differential-drive chassis and a Raspberry Pi-based built-in compute unit. ROS 2 Humble can expose its base controller through standard ROS interfaces and can be extended with external sensors and companion computers. Autonomy is not enabled by default. A navigation stack, sensor drivers, calibration, and safety logic must be integrated separately.
ROS 2 Humble architecture for UGV systems
ROS 2 Humble uses a distributed publish-subscribe architecture. Nodes exchange messages over a Data Distribution Service (DDS) middleware implementation through the ROS Middleware interface (RMW). This differs from ROS 1, which depended on a central ROS Master for node discovery and registration.
In a UGV deployment, separate nodes usually perform individual functions. A motor driver publishes odometry, an IMU driver publishes inertial measurements, a LiDAR driver publishes laser scans, and a navigation node publishes velocity commands. Nodes can run on one computer or across multiple computers on the same network.
/cmd_velcommonly usesgeometry_msgs/msg/Twistfor linear and angular velocity commands./odomcommonly usesnav_msgs/msg/Odometryfor wheel-based pose and velocity estimation./scancommonly usessensor_msgs/msg/LaserScanfor planar LiDAR data./imu/datacommonly usessensor_msgs/msg/Imufor angular velocity, linear acceleration, and orientation data./tfand/tf_staticdistribute coordinate-frame transforms throughtf2.
The expected frame hierarchy for a differential-drive rover normally includes map, odom, base_link, and sensor frames such as laser or camera_link. The coordinate conventions used by ROS are defined in REP 103. For example, REP 103 defines x as forward, y as left, and z as up for a robot body frame.
Quality of Service and real-time data delivery
ROS 2 Humble exposes DDS Quality of Service (QoS) settings per publisher and subscriber. QoS configuration is important on mobile robots because sensor streams may be frequent, wireless links may be unreliable, and stale control data can be unsafe.
| ROS 2 QoS policy | Purpose in a UGV system | Typical example |
|---|---|---|
| Reliability | Selects best-effort or reliable delivery. | Best-effort is often used for high-rate LiDAR or camera data. |
| Durability | Controls whether late-joining nodes receive stored data. | Transient local is appropriate for static transforms on /tf_static. |
| History and depth | Controls queued message history. | A small queue can reduce latency for velocity commands. |
| Deadline | Defines the expected interval between messages. | It can be monitored to detect a missing sensor stream. |
QoS incompatibility can prevent communication even when topic names and message types match. For example, a subscriber requesting reliable delivery cannot communicate with a publisher configured only for best-effort delivery. ROS 2 Humble provides QoS profiles in rclcpp and rclpy, including sensor-data-oriented settings.
Navigation and autonomy with ROS 2 Humble
ROS 2 Humble supports the Nav2 framework for autonomous navigation. Nav2 can combine a map, localization source, robot footprint, odometry, obstacle observations, planners, controllers, and recovery behaviors. It is suitable for indoor and outdoor UGV experiments when the sensor coverage and compute capacity are adequate.
A typical Leo Rover navigation configuration combines wheel odometry with IMU data and a two-dimensional LiDAR. The robot_localization package can fuse odometry and inertial data using an Extended Kalman Filter. SLAM packages such as slam_toolbox can create a 2D occupancy grid from LiDAR scans and transform estimates. For GNSS-based outdoor operation, a receiver with RTK corrections can contribute global position data, but GNSS alone does not provide sufficient obstacle perception for local navigation.
# Inspect active ROS 2 nodes and sensor topics
ros2 node list
ros2 topic list
ros2 topic hz /scan
ros2 topic echo /odom --once
# Start a Nav2 launch file with simulation time disabled
ros2 launch nav2_bringup navigation_launch.py use_sim_time:=false
On Leo Rover, computationally intensive perception pipelines may exceed the capacity of the default Raspberry Pi compute unit. Depth-camera processing, visual SLAM, dense point-cloud filtering, or neural-network inference can require a companion computer. Raph Rover can accommodate larger payloads and compute hardware where a field deployment requires additional sensors, battery capacity, or onboard processing.
Package management, builds, and deployment
ROS 2 Humble packages are commonly installed as Ubuntu packages or built from source in a colcon workspace. The primary build tool is colcon, while ament_cmake and ament_python are standard build-system integrations. Humble targets Ubuntu 22.04 Jammy Jellyfish as its primary Tier 1 platform under REP 2000.
mkdir -p ~/ugv_ws/src
cd ~/ugv_ws
colcon build --symlink-install
source install/setup.bash
For repeatable deployments, a rover application can be packaged in a Docker container. Containerization helps standardize dependencies, but direct access to serial devices, CAN interfaces, cameras, and GPU acceleration must be explicitly configured. Hardware control nodes should also be supervised by system services and protected with command timeouts or watchdog behavior.
ROS 2 Humble on Leo Rover and Raph Rover
Leo Rover documentation provides platform-specific interfaces, configuration guidance, and ROS integration material at docs.leorover.tech. A practical Humble-based Leo Rover setup usually starts with teleoperation, odometry verification, TF-frame validation, and sensor timestamp checks before enabling SLAM or Nav2.
Raph Rover is better suited to configurations that require a higher payload, larger sensor suite, or a dedicated edge-computing enclosure. Its standard software stack is ROS 2 Jazzy, but the software model remains the same: hardware drivers publish standardized messages, estimation nodes create robot state estimates, and navigation nodes consume those estimates to generate safe velocity commands.
References and documentation
The following sources document the relevant ROS 2 distribution, coordinate conventions, and architectural concepts. They should be consulted when configuring an interoperable UGV software stack.
- REP 2000 – ROS 2 Releases and Target Platforms
- REP 103 – Standard Units of Measure and Coordinate Conventions
- ROS 2 Humble documentation
- Navigation2 documentation
- Leo Rover technical documentation