aibotlabs.AI

aibotlabs.ai Masterclass · Season 1

Life of an AMR

Autonomous mobile robotics with ROS 2 Jazzy. Build the thing, break it deliberately, and learn to read what it tells you.

Modules
8
in sequence
Lessons
45
each with a lab
Contact hours
48
planned, not measured
Mentor
1
cohort capped at 20

What you actually do

Every lesson ends at a terminal. You run a two-node system and read its structure; you build a robot description and watch the transform tree resolve; you take a map, localise in it, and drive to a goal. The book this course is built on runs to 130,000 words and 43 figures, and every computed figure in it — inertia tensors, Kalman updates, log-odds tables, docking gains — was worked out and checked before it was printed.

The method is predict-then-measure. You write down what you expect, then you run it, and the difference is the lesson. That is why the expected observations are held back until you have recorded a result.

How you are assessed

  • Knowledge checks after each lesson. You answer, you submit, and only then do you see the author’s model answer and marking guidance — and score yourself against it. Your response locks when you submit, so the score means something.
  • Eight module assessments, 100 marks each, marked by your mentor.
  • A capstone: an integrated AMR delivery, defended.

The syllabus

Every lesson, in order, with the question it answers. This is generated from the published course, not written for the sales page.

M1Foundation: Linux and ROS 25 lessons · 5 h
1.1
Robots, AMRs and the role of ROS 2
What are we building, and why does it need middleware?
60 min
not executed
1.2
Ubuntu Linux for robotics
Why does the robot run Linux, and why this exact version?
60 min
not executed
1.3
Terminal, filesystem and permissions
Where does everything live, and why am I denied access?
60 min
not executed
1.4
Installing ROS 2 and building a workspace
Why does my code work in one terminal and not another?
60 min
not executed
1.5
Packages, colcon and the build workflow
How do I turn a script into something others can depend on?
60 min
not executed
M2ROS 2 Core: the communication layer8 lessons · 8 h
2.1
Architecture, DDS and discovery
How do nodes find each other with no master?
60 min
not executed
2.2
Messages and the data contract
Which message type, and what do its fields actually mean?
60 min
not executed
2.3
Publishers and subscribers under load
What happens when the consumer is slower than the producer?
60 min
not executed
2.4
Quality of Service
Why does my subscriber receive nothing?
60 min
not executed
2.5
The same node in C++
What does C++ change, and when is it worth it?
60 min
not executed
2.6
Parameters, namespaces and remapping
How do I run two robots from one codebase?
60 min
not executed
2.7
Services and actions
When is a topic the wrong answer?
60 min
not executed
2.8
Launch files and system bringup
How do I start eleven nodes correctly, every time?
60 min
not executed
M3Programming and robot architecture6 lessons · 6 h
3.1
Executors, callbacks and concurrency
What actually runs my callbacks, and why did my node hang?
60 min
not executed
3.2
Custom interfaces
What if no standard message fits?
60 min
not executed
3.3
Coordinate frames and TF2
The obstacle is 1.2 m from the sensor — where is it from the robot?
60 min
not executed
3.4
URDF: describing a robot
How does software know the robot's shape?
60 min
not executed
3.5
Xacro and reusable models
How do I avoid writing the same wheel four times?
60 min
not executed
3.6
Robot software architecture
Which node should own this responsibility?
60 min
not executed
M4Gazebo and the digital twin6 lessons · 7 h
4.1
Gazebo, worlds and simulated time
What is the simulator actually doing, and whose clock are we on?
60 min
not executed
4.2
Differential-drive kinematics and odometry
Given a Twist, how fast must each wheel turn — and can it?
60 min
not executed
4.3
The ros_gz bridge
Why can I see the topic in Gazebo but not in ROS 2?
60 min
not executed
4.4
Simulating sensors
What does a simulated LiDAR leave out?
60 min
not executed
4.5
ros2_control and the sim-to-real boundary
How does the same controller drive both robots?
60 min
not executed
4.6
Project: the complete simulated AMR
Does it all work together, and how would I prove it?
120 min
not executed
M5Real robot hardware5 lessons · 5 h
5.1
The robot computer
What runs on the robot, and how do I work on it without a screen?
60 min
no hardware test
5.2
Networking and remote development
What should run on the robot and what should not?
60 min
no hardware test
5.3
Power, protection and safety
What must be true before anything is energised?
60 min
no hardware test
5.4
Motors, drivers and encoders
How do I turn a number into a turning wheel, and measure it?
60 min
no hardware test
5.5
Project: line-following robot
Can it move safely, and can I prove it?
60 min
no hardware test
M6Embedded ROS 24 lessons · 4 h
6.1
Why a microcontroller
What belongs down here, and how do I know?
60 min
no hardware test
6.2
micro-ROS
How does a microcontroller join a ROS 2 system?
60 min
no hardware test
6.3
Closed-loop control and the safety timeout
How do I honour a velocity command — and stop when nobody is asking?
60 min
no hardware test
6.4
Project: gesture as a command source
What must a command source prove before it may move a robot?
60 min
no hardware test
M7Localisation, SLAM and Nav26 lessons · 8 h
7.1
Why odometry is not enough
How wrong is dead reckoning, and how fast?
60 min
not executed
7.2
Sensor fusion and the Kalman filter
How can two bad estimates make a good one?
90 min
7.3
Building the map: occupancy grids and SLAM
How does a robot map a place it has never seen?
90 min
7.4
AMCL: localising in a known map
Where am I on a map I already have?
60 min
7.5
Nav2: costmaps, planning and recovery
How does it decide where to drive, and what if it cannot?
90 min
not executed
7.6
Precision docking with fiducial markers
How do I approach a target precisely, and stop safely?
90 min
not executed
M8Web Interfaces and Final Integration5 lessons · 5 h
8.1
Commanding navigation: actions, checkers and acceptance testing
How often does it actually work?
60 min
not executed
8.2
Telemetry over rosbridge
What can the robot afford to tell you?
60 min
not executed
8.3
Web teleoperation and command authority
What stops it when the operator does not?
60 min
not executed
8.4
Integration, bringup and fault injection
Does it survive the things that will go wrong?
60 min
not executed
8.5
Capstone: transfer to an unseen requirement
Can you do this on a problem nobody taught you?
60 min
not executed

What has and has not been tested

The course states its own limits, and so does this page. You will see the same notice on each lesson it applies to.

Configuration, on real ROS 2

Every parameter file was handed to the node that consumes it on Ubuntu 24.04 with ROS 2 Jazzy and diffed against what the node declares. 47 passed, 3 failed, 6 skipped — and the two real defects it found have been corrected.

Runtime behaviour — not run

The Gazebo half of the execution pass has never been run, because no GPU instance was available. Nobody has yet watched Module 4 run end to end.

Hardware — never validated

Modules 5 and 6 have never been tested against a real robot. The pin assignments are a labelled reference design to complete against real datasheets, not a wiring diagram.

What you will be able to do

50 module outcomes, every one of them assessed by at least one task. These are the course’s own outcome statements.

  1. MO1.1Describe the subsystems of an autonomous mobile robot and identify each on a system diagram
  2. MO1.2Explain the relationship between the Linux kernel, distribution, shell and process, and justify why Ubuntu 24.04 is the required platform
  3. MO1.3Navigate the Linux filesystem and diagnose permission failures from error text alone
  4. MO1.4Verify a ROS 2 installation and explain what sourcing a setup file changes in the shell environment
  5. MO1.5Create, build and run a ROS 2 package with correctly declared dependencies
  6. MO1.6Diagnose a broken workspace by reasoning from symptom to cause, not by matching a known fault
  7. MO2.1Explain how ROS 2 nodes discover each other, and isolate a system using domains
  8. MO2.2Select an appropriate message type for a given signal and justify the choice against semantics, units and frames
  9. MO2.3Predict delivery behaviour from publish rate, consumer rate and queue depth, and verify the prediction by measurement
  10. MO2.4Diagnose a QoS incompatibility from the symptom and correct it
  11. MO2.5Implement an equivalent node in C++ and state when each language is the right choice
  12. MO2.6Configure a node at run time using parameters, namespaces and remapping, without editing source
  13. MO2.7Choose correctly between topic, service and action for a requirement, and defend the choice
  14. MO2.8Compose a multi-node system in a launch file with parameters and namespaces applied
  15. MO3.1Explain how an executor dispatches callbacks, and use callback groups to prevent blocking
  16. MO3.2Define a custom message, service or action and build it into a usable package
  17. MO3.3Transform a point between coordinate frames, by hand and using TF2
  18. MO3.4Write a URDF describing links, joints, visual, collision and inertial properties
  19. MO3.5Parameterise a robot description with Xacro so one file serves several variants
  20. MO3.6Design a node architecture and justify the placement of each responsibility
  21. MO4.1Launch a Gazebo world and explain the role of simulated time
  22. MO4.2Derive differential-drive forward and inverse kinematics and apply them numerically
  23. MO4.3Determine whether a velocity command is achievable, and justify a saturation strategy
  24. MO4.4Configure a ros_gz bridge and diagnose a topic that fails to cross it
  25. MO4.5Add simulated sensors and evaluate the effect of noise on a consumer
  26. MO4.6Explain what ros2_control abstracts and why it enables sim-to-real transfer
  27. MO4.7Integrate and verify a complete simulated AMR against acceptance criteria
  28. MO5.1Provision a robot computer on the supported platform and operate it headlessly
  29. MO5.2Configure a two-machine ROS 2 system and budget the network load it imposes
  30. MO5.3Specify a power architecture with protection, and justify every component rating by calculation
  31. MO5.4Derive a pin assignment and interface specification from datasheets
  32. MO5.5Calculate encoder resolution and evaluate its adequacy for a control task
  33. MO5.6Commission a moving robot through staged gates and document the evidence at each
  34. MO6.1Justify the placement of a responsibility on the microcontroller or the host, from timing requirements
  35. MO6.2Build and flash micro-ROS firmware and establish an agent connection
  36. MO6.3Implement discrete PID velocity control and explain each term's contribution
  37. MO6.4Implement an embedded safety timeout and demonstrate it under host failure
  38. MO6.5Design a command source that must earn authority before it can move the robot
  39. MO7.1Characterise odometry error and predict its growth over a path
  40. MO7.2Derive and compute a Kalman update, and explain the gain
  41. MO7.3Build a map with SLAM and assess it against ground truth
  42. MO7.4Localise in a known map and diagnose localisation failure
  43. MO7.5Configure Nav2 costmaps and explain a planning or recovery outcome
  44. MO7.6Design a docking controller with justified gains and a defined failure behaviour
  45. MO8.1Command navigation through the action interface and measure its repeatability statistically
  46. MO8.2Compute a telemetry bandwidth budget and design a schema with freshness
  47. MO8.3Derive a command expiry from a stopping-distance requirement and implement bounded control
  48. MO8.4Integrate the full stack behind one entry point with defined startup order and authority
  49. MO8.5Inject faults and evidence the controlled response to each
  50. MO8.6Transfer the toolkit to an unseen requirement and defend the result honestly

Questions worth asking

Do I need my own robot?

No. Modules 1 to 4, 7 and 8 run entirely in simulation. Modules 5 and 6 describe real hardware, and you can follow them without a platform — but note that they have never been validated against one.

What if my laptop runs Windows?

The hosted lab gives you Ubuntu 24.04 with ROS 2 Jazzy in the browser. Modules 4, 7 and 8 need a GPU, and you book those sessions in advance because GPU capacity is finite.

Is there video?

Not yet, and the course does not pretend otherwise. Lessons are written, with figures, code and labs. Video is planned but not recorded, and nothing here is gated on it.

Who marks my work?

Knowledge checks you mark yourself against the author's model answer, which you see only after you submit. Module assessments and the capstone are marked by your mentor, which is why a cohort is capped at 20.

How long does it take?

48 contact hours of teaching and labs across eight weeks, plus assessment time. That figure is the book's plan, not a measurement — this course has not yet been taught.

What happens if I fall behind?

Your mentor sees it on their dashboard before you have to raise it, and a checkpoint gets scheduled. The platform tracks progress by what you complete, not by pages you have opened.

Season 1 opens with one cohort of 20

One mentor, capped deliberately. When it is full, it is full.

Enrol — ₹24,999

Price inclusive of GST · Refund policy to be published before enrolment opens