Back to rankings

henki-robotics/robotics_essentials_ros2

C++

Learn the basics of robotics through hands-on experience using ROS 2 and Gazebo simulation.

coursenavigationodometrypath-planningros2slam
Star Growth
Stars
2.5k
Forks
266
Weekly Growth
Issues
1
1k2k
Nov 2024May 2025Dec 2025Jul 2026
README
Robotics & ROS 2 Essentials

Robotics & ROS 2 Essentials

Welcome to an open-source repository that contains materials and exercises needed to learn the essential robotics skills using ROS 2.

This material is implemented for the 2024 iteration of the Master's level "Robotics & XR" course taught by Dr. Ilkka Jormanainen at the University of Eastern Finland, in collaboration with Henki Robotics.

UEF Logo Henki Robotics Logo

Course overview

This course is designed to give you hands-on experience with the basics of robotics using ROS 2 and Gazebo simulation. The exercises focus on the Andino robot from Ekumen and are structured to gradually introduce you to ROS 2 and Docker.

No prior experience with ROS 2 or Docker is needed, and since everything runs through Docker, you won’t need to install ROS 2 on your system beforehand. Along the way, you’ll learn essential concepts like autonomous navigation and mapping for mobile robots. All the practical coding exercises are done in Python.

drawing

Exercises

This repository contains a set of exercises to learn the core concepts taught over the course through practical demos and coding exercises. Start from the exercises "0 - Setup" and follow the exercises one by one to learn the basics of robotics and ROS 2!

  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

Lecture slides

These slides accompany the practical exercises included in this repository and are meant to be covered at the same time.

  1. Theme 1: Robotics in society
  2. Theme 2: Robotics applications
  3. Theme 3: Robot control theory
  4. Theme 4: Navigation
  5. Theme 5: Robotics & AI
  6. Theme 6: XR applications in Robotics

Contribute

Did you encounter a problem during your exercises, or did you find a mistake? Report issues in the "Issues" section in GitHub, and we will help you.

If you've found a fix to an existing issue, you can open a new Pull Request to fix it and contribute to this course. We highly appreciate all the contributions!

Maintainers

This course and repository is maintained by the main team members and co-founders of Henki Robotics Oy:

Acknowledgements

We want to thank the following individuals for helping us in developing part of the material for this course and for providing support with teaching the in-person version of the course during the "Robotics & XR" Master's level course at the "University of Eastern Finland", in 2024 and 2025:

Related repositories
mlabonne/llm-course

Course to get into Large Language Models (LLMs) with roadmaps and Colab notebooks.

Apache License 2.0coursellm
mlabonne.github.io/blog/
81.1k9.5k
DataTalksClub/data-engineering-zoomcamp

Data Engineering Zoomcamp is a free 9-week course on building production-ready data pipelines. The next cohort starts in January 2026. Join the course here 👇🏼

Jupyter Notebookdata-engineeringkafka
airtable.com/appzbS8Pkg9PL254a/shr6oVXeQvSI5HuWD
43.9k8.6k
rohitg00/ai-engineering-from-scratch

Learn it. Build it. Ship it for others.

PythonPyPIMIT Licenseagentsai
aiengineeringfromscratch.com
41.6k6.9k
PKUanonym/REKCARC-TSC-UHT

清华大学计算机系课程攻略 Guidance for courses in Department of Computer Science and Technology, Tsinghua University

HTMLCreative Commons Attribution Share Alike 4.0 Internationalcoursecourse-project
rekcarc-tsc-uht.readthedocs.io
37.3k7.8k
google/comprehensive-rust

This is the Rust course used by the Android team at Google. It provides you the material to quickly teach Rust.

Rustcrates.ioApache License 2.0rustcourse
google.github.io/comprehensive-rust/
33.3k2k
sunface/rust-course

什么?你敢放心的把后背交给 AI? 我赌你不敢,那就来学学 AI 时代最酷、最安全、最快的语言吧。本书拥有全面且深入的讲解、生动贴切的示例、德芙般丝滑的内容,这可能是目前最用心的 Rust 中文学习教程 / Book

Rustcrates.iorust-langrust
course.rs
30.7k2.6k
huggingface/agents-course

This repository contains the Hugging Face Agents Course.

MDXApache License 2.0agentic-aiagents
30.3k2.2k
inancgumus/learngo

❤️ 1000+ Hand-Crafted Go Examples, Exercises, and Quizzes. 🚀 Learn Go by fixing 1000+ tiny programs.

GoGo ModulesOthergolanggo
twitter.com/inancgumus
20.1k2.7k
datawhalechina/easy-vibe

💻 vibe coding 2026 | Your First Modern Coding course beginners to master step by step.

JavaScriptnpmaicourse
datawhalechina.github.io/easy-vibe/
18.4k1.8k
USTC-Resource/USTC-Course

:heart:中国科学技术大学课程资源

C++ustccomputer-science
ustc-resource.github.io/USTC-Course
16.2k3.5k
federico-busato/Modern-CPP-Programming

Modern C++ Programming Course (C++03/11/14/17/20/23/26)

HTMLCreative Commons Attribution Share Alike 4.0 Internationalcppcpp11
federico-busato.github.io/Modern-CPP-Programming/
15.9k1.1k
nswbmw/N-blog

《一起学 Node.js》

JavaScriptnpmtutorialnodejs
15.4k4.5k