KalMOOC
Un MOOC sur le filtre de Kalman
Ouverture de la 6ième édition :
Luc Jaulin, ENSTA-Bretagne, UBO, Lab-STICC
jaulin.kalmooc@gmail.com



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



  1. Introduction
  2. Dates
  3. Rendus
  4. Fichiers
  5. Leçons et vidéos
  6. Liste des diplômés
  7. Autres MOOCs








Introduction à KalMOOC

Ce MOOC est gratuit et correspond aux chapitres 6,7 du livre "la robotique mobile, Luc Jaulin (2015), ISTE editions" qui existe aussi en version anglaise "Mobile Robotics, Luc Jaulin (2015), ISTE editions". Il s'agit d'un cours sur le filtre de Kalman pour débutants, bien que certaines notions en mathématiques soient nécessaires (typiquement le niveau demandé à l'entrée des écoles d'ingénieur). Ce MOOC peut également aider les enseignants qui doivent enseigner le filtre de Kalman et qui souhaitent le faire de façon simple et intuitive, tout en restant rigoureux. Ici, nous ne traitons pas le problème de la commande (chapitres 2,3,4 du même livre) qui est rattaché à un autre MOOC : RobMOOC.

Contexte

Un observateur d'état cherche à reconstruire le vecteur d'état d'un système dynamique à partir de toutes les données récoltées sur le système à travers le temps. Le but de ce cours est de présenter le filtre de Kalman qui permet une telle reconstruction, dans un contexte probabiliste où le système à observer est linéaire et le bruit gaussien. Le filtre de Kalman est utilisé dans de nombreuses applications comme la localisation en robotique mobile qui nous intéressera particulièrement. Pour une approche ensembliste (et non plus probabiliste), nous vous renvoyons vers un autre MOOC : IAMOOC.


Prérequis

Il est nécessaire d'avoir quelques notions en Matlab ou Python et des bases en mathématiques élémentaires (typiquement le niveau d'entrée requis à l'entrée d'école d'ingénieur). Nous éviterons l'utilisation d'outils mathématiques trop élaborés. Matlab ou Python doivent être installés sur votre machine.


Objectif

Après ce cours, vous devriez maîtriser les calculs d'incertitudes à travers les matrices de covariance, comprendre les équations du filtre de Kalman et être capables de l'implémenter sur des cas pratiques.


Diplôme

Pour ceux et celles qui terminent correctement ce MOOC, un diplôme vous sera distribué à la fin de ce cours. Ce document permet à certains étudiants en thèse d'obtenir des crédits ECTS (European Credit Transfert System) que demandent les écoles doctorales.
Pour avoir votre diplôme, il vous faut un minimum de 30 points (sur les 41 points atteignables), ce qui vous permet de ne pas faire tous les exercices.
Un exemple type de diplôme :


Inscription

Pour s'inscrire, il faut aller sur
L'inscription n'est pas obligatoire pour suivre les vidéos, mais est indispensable pour avoir le diplôme.


Vidéo de correction

Une vidéo de correction pour les exercices vous est donnée lors de l'ouverture de la leçon, mais pas le programme informatique car c'est à vous de le faire. Cette vidéo vous donne une méthode possible de résolution, mais vous n'êtes pas obligés de la suivre. Parfois, on ne vous demande pas rendre un programme Matlab ou Python, mais une correction sur papier. Dans ce cas, postez un scan (pris par votre téléphone, par exemple) ou un fichier en pdf.


Structure du cours

Ce cours se réparti en 8 leçons (numérotées A,B,C,D,E,F,G,H). Chaque leçon est constituée d'une heure de cours et de deux heures de travaux pratiques sur machine.






Dates

Ce MOOC dure 8 semaines. Les dates officielles de début de chaque leçon sont les suivantes.
, 12h, Leçon A
, 12h, Leçon B
, 12h, Leçon C
, 12h, Leçon D
, 12h, Leçon E
, 12h, Leçon F
, 12h, Leçon G
, 12h, Leçon H
, 12h, Fermeture
, 12h, Remise des diplômes.









Rendus

Pour chaque leçon, vous devez rendre, pour chaque exercice, le programme Python, Matlab (ou autre) associé.
Vos fichiers devront être envoyés par email à jaulin.kalmooc@gmail.com
avant le jeudi (12h) de la semaine qui suit.
Pour les exercices, qui demandent l'exécution d'un programme, il faut m'envoyer un lien avec une capture vidéo
commentée de votre programme qui s'exécute. Ces vidéos doivent durer moins de 1 minute, si possible.
Une possibilité est d'ouvrir une chaîne youtube à votre nom et de m'envoyer le lien correspondant à la vidéo, dans le mail.
Pour la capture vidéo, vous pouvez utiliser 'SimpleScreenRecorder' sous Linux ou bien CamStudio sous Windows.





Vous pouvez utiliser Python (ou autre) online

Par exemple, aller sur le projet
Run pour tester que le programme tourne bien
Fork (pour cela il vous faudra créer un compte).
Modifier le programme comme il vous convient.
Pour poster votre programme, il vous suffit d'envoyez le lien.
Pour le correcteur, il est très facile de tester que votre programme tourne bien.






Fichiers

Enoncés avec le cours.
Programmes de démarrage pour les utilisateurs de Matlab.
Programmes de démarrage pour les utilisateurs de Python.
Librairie à utiliser par les utilisateurs de Python roblib.py.
Un petit help sur la librairie Python.






Leçons et Vidéos



Leçon A. Méthode des moindres-carrés

Ouverture: , 12h (ouvert dès maintenant pour permettre une adaptation)
Résumé: Dans cette leçon A, nous donnons les objectifs de l'identification et de l'estimation de paramètres. Après avoir présenté les formes quadratiques et leur minimisation lorsque ces dernières sont convexes, nous introduisons la méthode des moindres-carrés dans le cas linéaire.



Exercice 1. Représentation d'une fonction quadratique (1 point)

Exercice 2. Identification d'une parabole (1 point)
Partez du fichier ex_parab.m dans kalmooc.zip ou bien du fichier parab.py dans kalmoocpy.zip.

Exercice 3. Identification des paramètres d'un moteur à courant continu (1 point)


Exercice 4. Estimation d'une fonction de transfert (1 point)
Partez du fichier ex_transfer.m ou du fichier transfer.py.




Leçon B. Estimation de paramètres

Ouverture: , 12h
Résumé: La leçon B, propose d'étendre l'estimation au sens des moindres carrés au cas non-linéaire. Pour cela, nous introduisons les principes de l'optimisation globale dans le cas où le critère à minimiser est non-convexe. Nous donnons ensuite un algorithme non-déterministe pour l'optimisation globale.




Exercice 5. Méthode de Monté-Carlo (1 point)
Partez du fichier ex_montecarlo.m ou du fichier montecarlo.py.

Exercice 6. Localisation par recuit simulé (2 points)
Partez du fichier ex_anneal.m ou du fichier anneal.py.




Leçon C. Matrices de covariance

Ouverture: , 12h
Résumé: La leçon C, introduit la notion de matrice de covariance et montre comment cette dernière peut être utilisée pour caractériser l'incertitude sur un vecteur aléatoire. Nous montrons également comment manipuler les matrices de covariance dans le but de propager les incertitudes à travers une application linéaire.




Le fichier Python associé à cette leçon peut être trouvé sous le nom de 7.00_lesson.py :

Exercice 7. Distribution gaussienne (1 point)
Partez des fichiers ex_gauss.m ou gauss.py


Exercice 8. Ellipses de confiance (1 point)
Partez des fichiers ex_sixcov.m ou sixcov.py.


Exercice 9. Ellipsoïde de confiance : prédiction (1 point)
Partez des fichiers ex_predicov.m ou predicov.py.


Exercice 10. Bruit brownien (1 point)
Partez des fichiers ex_brownian.m ou brownian.py.





Leçon D. Estimateurs linéaires orthogonaux

Ouverture: , 12h
Résumé: La leçon D, s'intéresse aux vecteurs aléatoires gaussiens et montre comment leur densité de probabilité se caractérise totalement par une espérance mathématique et une matrice de covariance. Nous donnons également les bases de l'estimation linéaire dans un contexte linéaire. Nous donnons les équations d'un estimateur linéaire centré orthogonal qui forment une des briques essentielles du filtre de Kalman.




Exercice 11. Ellipsoïde de confiance : correcteur (1 point)
Partez des fichiers ex_corrcov.m ou corrcov.py


Exercice 12. Propagation de matrices de covariance (1 point)
Il n' a pas de programme à rendre juste un scan (ou photo) de votre feuille de papier ou un pdf.


Exercice 13. Estimateur linéaire pour la résolution de trois équations (1 point)


Exercice 14. Estimateur linéaire pour l'estimation des paramètres d'un moteur électrique (1 point)

Exercice 15. Trochoïde (1 point)
Partez des fichiers ex_trochoide.m ou trochoide.py





Leçon E. Filtre de Kalman

Ouverture: , 12h
Résumé: Dans la leçon E, nous montrerons comment dans un cadre dynamique, où un système décrit par des équations d'état évolue dans le temps, un estimateur linéaire récursif peut être obtenu. Il s'agit du filtre de Kalman qui se décompose en deux étapes : la prédiction et la correction. En toute rigueur, ce filtre ne peut s'utiliser que pour des systèmes linéaires et dans un contexte de bruits additifs et gaussiens.




Exercice 16. Filtre de Kalman pour la résolution de trois équations (1 point)
Partez des fichiers ex_kalm3eq.m ou kalm3eq.py


Exercice 17. Filtre de Kalman sur trois pas (1 point)
Partez des fichiers ex_kalm3steps.m ou kalm3steps.py


Exercice 18. Estimation des paramètres d'un moteur électrique (1 point)
Partez des fichiers ex_kalmotor.m ou kalmotor.py


Exercice 19. Estimation de la température (1 point)
Il n' a pas de programme à rendre juste un scan (ou photo) de votre feuille de papier ou un pdf.





Leçon F. Localisation

Ouverture: , 12h
Résumé: La leçon F s'intéresse à des problèmes plus réalistes afin de mieux comprendre comment s'utilise le filtre de Kalman. Nous avons choisi la localisation car c'est dans ce contexte que le filtre de Kalman a été initialement utilisé (mission Apollo) mais aussi qu'il a été le plus appliqué. Nous allons donc nous placer dans le cas d'un robot mobile dont le mouvement est décrit par des équations d'état à temps continu évoluant dans un environnement composé d'amers ponctuels dont les positions sont connues. Lorsque le robot perçoit ces amers, il en mesure des angles (cas de la localisation goniométrique) ou des distances (trilatération). Afin d'utiliser un filtre de Kalman (qui, rappelons le, considère des systèmes linéaires à temps discrets), nous montrons comment transformer l'évolution du robot en une évolution linéaire et comment effectuer la discrétisation temporelle du système, en prenant en compte les bruits.




Exercice 20. Localisation à partir de la mesure des distances aux murs (1 point)
Partez des fichiers ex_distwall.m ou distwall.py


Exercice 21. Marcheur aveugle (1 point)
Partez des fichiers ex_blindwalk.m ou blindwalk.py


Exercice 22. Localisation à l'estime (1 point)
Partez des fichiers ex_deadreckoning.m ou deadreckoning.py


Exercice 23. Localisation goniométrique (2 points)
Partez des fichiers ex_gonio.m ou gonio.py


Exercice 24. Localization using a Lidar (1 points)
Partez du fichier lidar.py





Leçon G. Observateurs d'état

Ouverture: , 12h
Résumé: La leçon G présente les observateurs d'état dans un contexte général et explique en quoi le filtre de Kalman peut être interprété comme un tel observateur. Nous introduisons trois observateurs proches du filtre de Kalman.
(1) Le filtre de Kalman-Bucy qui est une version différentielle du filtre Kalman (qui lui est discret).
(2) Le filtre de Kalman étendu ou EKF (Extended Kalman Filter) qui s'applique lorsque le système à observer est non-linéaire. Le principe est de linéariser afin se pouvoir utiliser le filtre de Kalman.
(3) L'observateur de Luenberger qui possède une différence essentielle avec le filtre de Kalman : il ne demande aucune hypothèse probabiliste. L'incertitude (ou plutôt son influence) y est exprimée à l'aide de constantes de temps.




Exercice 25. Estimation d'état et commande d'un pendule inversé (2 points)
Partez des fichiers ex_invpend.m ou invpend.py


Exercice 26. Suivi d'un bateau par deux radars (1 point)
Partez des fichiers ex_radar.m ou radar.py


Exercice 27. Localisation d'un robot dans une piscine (1 point)
Pas de vidéo de correction pour cet exercice


Exercice 28. Instantaneous localization (1 point)





Leçon H. Filtrage bayésien

Ouverture: , 12h
Résumé: La leçon H généralise le filtrage de Kalman dans un contexte non-linéaire et non-gaussien. On obtient alors un filtre bayésien qui cherche à manipuler directement les densité de probabilité et non pas uniquement les moyennes et les covariances. En montant d'un niveau d'abstraction, le filtre bayésien permet d'avoir une meilleure compréhension du filtre de Kalman et d'étendre ses capacités. Afin d'illustrer cela, nous nous intéresserons au lissage qui permet d'améliorer les précisions obtenues pour l'estimation d'état dans le cas où les données futures sont disponibles. Enfin, nous proposerons à une application ambitieuse du filtre de Kalman qui est le SLAM (Simultaneous Localization And Mapping). Dans un tel contexte, un robot doit se déplacer dans un environnement inconnu, tout en se localisant dans cet environnement à travers une carte qu'il est en train de construire.




Exercice 29. Densité conditionnelle et densité marginale (1 point)
Il n'y a pas de programme à rendre juste un scan (ou photo) de votre feuille de papier ou un pdf.


Exercice 30. Prévision météo (1 point)
Il n'y a pas de programme à rendre juste un scan (ou photo) de votre feuille de papier ou un pdf.


Exercice 31. Robot porte (1 point)
Il n'y a pas de programme à rendre juste un scan (ou photo) de votre feuille de papier ou un pdf.


Exercice 32. Le robot dans la forêt (1 point)
Il n'y a pas de programme à rendre juste un scan (ou photo) de votre feuille de papier ou un pdf.


Exercice 33. Bayes rule with Kalman (1 point)
Il n'y a pas de programme à rendre juste un scan (ou photo) de votre feuille de papier ou un pdf.


Exercice 34. Dérivation des équations du lisseur de Kalman (1 point)
Il n'y a pas de programme à rendre juste un scan (ou photo) de votre feuille de papier ou un pdf.


Exercice 35. SLAM dans un contexte de robotique sous-marine (3 points)
Partez des fichiers ex_slam.m ou slam.py. qui utilise le fichier de données slam_data.txt.


Exercice 36. A priori SLAM (1 points)








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

Ayman Al Khazraji
Frédéric Launay
Julien Brisset
Salima Borsali
Hassan Bouchiba
Yassine Boukal
Jean-Louis Cougnon
Jean-Alexis Delamer
Gaël Ecorchard
Ibrahima Faye
Aïda Feddaoui
Maxime Ferrera
Salameh Jack
François Lamoline
Dory Merhy
Alouane Mohamed Amine
Julien Moreau
Lucile Rossi
Jonathan Savin
Jean-Baptiste Sorba
Pauline Thémans
Philippe Chapuis
Mahmoud Abboud
Raphael Abellan-Romita
Maha Abouzaid
Mahab Al Johani
Abdullah Al Mahmoud
Rakan Ali
Simon Allenic
Robin Baudino
Yacine Benhnini
Maxime Berolo
Mohammed Bin salamah
William Blachère
Arifa Bou Orm
François C.
Matthieu Chailloux
Daniel Chaya
Romain Da Canal
Julien Damers
Mouhamadou Diallo
Justin Dourlens
Mohamed El Alami
Mariam El Helou
Majed El Kadri
Nancy El Samra
Emilien Fournier
Gabriel GODEAU
Yoann Guguen
Morgan Gy
Louisa Henry
Alae Eddine Hmamouche
Hiba Hnaini
Fabrice Lallement
Perrine Lohues
Mathieu Mayssal
Mohamad Mezher
Philipe Miranda de Moura
Alexis Murail
Yasmine Najar
Pascal Nguyen
Mohamed Amine Ouadrhiri
Mohamed Outahar
Xavier Quelard
Clément Rolinat
Thomas Rougeau
Emilien Tankéré
Joris Tillet
Sophie Tuton
Rémi Valenton
Nicolas Veylon
Mael Vigouroux
Jean Walter
Adam Wild
Thomas Xavier Caturra
Jacques Kadima





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

Ghina Abdallah
Jasser Al Assaf
Mohanad Al Hamdan
Sultan Al Frawy
Moayad Al Zaidi
Elias Aoun Durand
Antony Arslanyan
Denis Bacchus
Marion Badel
Yvan-Bernard Baki
Victor Bares
Paul Bouquet
Juliette Brugier
Jad Chebbo
Abdelmounim Chentouf
Evann Clavier
Alexandre Corazza
Maria Luiza Costa Vianna
Baptiste Cros
Alexandre Degurse
Sarah Delmas
Téva Demangeot
Amadou-Sall Dia
Maxime Do Rosario
Igor Dos Santos Novais
Romain Dussot
Aoun Eldandachli
Julien Feutrie
Pierre Filiol
Jérôme Gambini
Joseline-Maurelle Gohep Watso Atso
Paul-Antoine Grau
Gregor Hadjidakis
Quentin Hidderley
Alexandre Houdeville
Ibrahim Krayem
Olivier Laurendin
Lucie Lefevre
Michel Limousin
Mathieu Logario
Jalal Matar
Doja Mchaymech
Abdulaziz Mushayt
Mahmoud Naamani
Elodie Noëlé
Fabrice Poirier
Abbas Ramadan
Aurel-Cedric Songo Sonkeng
Julie Terseur
Jordane Tsafack
Louis Valéry
Anne-Laure Wozniak
Charles Coquet
Thamer Al Doughaish
Julien Dupeyroux
Baptiste Gradoussoff
Olivier Forti
Mohamed Fnadi
Meddour Ghozlane
Hafsa Bahri
Lucas Joseph
Thameur Kidar
Abdenour Kifouche
Ghani Kissoum
Philippe Lambert
Laëtitia Li
Nacim Meslem
Mathieu Naslin
Bensafi Noureddine
Alice Paschal
David Pérez Morales
Benoît Pesenti
Renaud Poncelet
Amadou Sagna
Amriche Taous
Oussama Yaakoubi
Charlie Goutorbe
Pierre Benet
Guilhem Dubarry
Matthieu Faure
Julien Khalile
Khaled Benkhoud
Farouq Benchallal






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

Caine Abdallah
Mehdi Abdelli
Philibert Adam
Abdulaziz Albrikeit
Mohammed Al Sakait
Osama Al Shuaibi
Abdulaziz Al Sudais
Alexandre Argento
Ameni Azzabi
Alexis Baulu
Kevin Bedin
Gwendal Blot
Olivier Bordron
Matthieu Bouveron
Quentin Cardinal
Colin Cros
Jérémy Cornille
Cyril Cotsaftis
Alexandre Courjaud
Riwan Cuinat
Hugo Daguerre
Georges Daher
Coraline Delblond
Marine Derouet
Quentin Ducasse
Audrey Ducruet
Rami Duyé
Ibrahim El Khatib
Emmanuel Falck
Clément Fauchereau
Manuella Feunkeu-Mfupa
Romane Fléchard
Nathan Fourniol
Matthieu Furet
Damien Goaper
Jonathan Gomis
Nicolas Hanachowicz
Christian Harb
Adrien Jeanvoine
Corentin Jegat
Jean-Luc Kersulec
Arnaud Klipfel
Yao Paul Williams Kouassi
Erwann Landais
Laëtitia Lavollée
Guillaume Le Boucher
Aurélien Lebrun
Maximilian Lesellier
Vincent Lheureux
Pierre Lledo
Luc Longin
Anouar Mahla
Teddy Martin
Pierre Mathieu
Adrien Michelet-Gignoux
Hmidi Mohamed Hedi
Amara Mohand Oussalem
Jean-Baptiste Moisinac
Etienne Monnier
Vincent Mouraux
Vincent Mussot
Eloise Noziere
Nafissath Odedele
Fabien Pons
Axel Porlan
Simon Queyrut
Quentin Rey
Ali Saad
Caine Silva
Mahmoud Souayfan
Henri Stoven
Georges Tanios
Thibaud Toullier
Ange Valli
Hamdi Walid
Nelson Wouogang Nzesseu
Mohammad Yassine
David Pallier
Driss Tayebi
Christian Koumlah Mbey






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

Mohamed Adjel
Kévin Affraix
Omar Mounir Alaoui
Maxime Alos
Agathe Archet
Margot Bacquet
Younoussa Moussa Balde
Colin Baumgard
Ahmed Benabed
Lucia Bergantin
Jules Berhault
Etienne Besnier
Nicolas Bovo
Mohammed Brakna
Quentin Brateau
Ulrich Camille
Johan Carlier
Jose de Jesus Castillo Zamora
Pierre-Louis Danieau
Déreck DE Vassoigne
Mamadou Dembele
Ludovic Diguet
Guillaume Dupré
Alexandre Evain
Alexandre Fernandes
Manon Fourniol
Celia Freson
Bastien Gallinaro
Eric Godard
Xavier Guery
Kevin Guilmineau
Ahmad Hably
Hamid Hacene
Maha Halimi
Léo Hannicque
Guillaume Hardouin
Ashley Hill
Florian Honisch
Mansour Kande
Mourtaza Kassamaly
Mata Khalili
Tiphaine Kleiber
Jacques Lavaivre
Paul-Antoine Le Tolguenec
Corentin Lemoine
Aurelie Lepoil
Antoine Lima
Antonin Lizé
Jesus Mago
Jules Matz
Emeric Maus
Léa Michel
Badr Moutalib
Luc Petiet
Josua Pillet
Paul Pineau
Julien Piranda
Alexandre Ponzio
Gwendal Priser
Bastien Ricour
Emeric di Ruggiero Vauquoy
Robin Sanchez
Nathan Sanchiz
Nicolas Sanson
Louis Simon
Nicolas Solarczyk
Florian Tanguy
Bertrand Turck
Benoit Vigne
Quentin Vintras
Milan Vuddamalay
Wael Zouaoui
Aurelio Zoumenou
Yann Musellec






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

Alexandre Nisse
Adnane Amrous
Estelle Arricau
Alex Belarbi
Louis Bessiene
Antonin Bétaille
Adrien Bourgeade
Mathilde Burgart
Hugues Cazanave
Cheyenne Chezalviel
Mohammed Chghaf
Marien Couvertier
Florian De Bruycker
Hamza El Jebbari
Laila EL YOUNSI
Enzo Essono Aubame
Sébastien Faes
Hanyuan FU
Timothée Guy
Alexis Hou
Bernardo Hummes Flores
Emilian Huygens
Jordan Mabboux
Thibault Jadoul
Antoine Jeanson
Rami Jradi
Jean-Vincent Klein
Katell Lagattu
Lala Meryam Gaouzi
Blandine Lebegue
Maxime Legeay
Paul Louveau
Xinyue Lu
Flavien Monchiet
Huiseok Moon
Téo Moucheboeuf
Olivier Neyret
Yves Jordan Njamen
Obil Dieu Béni Madoungu
Nicolas Odorico
Attou Otmane
Sebastian Otto
Abdel Ouedraogo
Hugo Piquard
Mathieu Randon
Eva Rangayen
Alexandre Raulet
Bastien Rault
Simon Roland
Samuel Sarrazin
Fawzi Srairi
Stéphane Ngnepiepaye Wembe
Julien Taran
Zeya Wang
Witt Isaac-Andreï
Jie Zhang
Matthieu Zins
Hugo Sabatier
Florian Gaurier
Martin Gounabou
Samuel Prouten
Yohann Gourret






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

Nicolas Grandin
Maelic Louart
Guillaume Fasse
Urbain Anastase
Nemer Issa
Abdoullah Ndoye
Ali Mestrah
Florian Pouthier
Ela Mvolo Evina Alegue
Aurélien Merci
Lorien Revueltas Crooks
Luc Meunier
Thibaud Le du
Imane Argui
Simon Godon
Thomas Villard
Marie-Eugénie Després
Pierre Notin
Lucas Gouache
Joaquim d’Almeida
Wendpagnangda Bryan Jaouad Précieux Konkobo
David Boroch
Zakaria Belbatibimar
Thomas Cadart
Loïck Degorre
William Pean
Lucas Thiolas
Ulises Hernandez Calzadillas
Benoît Vigne
Silvain Louis
Elouan Saliou
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
Amath-waly Ndiaye
Morgan Louédec