Introduction à la robotique mobile
GLO-4001/GLO-7021
Hiver 2022


Mis à jour le 14 décembre 2021.

NOUVEAU : Toutes les leçons sur YouTube

Version 2019 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)
Travail Pratique 2 (Équipe 1 ou 2)

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-3928
  2.   10h30 à 12h20 au PLT-3928

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
10 Jan
Résumé du cours
Mise en contexte
• Historique

Chapitre 1 du manuel Chapitre 1


Pas de laboratoire
2
17 Jan
• 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




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
24 Jan
• 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





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
31 Jan
• 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







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
7 Fév

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




RANSAC

RANSAC: p. 252-255.



Laboratoire sur la
caméra RGB.



6
14 Fév
• Probabilités
• Modèles probabilistes des capteurs
• Règle de Bayes
• Locomotion à roues






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
21 Fév
• Modèle probabiliste des déplacements
• Navigation à l'aveugle
• Contenu de l'examen





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
28 Fév









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

Feuille d'aide incluse dans l'examen


9
7 Mar
Semaine de lecture




Pas de laboratoire
11
14
Mar

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



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
21 Mar
• Linéarisation avec Jacobienne
• Filtre Kalman Étendu (EKF)
• Filtre Kalman non-parfumé (UKF)




FiltreKalmanNonLinPseudoGPS.m




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











Présentations orales
2ème cycle


14
4 Avr
• Types de cartes
• Espace de configuration
• Planification :
    - graphes de visibilité
    - champs de potentiels
    - RRT





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
15
11 Avr
• 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)

   




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




Présentations orales
2ème cycle

16 18 Avr
Examen final
(date à venir)

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