Robotics Simulation Labs
Here you will find a set of tutorials to practice robotics concepts with Webots Open-Source Robot Simulator and Python.
This page is available at: https://felipenmartins.github.io/Robotics-Simulation-Labs/
Motivation and Objectives
The simulation labs were created to replace the lab activities of my Robotics course due to the Corona-related restrictions of 2020/2021. This is an introductory level course on Robotics for engineering students, focusing on wheeled mobile robots. The main goal of the lab activities is to learn/improve knowledge of:
- Webots Robot Simulator and Python
- Programming mobile robots
- Finite-State machines
- Obstacle avoidance
- Kinematics of differential-drive robots
- Odometry-based robot localization
- Go-to-Goal behavior using PID controller
- Non-linear trajectory tracking controller
Templates and solutions are presented in Python 3.
How to use
The simulation labs are presented as a series of tutorials, including references to the official Webots tutorials. The Labs are intended to be followed in sequence, starting from the first one.
Lab descriptions, templates and solutions were updated to make them compatible with the global coordinate system now adopted as default by Webots (R2022a or newer). If you intend to use an older version of Webots, please see this note.
Jupyter Notebooks
Extra explanation on how to implement Python code for some of the labs is available as Jupyter Notebooks. You can run the notebooks without the need of installing Webots. The notebooks can be useful to understand the fundamentals of the corresponding topic, especially because they allow the step-by-step execution and experimentation of the implemented functions. For now, the notebooks available are:
- Odometry-based Localization for the differential-drive robot
- Implementation of simple robot behaviors for mobile robot control
- Mobile Robot Control with PID to implement position control
Content
The content of each lab is listed below:
- Lab 1 - Installation and configuration of Webots and Python
- Lab 2 - Line-following behavior with State Machine
- Lab 3 - Odometry-based Localization
- Lab 4 - Go-to-goal behavior with PID
- Lab 5 - Trajectory Tracking Controller
- Lab 6 - Combine Behaviors to Complete a Complex Mission
- Lab 7 - Robot Soccer Challenge
License
This project is licensed under the terms of the MIT license.