Research Group — Intern Onboarding

Autonomous
Mobile Robots
Onboarding Plan

Duration 2 weeks
Stack ROS 2 · Nav2 · Gazebo
Prerequisites Python · Linux · No robotics required
Days
1–3

Set up the environment

Get something moving before reading anything

Docs ROS 2 Humble — Installation

Install ROS 2 Humble first. It is the recommended LTS version for Nav2 and has the widest package support.

Docs Nav2 — Getting Started

The official Nav2 getting started guide. Run TurtleBot4 in Gazebo and navigate to a goal point. TurtleBot4 runs ROS 2 natively and is the current ROBOTIS reference platform.

Docs TurtleBot4 — Simulation setup

The current reference platform for Nav2, with native ROS 2 support. Simulates with Ignition Gazebo out of the box — no hardware needed.

Milestone

TurtleBot4 navigates to a clicked goal point in simulation. Can launch the stack, build a map with teleop, save it, and send a Nav2 goal.

Days
4–5

Understand localization

How does the robot know where it is?

Paper Thrun, Fox & Burgard — "Robust Monte Carlo Localization for Mobile Robots" (2001)

The algorithm behind Nav2's AMCL package. Explains how the robot uses particle filters to localize itself on a known map using laser scan data.

Docs SLAM Toolbox — building the map first

Before AMCL can localize, you need a map. SLAM Toolbox is the standard tool in Nav2 for building one from lidar data.

Milestone

Can explain what AMCL is doing when the robot localizes. Understands the difference between mapping mode and localization mode.

Days
6–7

Understand collision avoidance

How does the robot avoid obstacles in real time?

Paper Fox, Burgard & Thrun — "The Dynamic Window Approach to Collision Avoidance" (1997)

The algorithm behind Nav2's DWB controller. Only 8 pages, very clearly written. Explains how the robot samples velocity commands and picks the one that avoids obstacles while tracking the global path.

Docs Nav2 Costmap 2D

Costmaps are how Nav2 represents obstacles for both the global and local planner. Understanding inflation radius and layer configuration is essential for any real deployment.

Milestone

Can tune costmap inflation radius and explain the effect. Understands the role of the local planner versus the global planner.

Days
8–10

Understand the full system

How do all the modules fit together?

Paper Macenski et al. — "Marathon 2: A Navigation System" (IROS 2020)

The official Nav2 architecture paper by its main author, Steve Macenski. Read this after running Nav2 for a few days — every design decision will make sense in context.

Talk Nav2 architecture talks — ROSCon & YouTube

Watch alongside the Marathon 2 paper. The author walks through every component in a live setting, which helps connect the paper to actual code.

Milestone

Can draw the full Nav2 pipeline from scratch: sensor → costmap → BT navigator → global planner → local controller → cmd_vel.


Supplementary references

Keep these open throughout. Reach for them when you hit a wall.

Docs Nav2 configuration guide — all parameters

The definitive reference when tuning any Nav2 component. Bookmark this and use it constantly.

Docs Nav2 tutorials — beyond getting started

Dynamic obstacles, custom plugins, multi-robot, GPS navigation, and real hardware deployment.

Paper Macenski et al. — "Regulated Pure Pursuit for Robot Path Tracking" (2023)

The RPP controller in Nav2 — a simpler and more robust alternative to DWB for many real-world use cases.

Code Nav2 Smac Planner — modern global planner

The current recommended global planner in Nav2, replacing the older NavFn. Supports SE2 and hybrid-A* planning for non-holonomic robots.

Community Nav2 community — where to get help

When stuck, these are the fastest ways to get answers. The Nav2 Discord is especially active.