Skip to content

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

Notifications You must be signed in to change notification settings

henki-robotics/robotics_essentials_ros2

Repository files navigation

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!

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published