Inertial tools for robotics
Luc Jaulin


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










Présentation

Introduction

Ce cours correspond à la première partie du livre 'la robotique mobile' ou 'Mobile Robotics', ISTE editions. Il s'agit de notions utiles pour le positionnement et la modélisation des robots mobiles. Des corrections pour certains exercices sont faites sous la forme de vidéos. Les exercices se font sous Python.

Version pdf du polycopié :


Notation

Pour la notation, vous avez deux notes (sur 20) avec le même coefficient.

Contrôle continu. La note comprend
- les devoirs rendus (par email : lucjaulin@gmail.com). Chaque étudiant doit rendre son propre devoir
- les colles. La note résultante est une moyenne des notes qui vous sont données lors des évaluations individuelles, souvent sur machine.


Note Examen. Vous aurez une évaluation écrite d'une heure en salle d'examen.
Vous avez le droit uniquement à vos notes manuscrites.
Le polycopié, les photocopies, la calculatrice et autres appareils électroniques sont interdits.
Afin de ne privilégier personne, je ne réponds pas aux questions individuelles sur l'examen.
Bien sûr, vous pouvez poser votre question par email et si je la trouve pertinente, je réponds sous la forme d'un email à tous.
Vous pouvez avoir les anciens sujets d'examen ici :



Absences. Il faut éviter absolument les absences pour le contrôle écrit.
Pour le contrôle continu, il y a beaucoup d'évaluations et des absences sont probables. Dans ce cas, vous devez justifier votre absence en la signalant auprès de Laurence Gautier par email en donnant une raison valable et en me mettant en copie. Laurence doit alors vous répondre pour accepter cette justification toujours me mettant en copie.
Votre note sera gelée, ce qui signifie qu'elle ne sera pas prise en compte dans la moyenne qui forme votre note de contrôle continu.











Files

pdf files for the lessons and the exercises.
Starting programs.
Use the library roblib.py.
Draw in 3D view3dlib.py.






Séquencement


Lundi 2 septembre, F231

Début de la Leçon 1 sur les matrices de rotation, groupe de Lie, Algèbre de Lie, formules de Rodrigues.
Vous devez faire les exercices 1, 2, 3 et 5. Ces exercices devront m'être envoyés par email avant dimanche 10 septembre, 22h.
Un scan/photo peut convenir.



Lundi 16 septembre

Vous devez faire les exercices 4, 6, 7. Ces exercices devront m'être envoyés par email avant dimanche 22 septembre, 22h.
Une capture vidéo devra être faite pour l'execution des programmes. Si c'est pas fait, il faudrait ouvrir une chaîne Youtube (ou équivalent).



Lundi 23 septembre

Chapitre 2 sur les angles d'Euler.
Vous devez faire les exercices 8 et 9. Ces exercices devront m'être envoyés par email avant dimanche 29 septembre, 22h.




Lundi 30 septembre

Vous devez faire l'exercice 10 (voiture sur le tore) et l'exercice 12 (pendule de Foucault)
Ces exercices devront m'être envoyés par email avant dimanche 6 octobre, 22h.
Il faudra regarder les vidéos suivantes :
L'esprit sorcier : navigation inertielle
Pendule de Foucault



Lundi 7 octobre

Cours sur les centrales inertielles.
Vous devez faire l'exercice 13 (Schuler oscillations in an inertial unit) et l'exercice 14 (Graphisme robot 3D)
Ces exercices devront m'être envoyés par email avant dimanche 13 octobre, 22h.
Il faudra regarder les vidéos suivantes :
Gyroscopic precession
Gyroscopic instruments



Lundi 21 octobre

Cours sur la dynamique des robots mobiles
Je suis absent (congrès) et vous devrez travailler en autonomie.
Vous devez suivre la fin de la leçon 3 en vidéo
et me rendre l'exercice 16 (Dzhanibekov effect) et l'exercice 17 (Euler vector field).
Ces exercices devront m'être envoyés par email avant dimanche 27 octobre, 22h.
Il faudra de plus regarder la vidéo suivante :




Lundi 4 novembre

Cours sur modélisation lagrangienne
Vous devez rendre les exercices sur la modélisation du pendule inversé et celui sur le disque roulant.
La vidéo de correction sur le pendule inversé :

La vidéo de correction sur le disque roulant :

Ces exercices devront m'être envoyés par email avant dimanche 17 novembre, 22h.




Lundi 24 novembre

Cours sur contrôle des robots
Vous devez rendre les exercices sur le contrôle d'une voiture de Dubins par crochets de Lie.
Il faudra prendre une voiture de Dubins du second ordre.
La vidéo de correction sur la voiture de Dubins du premier ordre :

Il faudra aussi faire l'exercice sur le looping de l'hélicoptère.
La vidéo de correction sur l'hélicoptère :

Ces exercices devront m'être envoyés par email avant dimanche 8 décembre, 22h.
Les exercices de démarrage : lie_control.py et helico.py. Il faudra également regarder les vidéos suivantes :


















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



Abstract: We present the mathematical tools needed to understand the lesson. 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. Amphisbaena
Start from the file amphisbaena.py.



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






Lesson 2. Euler angles

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 8 Heading of a boat
Start from the file headingboat.py.



Exercise 9 Immersion
Start from the file immersion.py.



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





Lesson 3. Inertial unit

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 12. Foucault pendulum



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


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






Lesson 4. Dynamic modeling

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

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


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


Exercise 19. Inverted rod pendulum
Start from the file invpend.py.


Exercise 20. Rolling disk
Start from the file rollingdisk.py.





Lesson 5. Control

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


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







































2020-2021 :
2021-2022 :
2022-2023 :
2023-2024 :
2024-2025 :