Month 4 of 6

ROS 2, simulation, and building robots the way companies do

ROS 2, simulation, and building robots the way companies do

0/29 checks

Everything up to now was you building robots your way

ROS 2 is how the industry builds them, and it is the single most requested skill in robotics job listings

The best part of this month is that you can do all of it with no hardware at all, on a normal laptop, with no NVIDIA GPU. Say that to yourself twice, because the belief that robotics requires expensive equipment is the main reason people never start

What to learn

1Which ROS 2 to install, and the ROS 1 trap

ROS 2 releases every May. Even years are LTS with five years of support, odd years get about eighteen months

As of September 2026 the picture is:

  • Lyrical Luth, released May 2026, EOL May 2031, targets Ubuntu 26.04. The current LTS
  • Jazzy Jalisco, released May 2024, EOL May 2029, targets Ubuntu 24.04
  • Kilted Kaiju, EOL 31 December 2026. Do not start here
  • Humble Hawksbill, EOL May 2027. Legacy

Start on Jazzy. Lyrical is newer and is what you would pick for a new production project, but as of now almost every course, book and YouTube series still targets Jazzy, and it has more than two and a half years of support left. Move to Lyrical once your tutorial stack catches up

ROS 1 is dead. Noetic reached end of life on 31 May 2025 and there is no successor. Enormous amounts of highly-ranked tutorial content is ROS 1, so learn to recognise it instantly: if you see catkin_make, roscore, rosrun, rospy or XML-only launch files, close the tab. ROS 2 uses colcon build, has no master, and uses ros2 run and Python launch files

2ROS 2 core concepts

Resources

Official ROS 2 Tutorials (free)

The canonical reference, structured exactly around nodes, topics, services, actions, parameters, launch files, tf2 and URDF. It is reference-grade rather than pedagogy, so pair it with video

Open
docs.ros.org

The Construct (free tier, paid from €39.97/month)

Everything runs in a browser-based ROS environment with simulated robots, which removes the single biggest friction point for beginners: no Ubuntu dual-boot, no install weekend, no GPU. The free tier includes three complete courses

Open
theconstruct.ai

Edouard Renard, ROS 2 for Beginners, Level 1 (Udemy, roughly $10 to $20 on sale)

Thirteen hours in both Python and C++ covering nodes, packages, topics, services, custom interfaces, parameters and launch files. Never pay list price, Udemy discounts almost permanently

Open
udemy.com

Articulated Robotics, Josh Newans (free)

The best free end-to-end narrative anywhere: design a robot, write the URDF, simulate it, add ros2_control, put it on a Raspberry Pi with a lidar, then SLAM and navigate. Uniquely good on ros2_control, which almost every other resource fumbles

Open
articulatedrobotics.xyz

MOGI-ROS, a full university course (free, Apache 2.0)

A real semester-length syllabus on ROS 2 Jazzy with Gazebo Harmonic, running from pub/sub through URDF, sensors, navigation and MoveIt 2 arms, with working code for every week

Open
github.com

Automatic Addison (free)

Recipe-style guides organised by distro, and notable for already carrying Lyrical tracks alongside Jazzy. This is where you go for "how do I write an action in Jazzy" rather than a full course

Open
automaticaddison.com

What to focus on

Honest gap worth naming: DDS and QoS settings are covered badly by every resource I could find. No course does it well. When you hit mysterious "my topic publishes but nothing receives" problems, the answer is almost always a QoS mismatch, and you will be reading the official Concepts pages rather than a tutorial

Practice task

build a multi-node system with no robot and no simulator at all. A sensor publisher, a processing node, a service-based configuration node and a parameterised aggregator, with your own custom .msg and .srv, wired together in a Python launch file that takes arguments. Record it with ros2 bag and replay it. This costs nothing and it proves you understand the graph rather than that you can run turtlesim

3URDF, TF and describing a robot

Resources

Articulated Robotics, Coordinate Transforms for Robotics (free)

A dedicated series on frames and transforms, which is the concept that blocks most people's understanding of URDF

Open
articulatedrobotics.xyz

Edouard Renard, Level 2: TF, URDF, RViz, Gazebo (Udemy, roughly $10 to $20 on sale)

The single best URDF resource, covering xacro macros, robot_state_publisher, RViz configuration and Gazebo plugins, ending in a mobile base with an arm on it

Open
udemy.com

Official URDF tutorial with robot_state_publisher (free)

The canonical walkthrough, available in both C++ and Python variants

Open
docs.ros.org

Common issues to learn

  • Confusing joint_state_publisher with robot_state_publisher. Fix: the first invents joint positions, the second computes transforms from them
  • Missing inertial tags. Fix: your robot explodes or sinks through the Gazebo floor without them, so always include mass and inertia
  • A missing static transform to the lidar frame. Fix: this causes more beginner SLAM failures than any algorithm problem
  • Writing 400 lines of XML by hand. Fix: use xacro macros from day one

Practice task

design your own robot in xacro, not TurtleBot. A differential-drive base, a sensor mast and a two-DOF pan-tilt head, with correct inertias and separate collision and visual geometry. Drive the joints with joint_state_publisher_gui and view the full TF tree in RViz. A screenshot of your own robot in RViz is the most legible signal in a beginner portfolio

4Simulation

The Gazebo naming history confuses everyone, so here it is cleanly

Gazebo Classic, versions 1 to 11, reached end of life in January 2025. It was rewritten and briefly called Ignition Gazebo, then renamed back to plain Gazebo in an announcement in April 2022, with every ign command becoming gz. If a tutorial types roslaunch gazebo_ros or ign gazebo, it is out of date

Current releases are named alphabetically: Fortress, Garden, Harmonic, Ionic, Jetty

Install the version paired with your ROS 2 distro or you will fight build errors: Humble pairs with Fortress, Jazzy pairs with Harmonic, Kilted with Ionic, Lyrical with Jetty

Resources

Gazebo documentation and tutorials (free)

Building your own robot, moving it, SDF worlds, sensors, and spawning a URDF

Open
gazebosim.org

MuJoCo (free, open source)

The fastest and most accurate contact dynamics available, CPU-first so it needs no GPU, and it is the research standard for locomotion and manipulation learning

Open
mujoco.readthedocs.io

NVIDIA Isaac Sim (free download)

Photoreal simulation and synthetic data generation, and read that requirements link before getting excited: the minimum is an RTX 4080 with 16GB VRAM, and data-centre cards without RT cores such as the A100 and H100 are not supported at all

Open
docs.isaacsim.omniverse.nvidia.com

Decision framework:

  • Learn Gazebo first, because it is the only simulator natively wired into ROS 2 and it runs on the laptop you already own
  • Go to MuJoCo when you want reinforcement learning or locomotion, and it still needs no GPU
  • Go to Isaac Sim or Isaac Lab only when you have the RTX hardware and a specific reason
  • Skip PyBullet, which has had no release since 2022 and whose maintainers closed the issue tracker
  • Watch Genesis but do not build a portfolio on it yet, since v1.0 is fresh and it has no ROS 2 integration

Practice task

put your xacro robot from the last section into Gazebo, add a lidar plugin and a camera plugin, and build a custom SDF world with obstacles for it to sit in. Confirm the sensor data appears on ROS 2 topics and renders in RViz

5ros2_control

This is the topic most self-taught candidates have never touched, which makes it the fastest way to differentiate yourself

Resources

ros2_control documentation (free)

Where URDF meets actuation: hardware interfaces, controller manager, and the <ros2_control> tags that go in your xacro

Open
control.ros.org

Articulated Robotics, ros2_control on real hardware (free)

The only resource that walks the simulation-to-real-hardware transition properly

Open
articulatedrobotics.xyz

Practice task

add <ros2_control> tags to your robot, configure diff_drive_controller and joint_state_broadcaster through YAML, and drive it in Gazebo with keyboard teleop. Then write an action server that drives a commanded distance and reports progress, with feedback and cancellation. Actions plus ros2_control in one project is a genuinely strong portfolio piece

6SLAM and navigation

Resources

Nav2 Getting Started (free)

Launches Nav2 in simulation in under five minutes, with a pre-configured VS Code dev container that removes all install pain

Open
docs.nav2.org

Nav2 Tutorials (free)

Covers SLAM, keepout zones, speed limits, collision monitoring, docking, GPS navigation, and writing your own planner, controller or behaviour-tree node

Open
docs.nav2.org

SLAM Toolbox (free, open source)

The currently supported ROS 2 SLAM library, with synchronous, asynchronous, lifelong and localization-only modes, and multi-robot support

Open
github.com

RTAB-Map for ROS 2 (free, open source)

Appearance-based RGB-D and stereo SLAM with loop closure, for when you have a depth camera rather than a lidar, or want a 3D map

Open
github.com

What to focus on

Hardware for real SLAM, three tiers:

  • $0: Gazebo with a simulated lidar. Do the entire SLAM and Nav2 curriculum here first
  • $250 to $450: DIY: RPLIDAR C1 at $69, a Raspberry Pi 4 or 5, a differential-drive base with encoders, a motor driver and a battery. Most learning per dollar, and the most yak-shaving
  • $300 to $535: a ready platform. Hiwonder MentorPi M1 from $299.99 runs ROS 2 Humble on a Pi 5 with lidar and a depth camera. Waveshare's UGV Rover ROS 2 kit at $534.99 splits a Pi host and an ESP32 real-time controller, which is how real robots are actually architected
hiwonder.comwaveshare.com

Practice task

run SLAM Toolbox in your Gazebo world, teleop around it, save the map, then switch to localization mode and send Nav2 goals from RViz. Tune the costmaps until it stops clipping corners. Then screen-record it. A video of a robot autonomously navigating a map it built itself is the most compelling artifact a self-taught roboticist can produce

Month 4 Milestone

By the end of this month you should be able to:

Check yourself

2–3 hours a day is the design load.