Skip to content

Lesson search

Jump to a lesson or a section inside it

All 14 lessons unlocked — go at your own pace

Drive your robot car in Gazebo — from empty terminal to a car that stops for obstacles.

A hands-on ROS 2 course built around one specific machine: your 4-wheeled, rear-wheel-drive car. No turtlebots, no toy examples — your files, your world, your code.

Browse all lessons

14

lessons

≈11 h

of hands-on work

1

robot — yours

Your robot — rear-wheel-drive car with lidar, camera and IMU mountsbase_link0.4 × 0.3 × 0.15 m · 5 kgmobile_robotlidar_linkimu_linkcamera_linkrear wheels · drivenfront wheels · free+x forward

🗺️ The roadmap

Every lesson: why it exists → the exact commands and complete files → expected output → a checkpoint quiz. Mark lessons done as you go (✅ button at the bottom of each lesson).

your progress

0/14 · 0%

Phase 1 · Setup

  • 00
  • 01
  • 02

Phase 2 · Get the car into Gazebo

  • 03
  • 04
  • 05

Phase 3 · Drive it

  • 06
  • 07

Phase 4 · Give the car senses

  • 8a
  • 8b
  • 8c

Phase 5 · Write your own code

  • 09
  • 10

Phase 6 · Graduation

  • 11

🚗 Meet your robot

One file (car.urdf.xacro) describes the whole machine. Lessons 02+ teach it line by line — here’s the spec sheet.

Your robot — rear-wheel-drive car with lidar, camera and IMU mountsbase_link0.4 × 0.3 × 0.15 m · 5 kgmobile_robotlidar_linkimu_linkcamera_linkrear wheels · drivenfront wheels · free+x forward
Chassis (base_link)
0.4 × 0.3 × 0.15 m box · 5 kg
Wheels
4 × cylinder r=0.08 m, w=0.04 m
Drive
rear-wheel differential (skid-steer)
Front wheels
passive continuous joints
Drive plugin
gz-sim-diff-drive-system → cmd_vel / odom / tf
Joint feedback
gz-sim-joint-state-publisher → joint_states
Lidar (8a)
gpu_lidar · 360 samples · 10 Hz · 0.12–10 m
Camera (8b)
640×480 RGB · 15 Hz
IMU (8c)
50 Hz accel + gyro
Sensor switches
xacro args enable_lidar / enable_camera / enable_imu
Download car.urdf.xacro (the only robot file you’ll ever need)