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.
Vous devez rendre, vos programmes comme indiqué sur InMOOC.

Version pdf du polycopié :

Site de InMOOC :


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.

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 4 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 4. Ces exercices devront m'être envoyés par email avant dimanche 10 septembre, minuit.
Un scan/photo peut convenir.



Lundi 18 septembre

Angles d'Euler.
Vous devez faire les exercices 5, 6, 7 et 8. Ces exercices devront m'être envoyés par email avant dimanche 24 septembre, minuit.
Une capture vidéo devra être faite. Il faudra ouvrir une chaîne Youtube (ou équivalent).



Lundi 25 septembre

Navigation à l'estime.
Vous devez faire l'exercice 9 (voiture sur le tore) et l'exercice 10 (robot manipulateur). Ces exercices devront m'être envoyés par email avant dimanche 1 octobre, minuit.
Une capture vidéo devra être faite.



Lundi 2 octobre

La centrale inertielle.
Vous devez faire l'exercice 11 (Foucault pendulum) et l'exercise 12 (Schuler oscillations in an inertial unit).
Ces exercices devront m'être envoyés par email avant dimanche 8 octobre, minuit.
Une capture vidéo devra être faite pour mintrer l'exécution de vos programmes.
Il faudra regarder les vidéos suivantes :
L'esprit sorcier : navigation inertielle
Pendule de Foucault



Lundi 9 octobre

Equation d'Euler pour les corps en rotation.
Vous devez faire l'exercice 15 (Dzhanibekov effect) et l'exercise 16 (Euler vector field).
Ces exercices devront m'être envoyés par email avant dimanche 15 octobre, minuit.
De plus, il faudra regarder la vidéo suivante :



Lundi 6 novembre

La roue en apesanteur.
Vous devez faire l'exercice 17 (flat disk).
Rajouter la question 7 : le retour.
Alors que la question 6 vous demandait de passer d'une rotation suivant l'axe 2 vers une rotation suivant l'axe 1, vous devez désormais demander à votre contrôleur de passer d'une rotation suivant l'axe 1 vers une rotation suivant l'axe 2.
Ces exercices devront m'être envoyés par email avant dimanche 12 novembre, minuit.
De plus, il faudra regarder les deux vidéos suivantes :
Gyroscopic precession :
Gyroscopic instruments :



Lundi 13 novembre

Cours sur la commande inertielle.
Il faudra faire l'exercice 22 (Helicopter looping) et l'exercice 23 (Hexarotor)
Ces exercices devront m'être envoyés par email avant dimanche 26 novembre, minuit.
De plus, il vous faudra regarder les vidéos suivantes :
Piloter un hélico :
C'est pas sorcier : les hélicos :
Landing :
ROV :



Lundi 27 novembre

Il y aura un cours sur la modélisation des robots par la méthode d'Euler-Lagrange.
Il faudra faire l'exercice sur le disque roulant qui vous a été envoyé par email le 27 novembre
Cet exercice devra m'être envoyé par email avant dimanche 3 décembre, minuit.
La vidéo de correction est donnée ici :




Lundi 4 décembre

Nous aurons un cours sur la modélisation dynamique d'une torpille à trois ailerons.
Il faudra faire l'exercice 20 (Modeling and control of a torpedo). Voir ci-dessous.
Cet exercice devra m'être envoyé par email avant dimanche 10 décembre, minuit.
Il faudra aussi regarder la vidéo suivante :




















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.
With replit.com


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





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



Exercise 8 Immersion
Start from the file immersion.py.
With replit.com


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

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.





Lesson 4. Dynamic modeling

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 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

Abstract: We give some applications of the previous theoretical tools for control, dealing with some specific problems related to mobile robotics.

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



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



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