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


Mis à jour le 16 octobre 2017.

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! Depuis 2016, 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)
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) Version complète TP1Complet.zip
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-3920
#2 10h30 à 12h20 au PLT-3920

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

Installation des logiciels sur les laptops.
Connexion et utilisation de la plate-forme robotique.
2
12 Sep
• Capteurs : tactile, sonar, accéléromètre, gyroscopes, centrales inertielles.
• Nappes lasers (LiDAR) 2D, 3D
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


Labo 1

Calibration et utilisation du capteur infrarouge. 
3
19 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


RandomWalk.m

03-VisionI.pdf

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



Labo 2

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

4
26 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



03-VisionSupplement.pdf

03-VisionII.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 3

Laboratoire sur la
caméra RGB.
5
3 Oct
• Feature visuels :
    - SIFT
    - SURF
    - BRIEF (binaire)
    - ORB
• Algorithme RANSAC
• Odométrie visuelle
• Transformations homogènes


03-VisionIII.pdf
04.StatistiquesProbaBayesI.pdf




RANSAC: p. 252-255.


Labo 4
Modèle de déplacement
du robot


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


04.StatistiquesProbaBayesII.pdf
05-LocomotionI.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 5
Utilisation de la Kinect et application pratique de RANSAC
7
17 Oct
• Modèle probabiliste des déplacements
• Navigation à l'aveugle
• Contenu de l'examen




05-LocomotionII.pdf




(à compléter)

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

(à compléter)




Pas de laboratoire
8
24 Oct
Examen mi-session



(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
31 Oct
Semaine de lecture




Pas de laboratoire
10
7 Nov

• Retour sur l'examen
• Méthode Iterative Closest Point (ICP)
• Fusion de capteurs
• Estimation d'état
• Filtrage récursif




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





11
14 Nov

• Filtre Kalman
• Propagation des erreurs
• Jacobienne
• Filtre Kalman Étendu (EKF)




FiltreKalmanNonLinPseudoGPS.m


Filtre de Kalman
protocole
codeKalman.zip

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







Télémètre laser + ICP


13
28 Nov

• Cartographie SLAM :
    - Descrption et taxonomie
• Problème de loop closure
• EKF SLAM
• FastSLAM 1.0
• Graph-SLAM
Méthodes dense vs. à features
Visual Place Recognition
Visual SLAM (FAB-MAP)





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

14
5 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é
• Planification :
    - champs de potentiels
    - RRT
   









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 12
Dec
Examen final

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

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