InMOOC
MOOC on inertial tools for robotics
The 4th edition opens
Luc Jaulin, ENSTA-Bretagne, UBO, Lab-STICC
jaulin.inmooc@gmail.com



Lab-STICC UBO GDR MACS GDR Robotique ENSTA Bretagne DGA ROBEX Sperob SAGIP



  1. Introduction
  2. Program with dates and points
  3. Post your work
  4. Files
  5. Videos
  6. Other MOOCs







Introduction

InMOOC is a free MOOC open to everybody. It corresponds to chapter 1 of the book "Mobile Robotics, Luc Jaulin (2015), ISTE editions". This MOOC requires notions in mathematics (typically those that are needed to enter engineering schools in France).
It is supposed to be in English, but some videos associated to exercises are still in French.

Context

Inertial techniques are used in several topics of mobile robotics. They are used
- to deal with data coming from an inertial measurement unit (IMU) which is a device that measures angular rates and accelerations to estimate a position of a robot
- for finding a dynamical model for a robot in a 3D environment with a position and orientation that may change with respect to the different forces and torques.
- to compute the input to apply to the robot so that it will move toward the right direction
Inertial tools are used in different types of robots /vehicles such as autonomous aircraft, underwater robots, satellites, car, etc.
In this MOOC, you will learn who to:
- Build the sensors that are able to measure the angular rate and the accelerations of a body inside its own frame;
- Derive the state equations which a 3D robot controlled with accelerations or forces;
- Integrate these state equations using an integration algorithm (Runge-Kutta for instance);
- Characterize and control the integration errors




Registration

To register fill the form :
The registration is not mandatory to follow the MOOC and to see the videos. But it is needed to have to get the diploma.

Required

To follow InMOOC, you should have some basic notions in Python and good knowledge in mathematics. If you do not know Python, but any other programming language, you may learn easily the required notions in this MOOC.
You will have to install Python 3 in your machine.

Videos

A video with explanations related to each exercise is given as soon as the lesson opens. You are not obliged to follow the method that is given in the video.







Diploma

To get the diploma, you need at least 25 points. Therefore, doing all exercises is not mandatory.
The participants who got enough points will receive a diploma corresponding this MOOC.
This diploma can be used by students to obtain the corresponding ECTS from their PhD courses, or to comply with any other requests by their home university.
If needed by your doctoral school, I can also provide a 20 minutes Skype exam with a mark, once the MOOC is finished.
An example of the diploma you can obtain :


Contact

For all questions, delays, etc send an email to jaulin.inmooc@gmail.com








Program with dates and points

Lesson 1. Set a rigid body in a 3D space , 12:00.
Exercise 1. Propriété de la matrice antisymétrique ω∧ (1 point)
Exercise 2. Identité de Jacobi (1 point)
Exercise 3. Formule de Varignon (1 point)
Exercise 4. Quaternions (1 point)
Exercise 5. Lie group SE(2) (1 point)
Exercise 6. Car on the sphere (2 points)

Lesson 2. Lesson 2. Euler angles , 12:00.
Exercise 7 Heading of a boat (1 point)
Exercise 8 Immersion (2 points)
Exercise 9. Car on the torus (2 points)
Exercise 10. Robot manipulateur (1 point)

Lesson 3. Inertial unit , 12:00.
Exercise 11. Foucault pendulum (1 point)
Exercise 12. Schuler oscillations in an inertial unit (1 point)
Exercise 13. Graphisme robot 3D (1 point)

Lesson 4. Dynamic modeling , 12:00.
Exercise 14. Modélisation d'un robot sous-marin (1 point)
Exercise 15. Dzhanibekov effect (2 points)
Exercise 16. Euler vector field (2 points)
Exercise 17. Flat disk (2 points)

Lesson 5. Control , 12:00.
Exercise 18. Lie bracket for control (1 point)
Exercise 19. Follow the equator (1 point)
Exercise 20. Modeling and control of a torpedo (2 points)
Exercise 21. Geodesic (2 points)
Exercise 22. Helicopter looping (1 point)
Exercise 23. Hexarotor (2 points)
Exercise 24. Scansat (1 point)

All exercises should be posted: , 12:00.

Diplomas are sent by email: , 12:00.






Post your work

For each lesson, you should send your solution by email to jaulin.inmooc@gmail.com
For the exercises that require the execution of a program, You should provide the Python (or other) code.
You should also send a pdf file with some explanations and screen captures of the running program.
For some exercises, the solution corresponds to text and equations and no program is required. In such a case, you should post a scan of your paper sheet, (taken with you phone for instance) or any pdf file.










Files

pdf files for the lessons and the exercises.
Starting programs for Python users.
For Python users, use the library roblib.py.
For Python users, draw in 3D view3dlib.py.










Videos




Lesson 1. Set a rigid body in a 3D space

Open: Officially starts .
Lesson 1 is open in advance, to allow some adaptations and see how the MOOC works.

Abstract: We present the mathematical tools needed to understand the lessons. More precisely, we introduce the rotation matrices, rotation vectors, Lie algebra and systems of coordinates.






Exercise 1. Propriété de la matrice antisymétrique ω∧


Exercise 2. Identité de Jacobi


Exercise 3. Formule de Varignon


Exercise 4. Quaternions
Start from the file quaternion.py in inmoocpy.zip.


Exercise 5. Lie group SE(2)
Start from the file se2.py.



Exercise 6. Car on the sphere
Start from the file car_sphere.py.






Lesson 2. Euler angles

Open :

Abstract: We provide a parametrization of SO(3), the set of 3D rotations, via the Euler angles. The differential calculus in SO(3) and the link with rotation vectors. These concepts are illustrated through various examples such as the drawing of 3D objects.






Exercise 7 Heading of a boat
Start from the file headingboat.py.



Exercise 8 Immersion
Start from the file immersion.py.



Exercise 9. Car on the torus
Start from the file car_on_torus.py.


Exercise 10. Robot manipulateur
Partez du fichier staubli.py.





Lesson 3. Inertial unit

Open :

Abstract: In this lesson, we show how to build an inertial unit system that will be embedded inside a mobile robot. For this, we will provide a kinematic model of a body moving and rotating freely in the space. Using an integration of the corresponding differential equation, we will show how we can estimate the position, the orientation and the speed of the robot.






Exercise 11. Foucault pendulum



Exercise 12. Schuler oscillations in an inertial unit
Start from the file schuler_imu.py.


Exercise 13. Graphisme robot 3D
Partez du fichier auv3D.py.



View more : L'esprit sorcier : navigation inertielle
View more : Pendule de Foucault
View more : Gyroscopic precession
View more : Gyroscopic instruments





Lesson 4. Dynamic modeling

Open :

Abstract: In this lesson, you only have exercises. We show how to get the state equations for three dimensional robots. We also explain how to simulate them with 3D graphic.

Exercise 14. Modélisation d'un robot sous-marin


Exercise 15. Dzhanibekov effect
Start from the file dzhanibekov.py.


Exercise 16. Euler vector field
Start from the file euler_field.py.


Exercise 17. Flat disk
Start from the file flatdisk.py.





Lesson 5. Control

Open :

Abstract: In this lesson, you only have exercises. We give some applications of the previous theoretical tools for control, dealing with some specific problems related to mobile robotics.

Exercise 18. Lie bracket for control.
Start from the file lie_control.py.


Exercise 19. Follow the equator
Start from the file equator.py.


Exercise 20. Modeling and control of a torpedo
Start from the file riptide.py.



Exercise 21. Geodesic
Start from the file geodesic.py.


Exercise 22. Helicopter looping
Start from the file helico.py.



Exercise 23. Hexarotor
Start from the file hexarotor.py.



Exercise 24. Scansat.
Start from the file scansat.py.








Liste des diplômés de l'année 2020

Rami Jradi
Huiseok Moon
Laila El Younsi
Mohammed Chghaf
Timothée Guy
Clément Rolinat
Julien Taran
Maxime Legeay
Nicolas Odorico
Bernardo Hummes Flores
Hugo Piquard
Katell Lagattu
Thibault Jadoul
Isaac-Andreï Witt
Baptiste Orlhac
Hugo Sabatier
Estelle Arricau
Antonin Betaille
Samuel Prouten
Stephane Ngnepiepaye Wembe
Enzo Essono Aubame
Yves Jordan Njamen
Yohann Gourret
Martin Gounabou






Liste des diplômés de l'année 2021

Ela Mvolo Evina Alegue
Nemer Issa
Augustin Morge
Chloe Potherat
Damien Esnault
Danut Pop
Ermance Decaudaveine
Florian Jerram
Gabriel Betton
Hugo Gace
Hugo Reubrecht
Hugo Yverneau
Jonas Soueidan
Laurent Droudin
Laurent Potin
Mael Godard
Mehavannen Prabakaran
Mirado Rajaomarosata
Nicolas Defour
Philippe Nguyen
Rémi Porée
Simon Gervaise
Taddéo Guérin
Théo Boutémy
Thibault Langlard
Thomas Tacheron
Virgile Pelle
Antoine Wanctin
Alexandre Batard






Liste des diplômés de l'année 2022

Abdelrahman Sayed Sayed Emam Ibrahim
Colin Parellier
Paul Chambroux
Oussama Bey
Abdoullah Ndoye
Luc Desbos
Alexandre Batard
Titouan Belier
Victor Bellot
Léo Bernard
Johan Berrier-Gonzalez
Samy Bourzoufi
Matteo Caliandro
Gwendal Créquer
Apolline De Vaulchier Du Deschaux
Alix Doineau
Marie Dubromel
Martin Galliot
Bastian Garagnon
Guillaume Garde
Louis Gillard
Clara Gondot
Adam Goux Gateau
Louis-Nam Gros
Hugo Hofmann
Tristan Le Floch
Jules Le Gouallec
Emilie Ledoussal
Hippolyte Leroy
Théo Massa
Marguerite Miallier
Ludovic Mustière
Océan Noel
Camilo Ortiz
Martin Pilon
Mathieu Pitaud
Aimé Randriamoramanana
Harendra Rangaradjou
Louis Ravain
Kevin Ren
Catherine Rizk
Louis Roullier
Etienne Roussel
Mathys Séry
Joachim Zafrana
Rania Ziane















Liste des diplômés de l'année 2023

Julien Brisset
Flavie Duthay
Josué Nkaya-Nkaya
Alexandre Nisse

-->