Robotics and ROS 2 Essentials – Course Announcement

Learn Robotics and ROS 2

Have you been looking for a good place to start your robotics and ROS 2 learning journey? Look no further!

We are proud to announce that together with the University of Eastern Finland, we have open-sourced the robotics part from our “Robotics & XR” master’s-level course. You can find the course materials and all the hands-on exercises on GitHub: Robotics & ROS 2 Essentials

What is the course about?

Last semester we were offered the opportunity to help develop the latest iteration of the “Robotics & XR” course for the University of Eastern Finland (UEF). Combining UEF’s broad theoretical robotics expertise, and the industry knowledge from Henki Robotics, we wanted to upgrade the existing Robotics course to prepare students with the most up-to-date skills required for modern robotics development. The course goes through the essential robotics skills and the basic concepts related to ROS 2, which is nowadays the most commonly used robotics development framework.

UEF Logo
Henki Robotics Logo

Why did we open-source the course?

People and students often ask where and how they should start learning robotics and ROS 2. Robotics is a rapidly growing field, so more and more experts are needed in the area. We believe in open source and knowledge sharing, so we wanted to make the course material available for everyone, for free!

What Will I Learn from following this course?

The main goal of the course is to be a beginner-friendly introduction to robotics and ROS 2, and it has a focus on learning by doing and experimenting through exercises. The practical exercises that accompany the theoretical content are based on a Gazebo simulation with the simulated Andino robot from Ekumen. The course exercises cover the following topics:

  1. Setup
    • Setup the exercises
    • Run the Gazebo simulation
    • Learn to use Docker
  2. ROS 2 Introduction
    • ROS 2 introduction
    • Gazebo and Rviz
    • ROS 2 topics; publish and subscribe
    • Transformations and tf-frames
  3. SLAM and Navigation Demo
    • Create a map using slam-toolbox
    • Navigate autonomously using Nav2
    • ROS 2 services
  4. Create your first ROS 2 package
    • ROS 2 packages – how to create your own package
    • Building and sourcing
    • ROS 2 Nodes
  5. Robot Odometry
    • Calculate and publish your robot’s odometry using wheel velocities
    • Robot odometry and how to calculate it
    • Publish and subscribe to topics from Python code
  6. Path Planning
    • Basic navigation concepts
    • Modify Nav2 parameters
    • Custom path planning using Nav2

Do I need ROS 2 installed?

No preliminary ROS 2 installation is required. Instead, the course uses Docker to provide all the course exercises in a containerized environment, requiring no manual installation of ROS 2, simulation, packages, and dependencies. All you need is an Ubuntu Operating System and Docker installed, and you are all set! Learning to use Docker is also a valuable skill, as it is a widely used tool in the software development industry, not just in robotics.

Get started

Robotics Essentials Logo

Start learning robotics and ROS 2 today and get going with the course: Robotics Essentials ROS 2 (GitHub)

We are always looking to improve our work and provide the best learning experience for people looking to learn the basics of ROS. Feel free to send us your feedback, and if you encounter any issues while following the course, or have any suggestions for improvements, do not hesitate to reach out to us!

13 thoughts on “Robotics and ROS 2 Essentials – Course Announcement”

    1. Hi! Currently, we only support Ubuntu with the installation instructions. Since Macbooks use ARM processor architecture, the provided Docker image won’t work on them correctly even inside the Virtual Machine. In general, the problem with VMs is also that the Gazebo simulation won’t run inside them with an optimal performance, and may make it difficult to use.

      If you find a nice way to run the exercises on Mac, we would be interested in hearing about it.

      1. Commenting on Gabriel & Janne Response. This looks to be an excellent tutorial with the convenience of a Docker Installation, under its current “Intel amd64/Ubuntu 22.04” only machine conditions you state. A migration to Ubuntu 24.04 Noble/ROS 2 Jazzy/gz sim Harmonic would be desirable for the longer term as debian installations , as recommended by OSRFoundation (https://gazebosim.org/docs/latest/getstarted/) are available now for both amd64 & arm64 (as used on MAC Silicon M1-4), and gz sim Fortress is EOL Sep 26. As I do ROS 2/Gazebo experimenting on a MAC Silicon machine using a Parallels VM, I am doing my own migration by recompiling the andino_gz., andino_description, andino_slam packages in a custom configured workspace on Ubuntu 24.04/ROS 2 Jazzy MAC VM. However, a revised Docker configuration for a MAC Silicon or Intel machine should also be possible by revising the Dockerfile appropriately and generating a Jazzy version of andino_description and andino_slam packages, currently only available on ros 2/humble. I’ll forward a link to my Ubuntu Noble/Jazzy/Harmonic GitHub repository when complete.

        1. Hi Ross, thanks for your comment!

          While creating the course, were looking to run the exercises in ROS Jazzy, but we found out that Andino simulation hasn’t been yet fully ported to Jazzy from Humble. You can find more information about it here: https://github.com/Ekumen-OS/andino_gz/issues/85. Once this is done, we’ll have the option to move to Jazzy, but this would also require revising the whole course materials.

          Creating an arm64 Dockerfile that runs Humble should be possible for Apple Silicon. We don’t have a chance to test this, so we would definitely be happy to accept a pull request to our repository that adds capabilities and a guide on how to run the exercises on Apple Silicon!

  1. Hello, this looks fantastic. One small error on this page is the link “0. setup” following the sentence
    “The course exercises cover the following topics:”
    is returning a 404. The setup section is of course there on the repo etc..

  2. HI, can i use rasberrypi 5 8gb and ydlidar x2 to make autonamus toy car with mapping capabilities . Also manual command from user to go to destination
    can u help me to develop that kind a project ?
    if u have any suggestion will u tell us

    1. Thanks for the feedback on the course, Carlos! To second what my colleague Janne said, I would also recommend the “Robotics for Programmers” book by Andreas Bihlmaier. It is not yet fully released, but you can already buy it and read through the chapters that are ready. You can find it at this link: https://www.manning.com/books/robotics-for-programmers?trk_msg=8M7JCROOP1L4D8NSL5MK81G3FS&trk_contact=NLM618VVBVQKEV7FUJ36B85V88&trk_sid=GPNGBU86JO6T40RVPAIRIFC57K&trk_link=G6D490O5TSQ471TQ8UNSPPGDJK&utm_source=Listrak&utm_medium=Email&utm_term=https%3A%2F%2Fwww.manning.com%2Fbooks%2Frobotics-for-programmers&utm_campaign=New+MEAP!+Build+Your+Own+Robot

Leave a Comment

Your email address will not be published. Required fields are marked *