Introduction à la robotique mobile
GLO-4001/GLO-7021
Automne 2016


Mis à jour le 12 décembre 2016.

Description sommaire

Ce cours offre un aperçu des principes généraux de la robotique mobile ainsi qu'un tour d'horizon des principaux défis. La pierre angulaire du cours sera le traitement de l'information captée en tenant compte de l'incertitude, afin d'avoir une abstraction du robot et de son environnement adaptée à la tâche à effectuer. Les composantes de bases utilisés en robotique mobile, tels que les actionneurs et les capteurs (sonar, laser, caméras, et centrale inertielle), seront présentées afin de comprendre d'où provient cette incertitude, et qu'est-ce qui est possible de faire avec ces composantes. La partie algorithmique du cours traitera de la locomotion, la localisation, la navigation, l'exploration, la cartographie de l'environnement et l'estimation d'état par des filtres (à particules, Kalman, Kalman étendu). Nous aborderons aussi la problématique du SLAM (Simultaneous Localization and Mapping) et sa composante essentielle de fermeture de boucles. Nous mettrons l'accent sur la robustesse de ces algorithmes, c'est-à-dire leur capacité de fonctionner malgré la présence d'erreurs aberrantes.

L'essentiel de la programmation du cours se fera avec matlab ou Python, afin de rendre le cours accessible à tous les programmes d'études. Dans les plate-formes robotiques utilisées dans le cours, toute l'information des capteurs sera accessible à partir de Python, avec des timestamps (données horodatées). Vous ne devriez donc pas consacrer trop de temps à l'intégration du système, pour plutôt faire de la fusion d'information entre capteurs et dans le temps.

Plus les plus courageux, vous pouvez aussi programmer les robots directement avec ROS, en utilisant le langage C++ ou Python.

Depuis 2012, nous utilisons de vrais robots mobiles et capteurs! Cette année (2016), nous avons de nouvelles plate-formes (Kobuki). Pour les curieux, la documentation du robot par port USB est disponible ici. Ceci vous donne une idée des capacités de cette plateforme.


Ce robot est équipée des capteurs suivants ou disponible à l'occasion (*):
Capteur
Modèle
Distance
(par infrarouge)
GP2Y0A21YKet GP2Y0A02YK0F
Gyroscope
trois axes
Interne au robot
Odométrie
Interne au robot
11.7 impulsions/mm
Caméra 2D+3D
Microsoft Kinect v1 pour XBOX
4 convertisseurs
analogue-numérique
12 bit, 0-3.3 V, 50 Hz
Interne au robot
Télémètre laser*
URG-04LX-UG01

Le matériel vu en classe servira à l’utilisation et l'interprétation des signaux de ces capteurs.  En particulier, les capteurs infrarouges vous permettrons de mieux assimiler les concepts de bruit, de fonction de capteur, et de linéarisation. Et comme ils retournent parfois des données aberrantes, ils seront un excellent cas pour justifier l'utilisation de méthodes robustes!

Travaux

Pour les étudiants de 2ème cycle, les travaux doivent être rédigé obligatoirement avec le traitement de texte LaTex. Les utilisateurs des plate-formes Windows pourront utiliser le gratuiciel miktek, disponible ici. Les utilisateurs de Mac OS X peuvent se référer ici. Il existe aussi des sites webs pour l'édition en ligne (incluant l'aspect collaboratif), tels qu'Overleaf ou ShareLatex.

Matlab et Miktex sont aussi disponibles au laboratoire d'informatique.

Description
Fichiers
Travail Pratique 1 (Équipe 1 ou 2) TP1.zip
Travail Pratique 2 (Équipe 1 ou 2)
GLO-4001  ou GLO-7021
Remise du projet
Instruction pour le rapport et pour l'évaluation ici.
Template latex pour GLO-7021 : rapportglo7021.zip


Horaire des leçons
Note: cet horaire est fourni à titre strictement indicatif, car il date de 2015.

2 Séances de laboratoire du vendredi:
#1 8h30 à 10h20  au PLT-xxxx
#2 10h30 à 12h20 au PLT-xxxx

Le code des laboratoires est disponible ici : https://github.com/davidlandry93/glo4001.



Sem
#
Date
Sujets

______________________________  
Acétates
 
Lectures suggérées
(Comp. Princ. of
Mobile Robotics)
Lectures suggérées
(Autonomous Mobile Robots)
_________________________________
Code matlab
Laboratoire
du vendredi
____________________________
1
6 Sep
Résumé du cours
• Historique
• Révision très rapide des concepts mathématiques tels que trigonométrie, algèbre linéaire


01-PlanCoursHistoMath.pdf
Chapitre 1 du manuel


Chapitre 1



Pas de laboratoire
2
13 Sep
• Capteurs : tactile, sonar, accéléromètre, gyroscopes, centrales inertielles.
• Nappes lasers (LiDAR) 2D, 3D

02-Capteurs.pdf

RandomWalk.m
Chapitre 4 du manuel,
jusqu'à la section 4.9
Chapitre 4: p.101 à 137


Installation des logiciels sur les laptops.
Connexion et utilisation de la plate-forme robotique.
3
20 Sep
• Coordonnées homogènes
• Capteurs vision
• Caméra temps-de-vol
• Localisation par trilatération
• Modèle probabiliste des capteurs
• Modèle sténopé de la caméra



03-VisionA.pdf

Chapitre 5 : p.123 à 128, section 5.5.5.
Caméra: p.142 à 159
Stéréo: 169 à 179




Labo 1

Calibration et utilisation du capteur infrarouge.

4
27 Sep
• Vision stéréo
• Problème de correspondance
• Capteur visuels actifs : Microsoft Kinect 1 et 2, pmdtech.
• Notion de features comme point de repère.
• Détecteurs de coin Harris, FAST
• Feature visuels :
    - SIFT
    - SURF
    - BRIEF (binaire)
    - ORB


03-VisionB.pdf
VideoLocalisation

Même vidéo, mais sur youtube.

Pour ceux qui veulent un rafraîchissement sur
les distributions normales

Article sur SIFT

RANSAC

Kinect: p. 137-139
Odométrie visuelle: p 187-188
Features visuels: p. 209-234

        HarrisExample.m
        Shakey.jpg



Labo 2

Calibration et utilisation du gyroscope à taux. Création d'une carte 2D.


5
4 Oct

• Algorithme RANSAC
• Odométrie visuelle
• Transformations homogènes
• Probabilités




03-VisionC.pdf
04.A.StatistiquesProbaBayes.pdf




RANSAC: p. 252-255.


Labo 3

Laboratoire sur la
caméra RGB.


6
11 Oct

• Modèles probabilistes des capteurs
• Règle de Bayes
• Locomotion à roues
• Modèle probabiliste des déplacements

04.B.StatistiquesProbaBayes.pdf

05-LocomotionA.pdf 

Optionnel (pour mieux comprendre la convolution en probabilité) :
Chapter7_SumOfProbabilities.pdf

Appendice A du manuel


Chapitre 2 : tout sauf section 2.1
Chapitre 3 : lecture p.31,
Section 3.1.5 et 3.1.6

Probabilités : p.296-306
Véhicules à roue Section 2.3
Chapitre 3: 57-63,

ExempleDiffDriveSansBruit.m
Labo 4
Modèle de déplacement
du robot


7
18 Oct
• Navigation à l'aveugle
• Propagation des erreurs
• Contenu de l'examen





05-NavigationAveugle.pdf



(à compléter)

Chapitre 8 : du début jusqu’à la
section 8.2 (8.2 non-incluse).

(à compléter)



8
25 Oct
Examen mi-session

VND-2289A (60 places) et VDN 2803 (3 places)

(les numéros de pages sont TOUJOURS inclusifs).

Contenu à venir

Exemples de questions tirées de l'examen 2010 (un peu plus facile que 2011)

Solutionnaire

2ème série d'exercices et ses solutions. Quelques détails sur solution Prelude

Exercice pour RANSAC

Exercise de transformation

Guide d'étude :
GuideDetudeMiSession2016.pdf

Version préliminaire de la feuille
d'aide incluse dans l'examen



9
1 Nov
Semaine de lecture




Pas de laboratoire
10
8 Nov

• Retour sur l'examen
• Fusion de capteurs
• Estimation d'état
• Filtrage récursif



07-EstimationEtat-A.pdf
07-EstimationEtat-A.2.pdf
Section 4.9 : p.102-114

kalman_intro.pdf

Quelques exemples de filtres Kalman expliqués, avec le code dans ExemplesKalmanDoc.zip.
Types de localisation: p. 306
Localisation probabiliste: p307-342


MoyenneRecursive.m
FiltreKalman.m
FiltreKalmanGyroCompas.m
FiltreKalmanNonLineaire.m

Labo 5

Utilisation de la Kinect et application pratique de RANSAC



11
15 Nov

• Filtre Kalman
• Jacobienne
• Filtre Kalman Étendu (EKF)


07-EstimationEtat-B.pdf

FiltreKalmanNonLinPseudoGPS.m


Filtre de Kalman
protocole
codeKalman.zip

12
22 Nov
• Filtre Kalman non-parfumé (UKF)
• Filtres à particules

08-FiltreParticuleICP.pdf





Télémètre laser + ICP


13
29 Nov
• Méthode Iterative Closest Point (ICP)
• Cartographie SLAM :
    - Descrption et taxonomie
• Problème de loop closure
• EKF SLAM
• FastSLAM 1.0
• Graph-SLAM
Visual SLAM (FAB-MAP)


10-SLAM.pdf


Section SLAM du Handbook of robotics, pages 1153-1176 , disponible à partir des ordinateurs de l'Université Laval via
ce lien.
ou celui-ci
 
SLAM course de Cyrill Stachniss
EKF-SLAM

Vidéo d'une demo EKF matlab
Section 8-8.1 (p. 240-249)
Section 8.3 (p. 250-260)
Section 9.2.2 (p.283-287)




SLAM : p. 348-356, 359-365.
Reconnaissance de lieu: 234-242
EKFSlam.2.zip

FastSLAM.zip

Présentations orales
2ème cycle
8h30-12h30, PLT-2903
  8h30 : J. Landuré
  8h50 : A. Ali-Bey
  9h10 : P. Babin
  9h30 : J. Bouchard
  9h50 : L. Coquio
10h10 : V. Dormann
10h30 : F. Lamine
10h50 : P. Lebel
11h10 : C. Leverrier
11h30 : Y. Ouellet
11h50 : V. Poiré
12h10 : V. Voillot
14
6 Dec
• Grille d'occupation par SONAR
• Représentation de l'espace:
    - cartes métriques
    - cartes topologiques
    - cartes topométriques (hybride)
• Espace de configuration
• Graphes de visibilité
• Graphe de Voronoi
• Planification :
    - champs de potentiels
    - RRT
    - Algorithmes Bug0 et Bug1




Chapitre 6 du manuel
Chapitre 9, p. 276-282
Représentation carte: p. 284-297.
Split and merge: p.249-250
OccupancyGrid.zip
CarteMonde.zip




Pas de labo
15 13
Dec
Examen final
Vandry VND-1289A
GuideDetudeFinal2016.pdf
ExemplesExamenFinal.pdf
Solutionnaire partiel
Deuxième partie du solutionnaire.
Feuille d'aide (cheat sheet)





Anciens laboratoires
  1. Drivers pour les lasers Hokuyo URG-04LX-UG01 sur Windows
  2. Drivers Windows pour le convertisseur analogue/numérique disponible ici
  3. Le logiciel de capture de données WinDaq est ici. et ses manuel d’instruction. Après installation, il sera dans le répertoire C:\Dataq. Double clique sur HardwareManager.exe pour le démarrer. Faire right/left click pour zoomer sur la partie gauche d'un channel.

Code pour marqueurs fiduciaires

Ces bouts de code sont fournis sans grand support de ma part. Ils vont vous permettre d'extraire la position de marqueurs fiduciaires, tel qu'illustré ici :


Ce code est fourni "as is". Si vous pouvez l'améliorer, n'hésitez pas! Il est tiré en parti du site http://www.cs.ubc.ca/nest/imager/tr/2010/Atcheson_VMV2010_CALTag/.


Travaux et projets

Du nouveau pour 2012! Cette année, j'introduis la formule de projet! L'idée sera que les 2 premiers TP serviront à vous familiariser avec les mathématiques nécessaires et l'équipement robotique. Par la suite, en équipe et avec l'équipement disponible si désiré, vous feriez un mini-projet. Des exemples :

Liens utiles



Livre de référence

Computational Principles of Mobile Robotics
2nd edition, par Gregory Dudek et Michael Jenkin.
Introduction to Autonomous Mobile Robots, 2nd edition, par Roland Siegwart, Illah R. Nourbakhsh et Davide Scaramuzza. MIT Press.

Conférences et journaux en robotique
Pour les curieux, ou ceux en quête d'inspiration pour des idées de projets!
Conférences
Robotics: Science and Systems (RSS)
IEEE International Conference on Robotics and Automation (ICRA)
IEEE International Conference on Intelligent Robots and Systems (IROS)
Conference on Computer Robot and Vision (CRV)

Journaux
IEEE Transactions on Robotics
Autonomous Robots
International Journal of Robotics Research
Journal of Field Robotics
IEEE Robotics and Automation Magazine
Robotics and Autonomous Systems