2026/27 course

Intermediate ROS 2: autonomous navigation and robotic systems

Second course of the ROS 2 Continuing Education program. It assumes the fundamentals from Introduction have been mastered and takes the same autonomous delivery robot (RobotDelivery) to a production architecture: components and lifecycle, behavior trees, TF2 and kinematics, localization, autonomous navigation with Nav2, perception, SROS2 security and QoS tuning.

Syllabus

Course structure

TopicTitlePractical content
1Advanced architectureLoadable components, Lifecycle Nodes, callback groups and a robot fleet
2A Behavior Tree for the delivery robotBehavior trees with BehaviorTree.CPP
3The delivery robot's transform treeStatic and dynamic TF2, robot_state_publisher, kinematics of a 2-DOF arm
4The delivery robot learns where it isSensor fusion (EKF), SLAM and localization with AMCL
5The delivery robot navigates autonomouslyPlanning, local control (DWB/TEB) and recovery with Nav2
6The delivery robot learns to seePerception: camera, cv_bridge, point clouds, simple detection
7The delivery robot protects itselfSROS2 security: keystore, enclaves and access policies
8Tuning quality of serviceQoS profiles, deadlines and performance measurement

Verifiable practice

Validation and demo repository

The ros2-intermedio-uned repository contains the automatic validation package for all 8 topics (a ROS 2 launcher per exercise) and example/demo packages for each topic. It is a living repository: I will keep expanding its documentation and content throughout the course.

Some exercises depend on third-party frameworks (BehaviorTree.CPP in Topic 2, TEB Local Planner in Topic 5) that are documented as a requirement in the repository; the corresponding validators fail with a clear diagnostic message if they are not installed.