Robotics
ROS 2 Robot Programming with Python
Learn ROS 2 with Python: write nodes and launch files, follow a wall, and understand SLAM and autonomous navigation.
ROS 2 Robot Programming with Python is a free, self-paced online course from EDWartens for engineering students, apprentices, technicians and working engineers in manufacturing and robotics. It has 13 modules and takes about 11.1 hours, with written notes, a practice task per module, a practical project and a final assessment of 15 questions (pass mark 60%). Learning costs nothing and needs only a free account. The optional EDWartens Certificate of Completion, verifiable by code, is a one-off US$28.99 for you; it is not a vendor credential. Updated 1 November 2026.
- Free
- Intermediate
- 11.1 hours
- Self-paced
- Certificate optional
- Lab practice in your browser
No card, no trial. The course is free for good. Certificate US$28.99, optional.
- Who it is for
- Engineering students, apprentices, technicians and working engineers in manufacturing and robotics
- Jobs
- Roles that use this skill: robot programmer, automation engineer, cell integrator and maintenance technician. No course guarantees a job.
- Tools
- Ubuntu 22.04 or 24.04, natively or through WSL2 or Docker. ROS 2 Humble or Jazzy, Python 3, colcon, rqt, RViz and Gazebo. Every tool is free and open source. Hardware: A laptop with about 8 GB RAM and 30 GB free disk, because ROS 2 and a simulator have to be installed. The notes, practice questions and study plan read on a phone; the practicals do not. A Raspberry Pi, a 2D lidar and a small differential-drive base appear in the lessons and are optional.
- Updated


After this course you can
By the end you will be able to:
- Install ROS 2 and prove the graph is running
- Create a Python package that builds with colcon
- Write publisher, subscriber and service nodes
- Bring a whole system up with one launch file
- Read a LaserScan and drive a base to follow a wall
Who it is for, and what you need first
Who it is for
Engineering students, apprentices, technicians and working engineers in manufacturing and robotics.
Level: Intermediate. Intermediate. Assumes basic Python and comfort with a Linux terminal. No robotics background needed, and no prior ROS.
What you need
Software: Ubuntu 22.04 or 24.04, natively or through WSL2 or Docker. ROS 2 Humble or Jazzy, Python 3, colcon, rqt, RViz and Gazebo. Every tool is free and open source..
Hardware: A laptop with about 8 GB RAM and 30 GB free disk, because ROS 2 and a simulator have to be installed. The notes, practice questions and study plan read on a phone; the practicals do not. A Raspberry Pi, a 2D lidar and a small differential-drive base appear in the lessons and are optional.. What to download, and how.
How this course works
Watch the lessons
Short video lessons, one module at a time, at your own pace.
Read the notes
Open the Reading tab for the written notes and diagrams of the module.
Practise in the 3D labOptional
Try the module in the free 3D lab, in your browser.
Check yourself
Answer the questions to see what stuck before you move on.
Final assessment
Pass the final once you have been through the modules.
Certificate, if you want oneOptional
Optional, with a page anyone can use to verify it.
What you learn
13 modules in order, at your own pace. 11.1 hours of video lessons, with written notes and a practice task in each module.
- 1What ROS 2 is and the problem it solves30m
- 2Installing ROS 2 and setting up the machine16m
- 3Nodes, topics and the ROS graph29m
- 4Workspaces and Python packages21m
- 5Publishers, subscribers and messages in Python27m
- 6Launch files and the inspection tools29m
- 7Services: request and reply in one node44m
- 8Sensors, motors and the mobile base38m
Show the other 5 modules
- 9Writing a control loop: the wall follower18m
- 10SLAM, mapping and autonomous navigation40m
- 11Manipulators and arm motion, with lab practice: 32m
- 12Beyond Python: C++ nodes, a ROS 1 bridge and a language model57m
- 13Final assessment
Software you need
What to download, where from, what it costs and how to install it. Every link goes to the maker's own site, never a mirror.
ROS 2 wants Ubuntu 22.04 (Humble) or 24.04 (Jazzy), natively or through WSL2 or Docker.
Show what to download (5 tools)
Required
- 01Free
Ubuntu Desktop
Canonical
- Runs on
- 64-bit PC (Intel or AMD) or ARM 64-bit. Recommended: 2 GHz dual-core processor, 6 GB RAM, 25 GB free disk space.
- Account
- None needed
- Size
- About 5.9 GB ISO (Intel or AMD 64-bit, current LTS)
Free to download and use. LTS releases get five years of free security updates, which Ubuntu Pro can extend.
Steps
- 1.Open ubuntu.com/download/desktop and download the LTS ISO. For ROS 2 courses, get 24.04 LTS or 22.04 LTS from releases.ubuntu.com instead.
- 2.To try it safely, create a new virtual machine in VirtualBox and attach the ISO.
- 3.To install on a real PC, write the ISO to a USB stick (8 GB or more) and boot from it.
- 4.Follow the installer, then run Software Updater when it finishes.
- Your course may name a specific release. ROS 2 Humble needs Ubuntu 22.04 and ROS 2 Jazzy needs Ubuntu 24.04.
- Give a virtual machine at least 25 GB of disk space.
Official download pageubuntu.comAlternatives
- Ubuntu 24.04 LTS: Use for ROS 2 Jazzy.
- Ubuntu 22.04 LTS: Use for ROS 2 Humble.
- Windows Subsystem for Linux: Run Ubuntu inside Windows 10 or 11 without a virtual machine.
- 02Free
ROS 2 (Robot Operating System 2)
Open Robotics (ROS project)
- Runs on
- Jazzy: Ubuntu 24.04 (Noble). Humble: Ubuntu 22.04 (Jammy). amd64 and arm64.
- Account
- None needed
ROS 2 is free and open source. Jazzy Jalisco is supported until May 2029 and Humble Hawksbill until May 2027.
Steps
- 1.Install the Ubuntu release that matches your ROS 2 version (24.04 for Jazzy, 22.04 for Humble).
- 2.Open the install page for your version on docs.ros.org and follow "Ubuntu (deb packages)": set a UTF-8 locale and enable the required repositories.
- 3.Run: sudo apt update and then: sudo apt install ros-jazzy-desktop (use ros-humble-desktop for Humble).
- 4.Load the environment in each new terminal: source /opt/ros/jazzy/setup.bash
- 5.Test it: run ros2 run demo_nodes_cpp talker in one terminal and ros2 run demo_nodes_py listener in another.
- On Windows, you can run Ubuntu 24.04 or 22.04 inside WSL or VirtualBox.
- Install ros-dev-tools too if you will build your own packages.
- Add the source line to ~/.bashrc so you do not have to type it each time.
Official download pagedocs.ros.orgAlternatives
- ROS 2 Humble install guide: For Ubuntu 22.04.
Optional
Useful, not needed to finish the course.
- 03Free
Windows Subsystem for Linux (WSL)
Microsoft
- Runs on
- Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11
- Account
- None needed
WSL is part of Windows and costs nothing. The Linux distribution you install (Ubuntu by default) has its own free licence.
Steps
- 1.Right-click PowerShell and choose "Run as administrator".
- 2.Run: wsl --install
- 3.Restart your PC when asked.
- 4.Open Ubuntu from the Start menu and wait while it unpacks.
- 5.Create a Linux user name and password when prompted.
- To see other distributions, run: wsl --list --online, then install one with: wsl --install -d <Name>
- If the install hangs at 0.0%, run: wsl --install --web-download -d Ubuntu
- Check your setup with: wsl -l -v (new installs use WSL 2).
Official download pagelearn.microsoft.com - 04Free for personal use, education and small businesses
Docker Desktop
Docker, Inc.
- Runs on
- Windows 10 64-bit version 22H2 (build 19045) or Windows 11 64-bit version 23H2 (build 22631) or later, with WSL 2 and hardware virtualisation on, 8 GB RAM. Also macOS and Linux.
- Account
- None needed
Free for personal use, education, non-commercial open source projects, and businesses with fewer than 250 employees and less than 10 million US dollars in annual revenue. Larger businesses need a paid subscription. Docker Engine on Linux is open source and is not covered by these terms.
Steps
- 1.Open docker.com/products/docker-desktop and download the installer for your system.
- 2.On Windows, install WSL first (wsl --install) if you do not have it.
- 3.Run the installer and keep the WSL 2 option selected.
- 4.Restart if asked, then start Docker Desktop and accept the subscription terms.
- 5.Open a terminal and run: docker run hello-world
- Turn on virtualisation in BIOS or UEFI if Docker says it is not available.
- On Linux servers, install Docker Engine instead of Docker Desktop.
Official download pagedocker.comAlternatives
- Docker Engine (Linux): Free, open source engine for Linux. Not covered by the Docker Desktop subscription terms.
- 05Free
Visual Studio Code
Microsoft
- Runs on
- Windows 64-bit (supported Windows client versions), macOS (latest and two previous releases), Linux (Ubuntu 20.04, Debian 10, RHEL 8, Fedora 36 or later)
- Account
- None needed
- Size
- Less than 200 MB download, under 500 MB installed
Free to download and use. Extensions from the Marketplace each have their own licence.
Steps
- 1.Open code.visualstudio.com/download.
- 2.Pick the installer for your system (on Windows, the User Installer is fine).
- 3.Run the installer. On Windows, tick "Add to PATH" if it is offered.
- 4.Open VS Code and install the extensions your course uses, for example the Python extension.
- Hardware needs are small: a 1.6 GHz processor and 1 GB of RAM.
- On Windows, the "Open with Code" options in the installer let you open folders from File Explorer.
Official download pagecode.visualstudio.com
Checked against each maker's own page on 27 September 2026. Trial lengths and editions change; the maker's page is the final word.
Practise in the 3D lab
Move a robot arm by joint and by straight line, and teach a waypoint path, to feel the arm motion that a ROS 2 motion planner has to produce.
- JogRobotics lab, about 20 minOpen in the lab (opens in a new tab): Jog
- Teach and runRobotics lab, about 30 minOpen in the lab (opens in a new tab): Teach and run
Optional. Skip it whenever you like: it never blocks your progress or your certificate.
Course project, about 16 hours
Tote-transport AMR on ROS 2: Nav2 on a TurtleBot 3 class base between stores and two assembly lines
Design, build, test and document a simulated ROS 2 robot that carries kitting totes from a stores counter to two assembly lines and back. It runs a TurtleBot 3 in Gazebo with Nav2, a mission node you write and a safety-stop node. You deliver the Python packages, one launch file, a waypoint register and a navigation test report. The sample pack shows what an integrator hands over for the real plant.
- 8documents in the pack
- 7steps to follow
- 6things to hand in
- 16 hof work, at your pace
- URSUser Requirements: Tote Transport Robot AMR-1, Stores to Assembly Lines A and B
- SDSSoftware Design Specification: AMR-1 ROS 2 System
- RegisterMap and Waypoint Register: Floor 1, Stores to Lines A and B
- IP planIP Plan and Device List: AMR-1 on the Plant Wi-Fi, VLAN 40
- Test reportNavigation Test Report: Twenty Runs per Route, Obstacles, Wi-Fi Roaming and Battery
- Risk registerRisk Assessment Register: AMR-1 Among People (ISO 12100, task-based, with ISO 3691-4 in view)
The project is optional practice. The certificate needs only the modules and the final assessment.
After the course, your next step
Show what you can do, then keep going in the same field.
A certificate you can verify
Finish the modules and pass the final assessment (15 questions, pass mark 60%) and you can add a certificate with a public verification page. One-off, US$28.99 for you. It is not a vendor credential.
Want a free certificate? Do the matching Free internship: 4 weeks, nothing to buy, with a free certificate of completion.

PLC Programming
Eight short weeks of PLC ladder logic on free simulators: notes, diagrams, a few videos and auto-tested tasks. Finish weeks 1 to 4 and the final, then claim a free Internship Completion Certificate with your real dates and study hours, and a QR code anyone can scan to verify it. Training, not employment.
See the internshipMore free courses
Roles that use this skill
- Robot programmer
- Automation engineer
- Cell integrator
- Maintenance technician
These are the kinds of roles where the skill is used. We make no promise of a job or an interview.
Plain notes
- Free: the whole course, the notes, the practice tasks, the final assessment and support from practising engineers.
- Paid, and optional: the course certificate, and the Engineer-verified internship (the Free internship costs nothing).
- No job promise: the course teaches a skill. It does not place you in a job.
- Lessons by: The Construct Robotics Institute, ROBOTIS OpenSourceTeam. Independent creators; the lessons stream from their own channels. EDWartens wrote the study plan, notes, practice tasks and assessments.
The Construct Robotics Institute · ROBOTIS OpenSourceTeam. If you are one of these creators and want a lesson removed or credited differently, write to info@edwartens.com.
Practise what you learn in the free 3D lab
Technical work is judged on what you can do: wiring, commissioning, finding a fault. Doing a task yourself teaches more than watching it a second time, and a lab lets you try it safely before you meet real equipment. It does not replace working on real hardware.
- Practise safely, so a mistake costs nothing.
- The lab checks your work like a site test, so you know when it is right.
- Free, in your browser, with nothing to install.
Why learn with EDWartens
What you get with this course, and what comes after it.
- Free from the first lesson to the final assessment.
- Practice in a free 3D lab in your browser, with nothing to install.
- Video lessons with written notes and a project.
- An optional certificate that anyone can verify online.
- Free internships to keep practising afterwards.
Common questions
Which ROS 2 version should I learn?
Learn a Long Term Support release. This course uses two of them, Jazzy Jalisco and Humble Hawksbill. The official ROS 2 documentation lists Jazzy as supported until May 2029 and Humble until May 2027. The newest Long Term Support release, Lyrical Luth, came out on May 22, 2026 with support until May 2031. Nodes, topics, services, launch files and colcon are core concepts shared by all of them. What you learn here carries forward.
Is ROS 1 still supported?
No. ROS 1 has reached end of life, so new work should start on ROS 2. The ROS Project Management Committee set the end-of-life date for ROS Noetic as May 31, 2025. That was the same day Ubuntu Focal reached the end of standard support. Robots still running ROS 1 need a migration plan. That is why the last module covers planning a ROS 1 to ROS 2 migration and where a ROS 1 bridge belongs.
Which Ubuntu version do I need for ROS 2?
Match Ubuntu to the ROS 2 release. Use Ubuntu 24.04 for Jazzy and Ubuntu 22.04 for Humble. The ROS 2 documentation lists Ubuntu 24.04 (Noble) as a Tier 1 platform for Jazzy Jalisco. It lists Ubuntu 22.04 (Jammy) as Tier 1 for Humble Hawksbill. The newer Lyrical Luth release lists Ubuntu 26.04 (Resolute) as Tier 1. On a Windows laptop you can run Ubuntu through WSL2 or Docker. This is how the course supports Windows users.
Is the ROS 2 Robot Programming with Python course really free?
Yes. Every module, every practice task and every assessment costs nothing, and there is no card on file. You create an account so your progress is saved and the assessments can be marked. The certificate is the only paid item, and only if you want it.
What certificate does the ROS 2 Robot Programming with Python course give?
An EDWartens Certificate of Completion, issued when you have finished every module and passed the final at 60%, with a verification code anyone can check. It is not a vendor credential and is never described as one.
Who made the video lessons in the ROS 2 Robot Programming with Python course?
The Construct Robotics Institute and ROBOTIS OpenSourceTeam, on their own YouTube channels, and they are credited at the foot of this page. EDWartens did not make the videos and neither creator is affiliated with EDWartens. What EDWartens wrote is the study plan, the notes, the practice tasks and the assessments.
What computer do I need for the ROS 2 Robot Programming with Python course?
A laptop that can run Ubuntu 22.04 or 24.04, with roughly 8 GB of RAM and 30 GB of free disk. Windows is fine through WSL2 or Docker. This is the one course in the free catalogue you cannot do on a phone alone: the notes and practice questions read on a phone, but ROS 2 and the simulator need a real machine.
Do I need to know Python first?
Basic Python is assumed: functions, classes, lists and dictionaries. You also need to be comfortable in a Linux terminal, since almost everything is run from one. No C++ is required; the last module only asks you to read a C++ node, not write one.
Some lessons were recorded on ROS 1. Does that matter?
The concept chapters from ROBOTIS were recorded for ROS 1, and each module says so. Nodes, topics, services, sensors, drive geometry, SLAM and kinematics are unchanged. Where the commands differ, the module notes give the ROS 2 form, and every hands-on lesson you follow at the keyboard is ROS 2.
Is this the same as an official ROS certification?
No. There is no single awarding body for ROS, and this course is not endorsed by Open Robotics, ROBOTIS, The Construct or any vendor. It is preparation and practice. What you get from EDWartens is a Certificate of Completion for the work you did here.
Will this help me get a robotics job?
It gets you past the first filter. ROS or ROS 2 is a named requirement in warehouse robotics, AMR and factory-robotics roles in robotics hubs worldwide, and most applicants from a maintenance or PLC background have never installed it. A course alone is not a hire. A simulated robot running on your own laptop that you can explain in an interview is what makes the difference.
Do I have to use the lab?
No. The lab is optional practice. You can skip it whenever you like, and it never blocks your progress, the final assessment or your certificate.
Is the lab free?
Yes. Every lab level for this course opens in your browser, free, with nothing to install.
What topics does the ROS 2 Robot Programming with Python course cover, module by module?
The ROS 2 Robot Programming with Python course has 13 modules. It opens with "What ROS 2 is and the problem it solves", goes through "Installing ROS 2 and setting up the machine", "Publishers, subscribers and messages in Python", "Writing a control loop: the wall follower" and "Beyond Python: C++ nodes, a ROS 1 bridge and a language model" and ends with "Final assessment". The full list with minutes is under "What you learn" on this page.
What can I do after the ROS 2 Robot Programming with Python course?
After the ROS 2 Robot Programming with Python course: Install ROS 2 on Ubuntu, WSL2 or a Raspberry Pi and prove the graph is running; Create a workspace, build a Python package with colcon and run a node you wrote; Write publisher, subscriber and service nodes, and define your own message type. These are the practical outcomes the course is written around, and the final assessment of 15 questions checks them.
What software and hardware do I need for the ROS 2 Robot Programming with Python course, and does it cost anything?
For the ROS 2 Robot Programming with Python course, software: Ubuntu 22.04 or 24.04, natively or through WSL2 or Docker. ROS 2 Humble or Jazzy, Python 3, colcon, rqt, RViz and Gazebo. Every tool is free and open source. Hardware: A laptop with about 8 GB RAM and 30 GB free disk, because ROS 2 and a simulator have to be installed. The notes, practice questions and study plan read on a phone; the practicals do not. A Raspberry Pi, a 2D lidar and a small differential-drive base appear in the lessons and are optional. The course itself is free.
Is the ROS 2 Robot Programming with Python course suitable for me, and what level is it?
ROS 2 Robot Programming with Python is rated intermediate. Intermediate. Assumes basic Python and comfort with a Linux terminal. No robotics background needed, and no prior ROS. It is written for engineering students, apprentices, technicians and working engineers in manufacturing and robotics, and takes about 11.1 hours at your own pace.
Which jobs use the skills from the ROS 2 Robot Programming with Python course?
Skills from the ROS 2 Robot Programming with Python course (for example: install ROS 2 on Ubuntu, WSL2 or a Raspberry Pi and prove the graph is running) are used in roles such as robot programmer, automation engineer, cell integrator and maintenance technician, and in robotics engineer work. The course gives you practical evidence of the skill; it does not promise a job, and employers decide on experience and interview.
Start free today
ROS 2 Robot Programming with Python, at your own pace. Add the certificate only if you want one.