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
| Topic | Title | Practical content |
|---|---|---|
| 1 | Advanced architecture | Loadable components, Lifecycle Nodes, callback groups and a robot fleet |
| 2 | A Behavior Tree for the delivery robot | Behavior trees with BehaviorTree.CPP |
| 3 | The delivery robot's transform tree | Static and dynamic TF2, robot_state_publisher, kinematics of a 2-DOF arm |
| 4 | The delivery robot learns where it is | Sensor fusion (EKF), SLAM and localization with AMCL |
| 5 | The delivery robot navigates autonomously | Planning, local control (DWB/TEB) and recovery with Nav2 |
| 6 | The delivery robot learns to see | Perception: camera, cv_bridge, point clouds, simple detection |
| 7 | The delivery robot protects itself | SROS2 security: keystore, enclaves and access policies |
| 8 | Tuning quality of service | QoS 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.