UV 4.7
Simulation et commande des robots
Ce cours est associé en partie au MOOCs intitulés RobMOOC et IAMOOC
Luc Jaulin et Charles Vanwynsberghe, ENSTA-Bretagne, Lab-STICC





  1. Présentation de l'UV 4.7
  2. Version pdf du polycopié
  3. Site de RobMOOC
  4. Site de IAMOOC
  5. Calendrier
  6. Leçons
  7. Liste des étudiants de l'UV
  8. Proxy problems with ENSTA (IAMOOC)
  9. Vidéos en avance







Présentation

Introduction

Cette UV 4.7 est une des UV du profil robotique.
L'UV est centrée sur la simulation et la commande des robots avec des outils logiciels pour la robotique. Elle comprend quelques concepts d'intelligence artificielle comme les méthodes ensemblistes pour la localisation et la commande non-linéaire des robots. Elle possède
- une composante théorique basée sur le calcul par intervalles et qui sera utilisée pour la localisation (un peu de façon similaire au filtre de Kalman)
- une autre composante théorique sur la commande non-linéaire des robots
- et une composante logicielle.
Le seul langage autorisé sera Python. Matlab qui est normalement autorisé pour les extérieurs inscrits à RobMOOC ne le sera pas dans le cadre de cette UV.
Tout ce qui est écrit en vert dans les MOOC concerne les extérieurs (ceux qui font le MOOC et qui ne sont pas de l'ENSTA Bretagne).

Notation

Pour la notation de cette UV 4.7, vous avez deux notes (sur 20) toutes avec le même coefficient.

Contrôle continu. La note comprend
- les devoirs rendu sous Moodle. Vous pouvez vous mettre en binôme, mais chaque étudiant doit rendre son propre devoir en indiquant le nom de son binôme
- les évaluations machine. Suite à un tirage au sort, vous êtes évalués seuls devant la machine.
- les problèmes notés. Pour ces derniers, vous avez en H1 une présentation et aide à la résolution du problème. L'évaluation se passe en H2-H3. Vous pouvez vous mettre en binôme.
La note résultante est une moyenne des notes qui vous sont données lors des évaluations individuelles sur machine, les devoirs rendus sous Moodle et les problèmes notés.


Note Examen. Vous aurez une évaluation écrite en salle d'examen. Vous avez le droit à votre polycopié et à vos notes manuscrites. La calculatrice et autres appareils électroniques sont interdits. Cette évaluation écrite se décompose en
(1) Un QCM avec correction automatique grâce au logiciel AMC (auto-multiple-choice), portant sur des questions de cours et de compréhension. Le principe d'ACM est expliqué sur cette vidéo. Le QCM durera 30 minutes et vous donnera une note sur 10.
(2) Un examen écrit de 40 minutes avec des problèmes liés à cette UV 3.7 (assez proches des exercices vus en BE) vous donnera également une note sur 10.
La somme de ces deux notes (sur 10) vous donnera une note sur 20.
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 faut 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 notre 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.



Calendrier

Pour l'année 2017-18, vous trouverez le Calendrier pris sur hélato (onglet CI2A).

Lundi 15/01/2018. H4-H5-H6. RobMOOC A (disponible sur cette même page ci-dessous).
Pour ce premier cours, je serai absent. En H5-H6, Charles Vanwynsberghe votre deuxième encadrant viendra vous suivre en salle info.
Vous devrez rendre vos exercices 2.1, 2.2, 2.3 sous le Moodle de RobMOOC, Leçon A, avant le jeudi 25, 8:00.
Il faudra pour cela vous inscrire sur le site de RobMOOC.

Jeudi 18/01/2018. H1-H2-H3. RobMOOC : Problème (noté).
En H1 je vous présente le problème du funambule et vous donne toutes les explications pour la résolution. En H2-H3, vous devez faire la résolution sous Python. Vous devez avoir fini en H3. Il est fortement recommandé d'avoir complètement totalement assimilé la leçon A de RobMOOC. Une note sur 10 vous est donnée par Charles.

Jeudi 25/01/2018. H1-H2-H3. RobMOOC B (disponible sur cette même page ci-dessous).
En H1, vous devez faire la leçon B, seuls (je suis en déplacement à Sheffield). En H2-H3, vous aurez une évaluation individuelle sur machine avec Charles sur les BE de la leçon A. Pour les autres, vous pouvez faire les BE de la leçon B chez vous. J'essaie de vous annoncer la veille la liste des étudiants sélectionnés pour l'évaluation.
Vous devrez rendre vos exercices 2.4, 2.6, 2.8 sous le Moodle de RobMOOC, Leçon B, avant le jeudi 01/02, 8:00.

Jeudi 01/02/2018. H1-H2-H3. RobMOOC : Problème (noté).
Vous devez avoir rendu vos exercices 2.4, 2.6, 2.8 sous le Moodle de RobMOOC, Leçon B avant 8:00.
En H1 je vous présente un problème détaillé et vous donne toutes les explications théoriques pour la résolution. Vous avez le droit de poser toutes les questions que vous voulez. En H2-H3, vous devez faire la résolution sous Python. Vous devez avoir fini en H3. Il est fortement recommandé d'avoir complètement totalement assimilé les leçons A et B de RobMOOC. Une note sur 10 vous sera donnée par Charles.
Suite au problème, vous devez faire les exercices 2.9, 2.10 (voir ci-dessous), que vous devez terminer chez vous. Vous posterez vos programmes sous le Moodle de RobMOOC, Leçon B, avant le jeudi 08/02, 8:00.

Jeudi 08/02/2018. H1-H2-H3. RobMOOC C.
Vous devez avoir rendu vos exercices 2.9, 2.10 sous le Moodle de RobMOOC, Leçon B avant 8:00.
En H1, vous devez faire la leçon C en vous aidant de la vidéo.
En H2-H3, vous aurez une évaluation individuelle sur machine avec Charles sur les exercices 2.9, 2.10.
En parallèle, vous devez faire les BE de la leçon C (exercices 3.1, 3.2, 3.3).

Jeudi 08/03/2018. H1-H2-H3. RobMOOC D.
Avant 8h, il faut avoir rendu vos exercices de la leçon C (exercices 3.1, 3.2, 3.3).

Jeudi 22/03/2018. H1-H2-H3. RobMOOC E

Jeudi 29/03/2018. H1-H2-H3. Problème (noté)

Jeudi 05/04/2018. H1-H2-H3. RobMOOC F

Jeudi 12/04/2018. H1-H2-H3. IAMOOC A (Chapter 1)

Jeudi 19/04/2018. H1-H2-H3. IAMOOC B (Chapter 2)

Jeudi 26/04/2018. H1-H2-H3. IAMOOC C (Chapter 3)

Jeudi 03/05/2018. H1-H2-H3. IAMOOC Problème (noté)

Jeudi 17/05/2018. H1-H2-H3. IAMOOC D (Chapter 4)

Jeudi 24/05/2018. H1-H2-H3. IAMOOC Problème (noté)

Jeudi 31/05/2018. H1-H2-H3. Exam






Leçons

Les fichiers Python utiles sont dans robmoocpy.zip. Dans le zip Python, il y a une librairie roblib.py qui faudrait essayer ne pas toucher afin que je puisse comprendre vos programmes et les faire tourner sur ma machine facilement.

Pour les BE, venez avec vos écouteurs!





Leçon A. Introduction au bouclage linéarisant

Résumé : Dans cette leçon A, nous présenterons la problématique de la commande non-linéaire des robots mobiles. Nous introduirons ensuite la commande linéaire d'une chaîne d'intégrateurs par placement de pôles, qui sera un outil indispensable par la suite pour effectuer le suivi de trajectoire pour nos robots. Pour introduire le principe de commande linéarisante, nous nous intéresserons à la régulation d'un pendule. Nous appliquerons le même principe à la conception d'une loi de commande pour un robot de type char afin que ce dernier soit capable de suivre une trajectoire en forme de cycloïde.


Exercices.
Exercice 2.1. Manivelle
Partez du fichier ex_crank.py qui se trouve robmoocpy.zip.
Exercice 2.2. Les trois bacs
ex_pools.py.
Exercice 2.3. Train de robots
ex_train.py.



Leçon B. Commande par bouclage linéarisant, singularités et modes glissants

Résumé : La leçon B, présentera d'une façon plus générale l'approche par bouclage linéarisant pour la commande des robots mobiles. Pour cela, nous introduirons les concepts de retards différentiels et le graphe qui lui est associé. Nous montrerons les problèmes de singularité pouvant exister dans les lois de commande et leur interprétation. Nous donnerons également des méthodes pour faire face à ces singularités. Nous introduirons une variante importante de la méthode par bouclage linéarisant : la commande par modes glissants, ou sliding modes.


Exercices.
Exercice 2.4. Commande d'un robot sous marin 3D
ex_auv3d.py.
Exercice 2.6. Poursuite
ex_pursuit.py.
Exercise 2.8. Commande par mode glissant
ex_sliding.py.
Exercice 2.9. Groupe de robots
ex_group.m ou ex_group.py.
Exercice 2.10. Convoi de robots
ex_convoy.m ou ex_convoy.py.



Leçon C. Commande sans modèle (ou mimétique)

Résumé : Après avoir présenté le rôle du modèle dans la commande des robots, en s'intéressant plus particulièrement aux liens entre les modèles dynamiques et cinématiques, la leçon C proposera une autre vision de la régulation des robots mobiles. Cette dernière ne s'appuie pas sur les équations d'état du robot (c'est pour cela que nous la qualifions de sans modèle), mais plus sur l'intuition que l'on a sur sa dynamique. Cela pourra se faire par exemple en mimant les méthodes de pilotage existantes, qu'elles soient humaines (comme c'est le cas s'il s'agit d'un véhicule élaboré pour être conduit par un humain) ou de nature biologique (en copiant par exemple la méthode de déplacement d'une anguille). Pour illustrer ces notions, nous nous intéresserons au suivi de ligne pour un robot de type char et à la commande d'un robot patineur.


Exercices.
Exercice 3.1. Robot char sur une ligne (1 point)
ex_tank_line.m ou ex_tank_line.py.
Exercice 3.2. Voiture de Van der Pol (1 point)
ex_vanderpol.m ou ex_vanderpol.py.
Exercice 3.3. Ancrage (1 point)
ex_anchor.m ou ex_anchor.py.


Proxy problems pour IAMOOC

If you have problems with the proxy of your institute which refuses to give you some access to conda packages, then you have to put in the file '.condarc' (which is generally inside home/yourname directory), the following three lines (for ENSTA-Bretagne):
proxy_servers:
  http: http://proxy.ensieta.ecole:8080
  https: https://proxy.ensieta.ecole:8080
If you have an internet without any proxy, you should comment the three previous lines.


Liste des étudiants de l'UV 4.7, 2017-18

AOUN DURAND Elias
ARSLANYAN Antony
BACCHUS Denis
BRUGIER Juliette
CHENU Alexandre
CLAVIER Evann
COSTA Maria
DELMAS Sarah
DEMANGEOT Téva
DO ROSARIO Maxime
DUSSOT Romain
FILIOL Pierre
GOUTORBE Charlie
HOUDEVILLE Alexandre
LAURENDIN Olivier
LEFÈVRE Lucie
POIRIER Fabrice
RAMADAN Abbas
VALÉRY Louis
BARES Victor (substitution)
GRAU Paul-Antoine (substitution)
NOELE Elodie (substitution))