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


Mis à jour le 3 décembre 2019.

Version 2017 du cours

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 capteurs de bases utilisés en robotique mobile (sonar, LiDAR, caméra, et centrale inertielle) seront présentés afin de comprendre d'où provient cette incertitude. La partie algorithmique du cours traitera de la locomotion, la localisation, la navigation, l'exploration et l'estimation d'état par des filtres (à particules, Kalman, Kalman étendu, Kalman non-parfumé). 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). L'objectif n'est donc pas d'intégrer le système, mais 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.

Nous utilisons les 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)
GP2Y0A21YK et 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.

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)
TP2.zip
(Modifiée le 28 Nov)
Remise du projet
Instruction pour le rapport et pour l'évaluation ici.
Template latex pour GLO-7021 : rapportglo7021.zip


Horaire des leçons

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

Le code des laboratoires est disponible ici : https://github.com/norlab-ulaval/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
3 Sep
Résumé du cours
• Historique

01-PlanCoursHistoMath.pdf
Chapitre 1 du manuel


Chapitre 1


Pas de laboratoire
2
10 Sep
• Révision très rapide des concepts mathématiques tels que trigonométrie, algèbre linéaire
• Capteurs : tactile, sonar, nappes lasers (LiDAR) 2D, 3D

01-Math.pdf
02-Capteurs.pdf

Cahier d'exercices
Son solutionnaire
ellipse.m
plotEllipse.py


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



Installation des logiciels
sur les laptops.
Instruction d'installation

Connexion et utilisation de la plate-forme robotique.
Introduction

3
17 Sep
• Capteurs : accéléromètre, gyroscopes, centrales inertielles
• Coordonnées homogènes
• Capteurs vision
• Modèle sténopé de la caméra
• Localisation par trilatération



03-VisionI.pdf

RandomWalk.m



Chapitre 5 : p.123 à 128, section 5.5.5.

VideoLocalisation
Même vidéo, mais sur youtube.
Caméra: p.142 à 159




Installation d'une machine virtuelle Linux (pour ceux qui n'ont que Windows)

Calibration et utilisation du capteur infrarouge.
Laboratoire 1


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





03-VisionII.pdf

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

Article sur SIFT



Stéréo: 169 à 179
Kinect: p. 137-139
Odométrie visuelle: p 187-188
Features visuels: p. 209-234

        HarrisExample.m
        Shakey.jpg



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

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


03-VisionIII.pdf


RANSAC

RANSAC: p. 252-255.



Laboratoire sur la
caméra RGB.



6
8 Oct
• Probabilités
• Modèles probabilistes des capteurs
• Règle de Bayes
• Locomotion à roues




04.StatistiquesProbaBayes.pdf
05-LocomotionI.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

Modèle de déplacement
du robot

7
15 Oct
• Modèle probabiliste des déplacements
• Navigation à l'aveugle
• Contenu de l'examen




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


(à compléter)

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

(à compléter)



Utilisation de la Kinect et application pratique de RANSAC

8
22 Oct









Examen mi-session






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 :
GuideDetudeMiSession2019.pdf

Feuille d'aide incluse dans l'examen


9
29 Oct
Semaine de lecture




Pas de laboratoire
10 5 Nov
Pas de cours




Pas de laboratoire
11
12
Nov

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


07-EstimationEtat-I.pdf
(Modifiée le 22 Nov)
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



Filtre de Kalman
codeKalman.zip
12
19 Nov
• Linéarisation avec Jacobienne
• Filtre Kalman Étendu (EKF)
• Filtre Kalman non-parfumé (UKF)


07-EstimationEtatII.pdf

FiltreKalmanNonLinPseudoGPS.m




Télémètre laser + ICP
13
26 Nov
• Filtres à particules
• Types de localisation
• Iterative Closest Point (ICP)



08-FiltreParticuleICP.pdf





Présentations orales
2ème cycle
Trois blocs horaires
8h30-10h20
10h30-12h20
12h30-14h20
Horaire des présentations
VCH-00212
Grille d'évaluation


14
3 Déc
• Types de cartes
• Espace de configuration
• Planification :
    - graphes de visibilité
    - champs de potentiels
    - RRT



09-Cartes.pdf

10-Planification.pdf

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


Pas de labo
15
10 Dec
• Cartographie SLAM :
    - Description et taxonomie
• Problème de loop closure
• EKF SLAM
Méthodes dense vs. à features
Visual Place Recognition
Visual SLAM (FAB-MAP)
• FastSLAM 1.0
• Graph-SLAM
• Grille d'occupation par SONAR
• Représentation de l'espace:
    - cartes métriques
    - cartes topologiques
    - cartes topométriques (hybride)

   


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







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
16 à venir
Examen final

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

Voici des exemples de projets possibles pour le cours :

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