
Configure the robot PC by flashing Ubuntu onto a micro SD card for Raspberry Pi 4, then boot Linux and prepare ROS Humble on Ubuntu Desktop 22.04 LTS.
Configure Ubuntu 22.04 on a Raspberry Pi 4, setting language, keyboard, and user details, and enable automatic login; prepare for code transfer and remote debugging over a local network.
Install ROS2 humble on a Raspberry Pi 4 running Ubuntu, connect to the internet, install desktop or base packages, and auto-source ROS2 humble via bashrc.
Configure netplan YAML to set up wireless connectivity and unique IPs so you can wirelessly access and transfer code to the Raspberry Pi inside the robot from your computer.
Connect your Raspberry Pi robot computer to the master computer via ssh after netplan ip configuration, enabling remote access to run code and push updates from your laptop.
Install the Arduino IDE and update the system, enabling Arduino microcontroller programming to control wheel speeds on the robot, preparing for motor drives and sensors in the next video.
Discover how ROS2 interfaces with Arduino, with Raspberry Pi as the robot PC, where Arduino acts as a microcontroller to split velocity commands into two wheel movements.
Write a simple publisher node in ROS2 and interface it with an Arduino using Python to publish data that controls an Arduino led via serial communication.
Learn to publish data to an Arduino with a ros2 python serial transmitter, configuring the port and baud rate, and control an led via the serial transmitter topic.
Write a simple subscriber node with Arduino, enabling serial communication to publish and subscribe ROS2 topics between Arduino and ROS via Raspberry Pi, including encoder data and motor commands.
Configure an open-loop motor circuit for a ROS2 robot by wiring 12V to a 5V regulator, powering the L298N and Arduino, and sending velocity commands from Raspberry Pi.
Connect the Arduino to the robot PC, install pyserial, and use the ROS Arduino bridge to send open loop motor commands and test wheel speeds.
Add encoder feedback by reading channel A and B and publishing encoder values for autonomous robot, wiring left motor to D2/D3 and right motor to A4/A5 on an Arduino Nano.
Learn how to establish a closed-loop ROS2 robot test by connecting wheel encoder sensors, reading encoder ticks via Pyserial, address noise with sensor fusion, and publish data to Raspberry Pi.
Install the ROS2 driver for motors using the open source serial_motor_demo, build on a Raspberry Pi, and control motors with PWM signals while monitoring encoder ticks via a GUI.
Learn to interface an ERP LiDAR A1 with a Raspberry Pi using a dual-output adapter, verify connections, and visualize lidar data with Arviz to publish a laser frame.
Pin the serial port to a stable path by listing /dev/serial and selecting by id or by path in the arp leader launch file to avoid usb changes.
Transfer sim2real by moving from Gazebo to real hardware using ros control with the differential drive Arduino plugin, and configure loop rate, device, baud rate, timeout, and encoder counts.
Transfer your simulation code to a real robot using sim2real techniques in a ROS2 autonomous robot project, bridging simulated environments to real-world deployment.
Push the code to the robot pc by building on the raspberry pi, granting serial port access, and launching ros2 to teleoperate the real robot.
Connect a joystick or gamepad to drive a real ROS2 robot using joy node and joystick launch files, with normal and turbo speed modes.
Are you ready to dive into the practical aspects of robot fabrication, PC configuration, microcontroller programming, sensor integration, and component identification, guided by industry experts?
Welcome to Part 3 of the BUILD YOUR OWN AUTONOMOUS ROS2 ROBOT – the most comprehensive and hands-on segment yet!
In this section, we take your foundational knowledge of ROS2 and bring it to life by guiding you through the entire process of building a fully functional robot. By the end of this course, you will not only understand the theory behind robotics but also have practical experience in robot fabrication, assembly, configuration, and programming.
To ensure you truly master the concepts covered in this course and can confidently apply them in your projects and future career, I will guide you through every step of the process, combining both theoretical understanding and hands-on practice.
Each section is composed of three parts:
Theoretical Explanation: Dive deep into the concepts and functionalities required for robot development.
Practical Examples: Apply what you've learned in simplified, practical examples to solidify your understanding.
Real Robot Application: Implement the concepts and functionalities on a real robot, taking you from theory to practice.
But there’s more!
This course goes beyond theory. In Part 3, you’ll learn:
Robot Fabrication: Understand the process of constructing your robot from scratch, including material selection and assembly techniques.
Robot PC Configuration: Learn how to configure a robot's onboard computer to run ROS2, enabling it to handle complex tasks.
Microcontroller Programming: Program the robot's microcontroller for precise control of motors and sensors, ensuring smooth operation.
Sensor Integration: Integrate various sensors into your robot, such as LiDAR, cameras, and IMUs, for enhanced autonomy and environmental interaction.
Component Identification: Gain the skills to identify and select the appropriate components needed for your robot, from motors to power supplies.
Programming in Python and C++
All programming lessons are provided in both Python and C++, allowing you to choose the language you are most comfortable with or to develop expertise in both, making you a versatile robotics software developer.
By completing this course, you will:
Acquire a deep understanding of the practical aspects of building and programming robots using ROS2.
Gain hands-on experience that will prepare you for advanced robotics projects or a professional career in the robotics industry.
Become proficient in the full cycle of robot development, from fabrication to programming and sensor integration.
Join me in this exciting journey, and let's build something incredible together!