Five-Project Series

Build Mobile Robots with ROS 2 you own this product

prerequisites
intermediate Git • intermediate Python • XML • YAML • OOP • linear algebra • debug Python code • intermediate Linux
skills learned
robot simulation • using Python for robotics • ROS 2 • sensor fusion • SLAM • navigation
Mat Sadowski
5 weeks · 6-8 hours per week average · INTERMEDIATE

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases

lite $19.99 per month

  • access to all Manning books, including MEAPs!

team

5, 10 or 20 seats+ for your team - learn more


Welcome to the exciting world of robotics! As a programmer for the RoboPrototypes company, you’ll simulate a mobile robot, implementing basic functionality and progressively improving control with a camera, LiDAR (light detection and ranging) and IMU (Inertial Measurement Units) sensors, an EKF (Extended Kalman Filter), and SLAM (Simultaneous Localization and Mapping). By the end of this series of liveProjects, you’ll have a self-driving robot as well as practical experience designing and working with complex mobile robotic systems.

These projects are designed for learning purposes and are not complete, production-ready applications or solutions.

here's what's included

Project 1 Get Started

Start building your robotics foundation: You’re a programmer helping create prototype robots for the RoboPrototypes company. You’ll get a brief introduction to ROS 2, set up the programming environment, and onboard robotics building blocks with basic tutorials. Then you’re ready to create launch files, which are integral to every ROS project. As you create packages in ROS 2, you’ll learn to define and use parameters and declare custom messages. When you’re finished, you’ll have a firm foundation for delving deeper into robotics.

Project 2 Simulate a Robot

The future of the RoboPrototypes company is in your hands. It’s your first day at the company, which specializes in bespoke robotic solutions. The CEO has asked you to develop a prototype of a mobile robot that will serve drinks to mall food court customers. An important client will decide whether they’ll provide follow-up funding after they see your prototype in simulation. Working with Gazebo 11 and employing ROS best practices, you’ll create a model for a differential drive robot that meets the provided specifications. Next, you’ll simulate the robot, implement a basic teleoperation node for controlling it, and add velocity multiplexing for safety purposes.

Project 3 Sensors and Sensor Fusion

You’re a programmer at the RoboPrototypes company, and its “dribot”—a prototype of a robot that will serve drinks to customers at a food court—has been running into things (including the CEO’s shin). Using Gazebo 11 and RVIZ2, you’ll add LiDAR (light detection and ranging) and IMU (Inertial Measurement Units) sensors that will provide a view of the environment from the robot’s perspective. To make the most out of the sensor data, you’ll fuse information from multiple sensor sources to better estimate where the robot is in the world.

Project 4 Simultaneous Localization and Mapping

Keep tabs on your robot. RoboPrototype, the company you work for, is preparing to demo its autonomous beverage delivery robot for investors in a food court next month. Your CEO has tasked you with setting up SLAM (Simultaneous Localization and Mapping) on the robot, making it possible to locate the robot at all times. Using the Slam Toolbox, you’ll equip the robot with the ability to create a map of its environment as well as pinpoint its location on the map. You’ll also get firsthand experience mapping on real data captured on a Turtlebot3 Burger, a widely used mobile robot platform.

Project 5 Navigation

Let your robot drive itself! Your company, RoboPrototypes, is preparing to demo its autonomous beverage delivery robot to investors soon, but the technician who was supposed to drive it has quit. Since there’s no one to take his place, your CEO has tasked you with upgrading the robot with automatic navigation. You’ll set up Nav2 to load your desired parameters, implement navigation planners and controllers, and optimize navigation by tuning costmap parameters. Once you send your waypoint goals to Nav2 telling your robot where to go, it’ll be ready to quench thirsts at a food court near you.

book resources

When you start each of the projects in this series, you'll get full access to the following book for 90 days.

choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • Build Mobile Robots with ROS 2 project for free

project author

Mat Sadowski

Mat Sadowski is a robotics consultant with eight years of experience in the industry. He has experience working with over thirty worldwide clients on such platforms as mobile robots, unmanned boats, industrial robots, and even lawnmowers. In his spare time, Mat is developing the robotics newsletter Weekly Robotics. You can get up to date on his work by following him on LinkedIn or by following his blog.

Prerequisites

These liveProjects are for programmers who are interested in gaining practical experience building mobile robots with ROS 2 or who want to switch from ROS 1 to ROS 2. To follow these liveProjects you’ll need a computer running Ubuntu 22.04 capable of running Gazebo and be familiar with the following:

TOOLS
  • Git
  • XML
  • YAML
  • Python
TECHNIQUES
  • Linux basics (installing and building software, working with command-line tools, shell basics, working with multiple terminals)
  • Linear algebra (translations, rotations, and coordinate systems)
  • Probability theory
  • Physics (kinematics and dynamics)

you will learn

In this liveProject series, you’ll acquire essential skills and knowledge for designing and working with complex mobile robotics systems, including

  • Use ROS 2 for mobile robotics
  • Use Python to create ROS 2 nodes
  • Create ROS 2 packages/nodes
  • Test and troubleshoot ROS 2-based systems
  • Work with Gazebo 11 simulator
  • Design a robot using XACRO/URDF
  • Work with bag files
  • Use Extended Kalman Filter for sensor fusion
  • Slam with Slam Toolbox
  • Robot navigation with Nav2

features

Self-paced
You choose the schedule and decide how much time to invest as you build your project.
Project roadmap
Each project is divided into several achievable steps.
Get Help
While within the liveProject platform, get help from other participants and our expert mentors.
Compare with others
For each step, compare your deliverable to the solutions by the author and other participants.
book resources
Get full access to select books for 90 days. Permanent access to excerpts from Manning products are also included, as well as references to other resources.