Skip to the content.

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/

screenshot_Webots

Objectives

I teach an introductory-level course on Robotics for electrical engineering students, focusing on wheeled mobile robots. These Robotics Simulation Labs were created to replace the practical activities of that course during the restrictions related to the COVID-19 pandemic. Initially, there were only 4 labs, but gradually more labs were added to cover more topics. Now I use the simulation labs to complement the theory and practical activities of the course.

How to use

The Robotics Simulation Labs are presented as a series of tutorials, including references to the official Webots tutorials, when relevant. The Labs are intended to be followed in sequence, starting from the first one.

Templates and solutions are presented for some labs, always in Python. They are compatible with the global coordinate system adopted as default by Webots since version R2022a. If you use an older version of Webots, please see this note.

If you make use of the content in this page, please cite [1].

Content

The content of each lab is listed below:

Accompanying Jupyter Notebooks

Brief explanations of some concepts, including how to implement them in Python, are available as Jupyter Notebooks. These notebooks are useful for understanding the fundamentals because they allow step-by-step execution of the implemented functions without the need of running Webots.

The available notebooks are:

  1. Implementation of simple robot behaviors for mobile robot control (related to Lab 2)
  2. Selecting Behaviors with Finite-State Machines (also related to Lab 2)
  3. Digital Image Processing - fundamentals and basic functions (related to Lab 3)
  4. Odometry-based Localization for the differential-drive robot (related to Lab 4)
  5. Mobile Robot Control with PID for a go-to-goal moving controller (related to Lab 5)
  6. Dijkstra’s Algorithm for Robotic Path Planning (related to Lab 9)

Simple Robot Simulator

If you are looking for a simpler simulator, try SimRobSim, which is a simple robot simulator built using Pygame. It simulates a differential-drive robot that uses Dijkstra’s algorithm to define waypoints, and implements a path-following algorithm using PID.

Reference

If you make use of the Robotics Simulation Labs, please cite [1]:

[1] Lima, José, Felipe N. Martins, and Paulo Costa. “Teaching Practical Robotics During the COVID-19 Pandemic: A Case Study on Regular and Hardware-in-the-Loop Simulations.” Iberian Robotics Conference. Cham: Springer International Publishing, 2022. Available at: https://link.springer.com/chapter/10.1007/978-3-031-21065-5_44

License

This project is licensed under the terms of the MIT license.