Autonomous Navigation and SLAM
Mapping, localisation and path planning with ROS 2 Nav2.
Taught by Sristi Maharjan · Robotics Engineer
What you'll learn
- Explain the mapping, localisation, planning and control layers of an autonomy stack and how Nav2 implements them
- Implement an occupancy grid with log-odds updates and a lidar sensor model in Python
- Implement Monte Carlo localisation with a particle filter and configure AMCL for a real map
- Build, save and serialise maps with SLAM Toolbox and explain pose-graph loop closure
- Configure Nav2 costmaps, global planners and local controllers for a differential-drive robot
- Customise the behaviour tree and recovery behaviours and script multi-waypoint missions in Python
About this course
Autonomous navigation is the flagship skill of mobile robotics: a robot that builds a map of an unknown space, works out where it is, and plans and follows safe paths to goals. This advanced course teaches the algorithms and the production tools together. You will implement an occupancy grid and a particle filter in Python to understand the mathematics, then run SLAM Toolbox to build maps, AMCL to localise, and the ROS 2 Nav2 stack to plan and control motion with layered costmaps, global planners and local controllers. The final lessons cover behaviour trees, recovery behaviours and scripting autonomous missions with the Nav2 Simple Commander API. Everything runs in Gazebo simulation with a TurtleBot-style robot, so no hardware is required, though the configuration transfers directly to real platforms. The course assumes working knowledge of ROS 2, Python and basic probability, and is aimed at engineers and graduate students building warehouse, service or research robots.
Course content
6 lessons- 1The Autonomy Stack and a First Nav2 RunMapping, localisation, planning and control as layers, and how Nav2 organises them; run the simulation demo.Preview
- 2Occupancy Grids and Lidar Sensor ModelsBuild a probabilistic occupancy grid from scratch with log-odds updates and ray casting in Python.
- 3Localisation with Particle Filters and AMCLImplement Monte Carlo localisation in Python, then configure AMCL to localise a robot on a saved map.
- 4SLAM with SLAM ToolboxBuild maps of unknown spaces with pose-graph SLAM, understand loop closure, and save maps for navigation.
- 5Nav2 Costmaps, Planners and ControllersConfigure layered costmaps, choose a global planner and a local controller, and tune them for smooth driving.
- 6Behaviour Trees, Recovery and Autonomous MissionsCustomise the Nav2 behaviour tree and recovery behaviours, then script multi-waypoint missions in Python.