GithubHelp home page GithubHelp logo

felipenmartins / robotics-simulation-labs Goto Github PK

View Code? Open in Web Editor NEW
12.0 2.0 5.0 98.49 MB

Set of tutorials to practice robotics concepts with Webots and Python

Home Page: https://felipenmartins.github.io/Robotics-Simulation-Labs/

License: MIT License

Python 100.00%
webots-robot-simulator webots python

robotics-simulation-labs's Introduction

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

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:

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.

robotics-simulation-labs's People

Contributors

felipenmartins avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

robotics-simulation-labs's Issues

Question on the accuracy of the readings from lab 3

Hi,

Some great tutorials you've done here!

I've been using lab 3 (localisation / odometry readings) for a project of my own but am struggling to get my head around something.

Using the accurate values for the robot, I would have thought that the pose info would be rather accurate, however I'm finding that I get a compounding error and after a 50 laps of the track, my values are off significantly:

  • phi: -1.1137 vs. 0.0323
  • x: -0.75 vs. 0.0172
  • y: 0.03 vs. 0.439

I was wondering if you had any insight on what the cause of this might be? I get this result even if I just copy your provided solutions, and have tried with your values for the wheel radius / wheel distances and those provided on the webots site, and both are wildly off what the simulation suggests is correct.

I am wondering if the ePuck proto has some manufactured margin of error to simulate a real-world scenario?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.