
Explore practical ROS 2 on Raspberry Pi and Arduino by installing Ubuntu Server, setting up a remote development environment, and building hands-on distributed nodes across Raspberry Pi, computer, and Arduino.
Explore ros2 on a computer versus a Raspberry Pi and design a distributed multi-machine setup, using Ubuntu server on the Pi and remote development for embedded robotics.
Identify the essential materials for the course: Raspberry Pi models (Pi 5 or Pi 4), RAM (4–16 GB), official power supply, case with fan, SD card, and Arduino components.
Follow the course in order, code as you go, and complete projects before viewing solutions to learn why you’re doing what you do, starting with ROS 2 on Raspberry Pi.
Install ros2 on the raspberry pi by first setting up ubuntu server, not the desktop edition. Then use ssh for remote control and follow standard ros2 installation steps.
Flash Ubuntu Server onto an SD card with the Raspberry Pi Imager, then set hostname, create a user, enable SSH, and connect to Wi-Fi.
Boot the Raspberry Pi and find its IP address using a network scan with nmap on Ubuntu, enabling a ROS 2 multi-machine setup and SSH access.
Connect to the Raspberry Pi via ssh using the correct username and IP address or host name. Finish the Ubuntu installation, update and upgrade packages, reboot, and shut down properly.
Install ros 2 on Raspberry Pi with Ubuntu 24.04 using ros base, set up the sources, install development tools, and source the setup script to enable ros 2.
Run ROS 2 demo nodes on the Raspberry Pi and on your computer to publish and subscribe across a network, using talker and listener with proper installation and sourcing.
Learn how to isolate ros2 applications on a shared network by exporting the ros_domain_id, enabling collision-free communication across machines and sessions on Raspberry Pi and computer.
Learn to develop with ros2 on a Raspberry Pi by creating packages, nodes, and a publisher, building with chalcone, and running via command line or launch file using remote vscode.
Set up a remote development environment using VS Code to edit, build, and run ROS 2 nodes on a Raspberry Pi via SSH, with a dedicated workspace and sourced setup.
Create a ros 2 python node on the raspberry pi by building a package, writing a temperature sensor, installing gpio zero, and running the node via a remote vscode setup.
Publish the Raspberry Pi temperature as a ROS 2 float64 message every second, exposing it to a PC subscriber for real-time visualization across a multi-machine setup.
Master ros2 on the raspberry pi by building a custom interface, a service server, and a launch file to create home directory folders by name with Python.
Learn to decide when to reuse a ros2 interface or create a custom service on the raspberry pi, and build a new srv interface to create folders from a string.
ROS 2 service server on a Raspberry Pi using a custom create folder interface, featuring a node, a folder creation callback, and robust error handling.
Test a ros2 service on Raspberry Pi and computer by listing services, inspecting the type, and calling the create folder service to create and validate folders.
Learn to create and run a ROS 2 launch file on a Raspberry Pi to start a node, a service server, and a temperature sensor publisher.
Learn to run a ROS 2 launch across two machines, with the robot state publisher on a Raspberry Pi and a joint state publisher gui on a computer, using urdf.
Integrate ROS 2 on a Raspberry Pi with an Arduino to control hardware via serial communication, using Python to implement the brain and muscles of your application.
Set up the Arduino IDE on your computer, flash code to the Arduino, test via the serial monitor, then connect the Arduino to the Raspberry Pi and run Python code.
Set up serial communication between Arduino and Raspberry Pi by configuring the serial baud rate, clearing buffers, reading and echoing commands, and using millis for periodic messages without blocking.
Set up a bidirectional serial protocol between the Raspberry Pi and Arduino using pyserial, handling device discovery, baud rate 115200, robust retry logic, and testing sending and receiving data.
See how a ROS 2 node on Raspberry Pi controls an Arduino to blink an LED via simple serial protocol; send LED:1 to turn on and LED:0 to turn off.
Create a ros2 node on the Raspberry Pi and a Python package to communicate with the Arduino over serial, using a ros2 timer to blink the led.
Publish Arduino temperature data on a ROS 2 topic using a Raspberry Pi publisher, reading serial data every second and publishing it as an int64.
Explore a ROS 2 on Raspberry Pi and Arduino project to control a servo motor with a joystick or automatic sweep. Learn hardware setup, ROS 2 nodes, and launch configuration.
Begin the first step by setting up Arduino servo control via serial, wiring the servo to a pwm pin, and sending 'servo:xxx' commands to move 0–180 degrees.
Develop a ros2 node on the raspberry pi to control an arduino servo via serial communication. Implement a 0–180 degree sweep using a 100 Hz timer and verify the motion.
Learn to control a servo with a joystick on a Raspberry Pi using ROS 2, subscribing to the joy topic and mapping axis to servo position for interactive motion.
Control a servo from the Raspberry Pi temperature in ros 2, using a temperature topic and a parameter to switch between joystick, Raspberry Pi temperature, and automatic sweep control methods.
Launch a single ros2 launch file to start three nodes—the joystick, temperature sensor, and servo controller—loading parameters from a yaml config in the api bring up package.
Plan your next robotics project using ROS2 on Raspberry Pi with Arduino, exploring remote coding, multi-machine ROS2 communication, and hardware-software integration.
You have learned ROS 2 basics and want to create an embedded application for a robot?
Or maybe you already got a Raspberry Pi and have no idea how to run ROS 2 on it?
In this course, you will create a fully distributed ROS 2 application between a Raspberry Pi, your computer, and even an Arduino board. At the end of the course you will be able to adapt this knowledge to your own projects.
-- Why this course?
ROS 2 is a powerful robotics framework that you can use to bootstrap software for a new robot in no time.
Raspberry Pi is a tiny and relatively inexpensive board that you can easily embed on a robot, and it makes it easy to connect to different hardware components.
So, why not use the two together? That’s a perfect combo: running ROS 2 directly inside a robot, on a tiny computer that has direct access to hardware.
I have personally done that in the robotics startup I cofunded in the past. We produced a fully working 6 axis robotic arm, powered by ROS 2 running on a Raspberry Pi. If we could create (and sell!) such a robot, then imagine what you can achieve.
With this course I want to share my practical knowledge with you, so you can quickly get started with ROS 2 on a Raspberry Pi, and understand the different specificities so you can properly design your own applications for your own projects.
-- How do I teach?
If you’ve taken other ROS 2 courses from me you know that I’m not here to waste your time.
My teaching method is quite simple:
Step by step
Going to the point
Learn while doing
Also I strongly focus on the “why” behind what you learn. The goal is not just to make you blindly repeat some steps, but to understand why those steps matter.
And don’t take my word for it - here are some reviews from fellow students/researchers/engineers/teachers who took my ROS 2 courses on Udemy:
“Best course on ROS2 I’ve taken! Other courses (different sites/platforms) made it confusing but this course makes it so clear and easy to understand while letting you try on your own. I am definitely learning a lot in a painless and simple way. I should have gotten this course from the beginning.” - Miguel Martinez G.
“Overall very satisfied. I’ve a strong background in programming, but at a higher level (web mostly) and the elegant, fluent and clean approach of this course has leveraged my introduction to the ROS environment in a short amount of time, without the struggle of going through a lot of documentation” - Devis D.
“This is the best course in ROS2 I’ve ever seen” - Aleksandar K.
“Great course content, straight to the point and very easy to follow” - Kevin M.
-- What will you do and learn in the course?
This course is 100% hands-on. You need to have some ROS 2 basics to get started, but that’s it. From that, we will:
Install Ubuntu Server and ROS 2 on a Raspberry Pi
Set up a remove development environment with VS Code
Write, build, and run nodes on the Raspberry Pi
Create a fully distributed ROS 2 app between your computer and your Raspberry Pi
Add an Arduino board to the application and get closer to the hardware
Each section is built on top of the previous ones, and you will reinforce what you’ve learned with extra challenges to practice more.
So, to create amazing projects with ROS 2 and Raspberry Pi, wait no more and enroll in the course today!
You don’t take any risk as you get a 30-day money back guarantee if you’re not fully satisfied - no questions asked.
See you in the course!
Note - this course is not for you if:
You have never worked with ROS 2 before. You will need ROS 2 basics to understand this course.