Predictor
UV 5.7, Architecture Robotique
Responsable : Luc Jaulin




Ce site concerne l'UV 5.7 Architecture Robotique pour les étudiants de 3ième année de l'ENSTA-Bretagne.


Introduction

When dealing with the propagation of uncertainties in dynamical systems, we may consider three types of observers:
- Filters. Their goal is to estimate the state of the system taking into account all data collected in the past.
- Smoothers. They provide an estimation of the state taking into account data that have been collected in the past but also in the future.
- Predictors. At the initial time, a predictor provides an estimate of the future states assuming that the initial state is known. No measurements can be used since they are not available yet.

Note that when we provide an estimation, we also have to give an estimation of the error.
In this project, the system is a robot or a group of robots which are mainly marine robots (underwater or surface).
We will develop a tool that will certify that a mission made with these robots will satisfy some given specifications such as:
- The robot will never enter in a forbidden zone,
- The robot will surface in a given disk
- The robot will always know its current location with an accuracy smaller than 10 meters.
- The robot will see a given landmark so that it will be able to relocalize.
- These robots will be close enough to communicate at a given rate.

Note that the guarantee should be given before the mission and should not be confused with a real time (filter) or post-mission analysis (smoother).
For instance, we do not want to prove that the robot is not or has not been in the forbidden area, but we want to be sure that it will not go in the forbidden area. In the context of 'predictor', the data have not been collected yet and this brings some theoretical difficulties that have to be solved.
To achieve our goal, we will use tools that are able to propagate uncertainties through equations such as the Kalman filter or interval methods.
Experimental validations will also be proposed to show the usefulness of the developed tools. More precisely the scan of zone with underwater robots will be performed with the AUVs of Kopadia. They will be related to the research of wreck 'la Cordelière'.
All results and source codes developed in this project will be made publicly available in this website.


Partners

Industrial partners are:
- Kopadia is represented by Thierry Grousset and Hervé de Forges. Also is involved Paul-Antoine Grau who is a student/engineer ENSTA/Kopadia.
- Shom is represented by Christophe Vrignaud (Navidro).
- DGA is represented by Benoît Desrochers. La DGA (MRIS)) nous finance sur trois ans sur la validation a priori de missions robotisées avec des méthodes ensemblistes.


Moreover, are involved: - Région Bretagne and le DRASSM which provide some financial supports for using robots to find 'la Cordelière'.
- MRIS (DGA) which supports us on this topic.

Consignes

All documents (and videos) will be in English.
Chaque étudiant devra faire un mini-cours devant ses camarades. Ce cours devra lié au projet et sera noté.
L'outil de gestion de version pour les logiciels développés sera Github. Le rapport final sera à faire sous Lyx/Latex, en anglais ou en français.
L'auteur de chaque partie du rapport doit être identifié afin de permettre une notation.
Une vidéo présentant le projet devra être faite.
La soutenance finale se tiendra à la fin de l'UV. Chaque étudiant devra parler au moins 3 minutes devant un jury composé de plusieurs enseignants. Il faudra bien expliquer votre contribution.

Notes

Vous aurez trois notes avec le même coefficient. Pour ces notes, je prends en compte principalement votre contribution au travail collectif. Le travail isolé n'est pas forcément considéré. Vous devez donc faire le maximum pour collaborer avec les autres.
- Note 1 : Travail continu. Elle évalue le travail en continu effectué au long du projet, lors des séances de travail. Cette note évalue également un mini-cours pendant lequel vous exposez pendant 30 minutes des notions importantes pour le groupe et qui seront utiles pour réaliser le projet.
- Note 2 : Soutenance. Il s'agit d'une note individuelle sur la soutenance, le rapport et la vidéo. Vous devrez défendre votre contribution pour chacun de ces supports.
- Note 3 : Produit final. Il s'agit d'une note commune sur le produit final. Tout le monde a la même note.




Tâches

Chaque étudiant doit avoir une responsabilité bien définie. Ces responsabilités se définiront et se préciseront au cours du projet. Ci-dessous, vous trouverez quelques exemples.


Plateformes collaboratives


We use Github for the version management of the software and documents.
https://github.com/robpredictor2019

Github de Maxime pour le Roblib C++
https://github.com/phoenix1249/Gnuplot_Cmake

We use Overleaf to write the document
www.overleaf.com/8358965573yyksgdngzxmz








Journal

Vendredi 9 Novembre 2018, pm. Extended Kalman filter. Pierre Benet.

Mercredi 28 Novembre 2018, am. Follow a vector field. Joris Tillet.

Mercredi 5 décembre 2018, am-pm. Navigation polynésienne.
Présentation de la navigation polynésienne
Certains étudiants ont commencé à étudier la bibliothèque d'intégration garantie : CAPD.
D'autres ont regardé la bibliothèque Tubex de Simon Rohou :

7 décembre 2018, pm, F023. Explications sur l'intégration garantie. Section 3.2 de l'article :
Paul-Antoine Grau nous présente les AUV de Kopadia qui seront utilisés pour les expérimentations.


12 décembre 2018, am. Simon fait un cours sur MOOS, le middleware qui sera utilisé dans le cadre de cette UV. C'est en en effet MOOS qui tourne dans l'AUV de Kopadia.

13 février 2019, pm. Simon fait le deuxième cours sur MOOS : MOOS-IvP
Partie 3/3 - Autonomie et Prise de Décisions

21 février 2019, am en E007 . En C1, je fais un petit rappel sur le filtre de Kalman en mode prédiction pour la propagation du modèle d'erreur.
Nous avons fait le découpage en groupe du projet.

25 février 2019, am+pm en E007. Fabrice Poirier a fait un exposé sur la navigation polynésienne.
Antony Arslanyan a détaillé les capteurs utilisés par le Folaga.

Lundi 4 mars 2019, am+pm . On a eu un exposé de Sarah Delmas sur Tubex, Romain Dussot sur PyUnity Vibes, Alexandre Chojnacki sur la focalisation. Les premiers cours de pilotage avec Josh ont commencé.

Mardi 5 mars 2019, am+pm . Exposés de Maria Costa sur le DVL et Elodie Noele sur Ocean infinity.

Mercredi 6 mars 2019, am+pm . Préparation de la mission avec le Folaga.

Lundi 11 mars 2019, am+pm. Les expérimentations avec le Fologa devront se tenir le lundi pm.
Elles pourront se faire sur la Penfield ou au Moulin blanc, suivant le temps.

Mardi 12 mars 2019, pm. Le mardi matin, nous n'avons pas cours.
Les exposés du mardi matin sont décalés à l'après midi.

Mercredi 13 mars 2019, am+pm.
Expérimentation sur la Penfield : expérience du triangle.
14h : répétition.
A 15h, nous aurons la soutenance finale.
Pour la semaine prochaine, la soutenance finale pour Prédictor se tiendra de 15h à 17h avec les discussions.

Jury : Claire Bougeault (Ingénieur drone au Shom), Pierre-Yves Pillain (UBO), Yoann Sola (ENSTA), Luc Jaulin (ENSTA), Simon Rohou (ENSTA), Benoît Zerr (ENSTA), Pierre Bosser (ENSTA), Thibaut Nico (ECA), Joris Tillet (ENSTA), Pierre Benet (ENSTA), Alam CASTILLO HERRERA (ENSTA).

Rapport. Le rapport rendu est donné ci-contre :





Vidéo faite par les étudiants sur le projet Prédictor








Liste des étudiants 3A impliqués dans le projet

Elias Aoun-Durand
Antony Arslanyan
Victor Bares
Juliette Brugier
Alexandre Chojnacki
Evann Clavier
Maria Costa
Sarah Delmas
Maxime Do Rosario
Romain Dussot
Paul-Antoine Grau
Alexandre Houdeville
Olivier Laurendin
Lucie Lefevre
Elodie Noele
Fabrice Poirier
Abbas Ramadan
Louis Valery




Organisation

Architecte. Louis Valery.
L'architecte est là pour assurer la cohérence du groupe. Il vérifie que tout le monde travaille dans le même sens, et de façon coordonnée.

Groupe 1 : Kalman.
Olivier Laurendin
Fabrice Poirier
En supposant que la vérité terrain est celle correspondant au scénario souhaité, on cherche à caractériser l'incertitude que possède le robot sur son état.

Groupe 2 : MOOS.
Antony Arslanyan
Maria Costa
Elodie Noele


Groupe 3 : Particulaire.
Elias Aoun-Durand
Romain Dussot
Lucie Lefevre
Alexandre Houdeville
Une simulation particulaire est programmée en Python, puis en C++ par le groupe 4. Chaque particule correspond à une trajectoire pour le robot. Mais également, chaque particule contient le filtre de Kalman implémentée dans le robot.

Groupe 4 : C++.
Maxime Do Rosario
Evann Clavier
Victor Bares
Juliette Brugier
Les méthodes particulaires demande de simuler des centaines de robots (les particules) en temps réel. Une implémentation dans un langage compilé (ici le C++) est indispensable.

Groupe 5 : Tubex.
Sarah Delmas
L'idée est de faire de simuler le robot avec son Kalman et d'intervalliser la chaîne.

Groupe 6 : Focalisation.
Alexandre Chojnacki
Abbas Ramadan
On cherchera à utiliser le concept d'ensemble positivement invariant afin de démontrer qu'une mission réussira à coup sûr. Le régulateur est vu comme une lentille qui vient focaliser le champ de vecteur correspondant à la dynamique du robot.

Groupe 7 : AUV.
Paul-Antoine Grau
Le robot doit effectué la mission validée par les autres méthodes numériques.


Mini-cours



NOM Prénom Date Sujet Présentation
Paul-Antoine Grau 07/12, 15h AUV de Kopadia
Fabrice Poirier 25/02, 8h Navigation polynésienne
Antony Arslanyan 25/02, 14h Capteurs AUV
Sarah Delmas 04/03, 9h Tubex
Romain Dussot 04/03, 14h PyUnity Vibes
Alexandre Chojnacki 04/03, 14h30 Focalisation
Maria Costa 05/03, 8h DVL
Elodie Noele 05/03, 14h Ocean infinity
Louis Valery 05/03, 14h30 Gestion projet
Evann Clavier 11/03, 8h C++
Maxime Do Rosario 11/03, 8h30 Gnuplot et CmakeList
Alexandre Houdeville 11/03, 9h Navigation à l'ancienne
Lucie Lefevre 11/03, 14h Régulateur du Folaga
Juliette Brugier 11/03, 14h30 Méthodes particulaires
Olivier Laurendin 12/03, 14h Modèle d'erreur
Abbas Ramadan 12/03, 14h30 PyInvariant
Elias Aoun-Durand 12/03, 8h Dynamique du Folaga
Victor Bares 12/03, 8h30 Centrales inertielles