Mobile Robotics

An 8-week syllabus for the mobile robotics track of the Aurora Core Workshop Series 3.0. Students move from the basics of control and Linux to full ROS2 simulations of a differential drive robot and an Ackermann steering robot.

Syllabus by O.C Kogo (CeeTee), based on the Series 2.0 mobile robotics track designed by Bakel.

A wheeled ground robot on a workshop floor
8

weeks of structured learning

2

scheduled classes each week

90

minutes per class

2

optional 30-minute office hours each week

What this track covers

The track keeps a tight scope so that every week builds on the one before it.

This document sets out the full plan for the mobile robotics track of the Aurora Core Workshop Series 3.0. It lists the topics and projects for each week, explains how the course is delivered, and gives the reasoning behind the order of topics.

The syllabus is strongly modeled on the Series 2.0 mobile robotics track designed by Bakel. A few changes were made to match the differences and limits between his setup and the one used here.

Design falls outside the scope of the course and is only discussed briefly.

Ground robotics only

The track is limited to robots that move on the ground.

Two drive systems

Differential drive and Ackermann steering are both covered in depth.

Omni-drive introduced

The omni-drive system is introduced at the start of the course but is not covered further.

Simulation based

All practical work runs in Gazebo and rviz on the student's own laptop or PC.

Detailed course outline

The eight weeks fall into three stages. The first four weeks build the shared groundwork. The last four apply it to two different robots.

Weeks 1 to 4: Groundwork

Students learn what mobile robotics is, how control and sensing work, how to use Linux and Git, and how ROS2 and Gazebo fit together.

A laptop showing a terminal and code
1
Week 1

Introduction to Mobile Robotics

  • Mobile robotics definition
  • Subsections within mobile robotics
  • Mobile robotics architecture
  • Linux dual boot or WSL installation
2
Week 2

Control Theory and Embedded Systems

  • Embedded computingSBCs, microcontrollers, SOCs and microprocessors
  • SensorsIMUs, lidars, encoders, RGBD cameras and ultrasonic sensors
  • ActuatorsServo motors and linear servo motors
  • Feedforward versus feedback control
  • PID control
  • Kalman filters

The embedded systems topics are introduced but not covered in depth. Further discussion happens in office hours and Nerd Out classes.

3
Week 3

Linux and Version Control

  • Linux command line instructions
  • Introduction to Git
  • Introduction to GitHub
  • ROS2 installation
4
Week 4

Introduction to ROS2 and Gazebo

  • ROS2 design philosophy
  • Nodes, services and actions
  • Implementing a simple publisher and subscriber node in Python
  • Introduction to Gazebo and its ROS2 interface

Weeks 5 and 6: Differential drive

Students work out the kinematics of a two-wheeled drive, then build up the Fenrir robot in simulation from basic motion through to navigation.

A two-wheeled differential drive robot
5
Week 5

Introduction to the Differential Drive System

  • Differential drive kinematics
  • ROS2 implementation of the Fenrir differential drive robot in Gazebo and rviz
6
Week 6

Differential Drive System continued

  • ROS2 implementation continued: control packages
  • ROS2 implementation continued: SLAM and navigation
  • Active vision implementation

Weeks 7 and 8: Ackermann steering

Students switch to a car-like platform, learn its kinematics, and repeat the control, SLAM and navigation work on the Yahboom Rosmaster X3.

A car-like robot with steered front wheels
7
Week 7

Introduction to the Ackermann Steering

  • Ackermann steering kinematics
  • ROS2 implementation of the Yahboom Rosmaster X3 in Gazebo and rviz
8
Week 8

Ackermann Steering continued

  • ROS2 implementation continued: control packages
  • ROS2 implementation continued: SLAM and navigation

Course delivery

Fitting this much material into two classes a week over eight weeks is hard. Extra structures are in place so that every student can keep up.

Students working on laptops during a robotics workshop

Scheduled classes

There are two classes each week, and each runs for ninety minutes. The class days have not been confirmed yet and will be announced once the schedule is final.

Office hours

Each week has two flexible, optional meetings of thirty minutes. They are used to break down complex topics, fix code and solve system-specific problems.

Students may still contact the team outside office hours. Holding the sessions at fixed points lets the team collect feedback on general problems and improve later workshops.

Research assignments

Strong robotics engineers need to be able to research. Students will read canonical research papers and textbooks for the more theoretical and algorithmic topics. They will not be asked to do graduate-level research.

The aim is to teach students to parse dense material, so that they use AI as a tool and not as the solution. YouTube videos are also shared as support material.

Nerd Out classes

These optional classes go deeper into topics already covered, and they give students a space to share their own knowledge and ideas.

They are held every two weeks, have no fixed duration, and are scheduled around the availability of team members.

Textbooks and research papers on a desk

Course philosophy

The course aims at a strong conceptual understanding of the fundamentals behind mobile robotics, together with practical experience. Three phrases sum this up.

Conceptual understanding

Students should be painted a picture and not made to cram a formula. They should hold a clear mental image of each concept, so that their understanding stays deep even when some details are fuzzy.

Fundamental topics

The basics, such as linear algebra and data structures and algorithms, are repeated and stressed throughout the course as very important.

Practical experience

There is no access to real robots. Simulations in Gazebo and rviz stand in for them and fit naturally with the rest of the course.

How each week runs

Every week starts with writing the algorithms by hand, figuratively speaking. Only then does the class move to the community-standard implementations.

Where each topic sits

Every topic in the syllabus falls under one of these areas.

Math Physics Control AI Embedded systems

Robots and tools

Students work in simulation with ROS2, Gazebo and rviz. Two robot models carry the practical work.

A TurtleBot3 Waffle style differential drive robot
Weeks 5 and 6

Fenrir

A ROS2 based simulated differential drive robot developed from the TurtleBot3 Waffle. It replaces the tracked robot used in the previous workshop.

A Yahboom Rosmaster X3 research robot
Weeks 7 and 8

Yahboom Rosmaster X3

The Ackermann steering platform for the course, simulated in Gazebo and rviz. It replaces the Rosmaster A1 because STL files for simulation are available.

A robot simulation running on a monitor

Assumptions and requirements

Students do not need a robotics background to join. They do need some programming experience and their own computer.

What students should bring

  • Some programming knowledge. Python and C++ are preferred, but any language is acceptable, even at a basic level.
  • Rudimentary calculus at a conceptual level.
  • A laptop or PC to complete the course.

What is not assumed

  • Linear algebra
  • Control theory
  • ROS2
  • AI implementation