PLAN DE COURS
Automne 2026
GPA778 : Algorithmes embarqués en robotique (3 crédits)
Préalables
Pour tous profils : GPA434
Description du cours
Au terme de ce cours, l’étudiante ou l'étudiant aura acquis des connaissances avancées en
programmation d’algorithmes s’exécutant à bord de systèmes robotiques mobiles, il se
sera familiarisé avec les principales familles d’algorithmes embarqués et il aura
développé les compétences nécessaires à leur implantation efficace sur de réelles
plateformes robotisées.
Introduction à la robotique mobile: principaux modes de locomotion, cinématique des
robots mobiles et capteurs liés à la navigation autonome. Utilisation du système
d’exploitation Linux : automatisation par interprétation de commandes BASH, gestion des
processus, commande de périphériques d’entrée/sortie. Initiation à l’environnement
ROS : intégration de capteurs et d’actionneurs, communication interprocessus et outils
de développement. Étude détaillée d’algorithmes embarqués : techniques de
reconstruction de l’environnement par stéréoscopie et/ou nuage(s) de points, maillage,
appariement de points, algorithmes de Delaunay, ICP, filtres de Kalman et filtrage de
scènes. Revue et analyse d’algorithmes de navigation autonome : localisation,
planification et suivi de trajectoires, navigation aux instruments et algorithme de
Madgwick, méthode des potentiels, odométrie visuelle, cartographie et localisation
simultanées (SLAM). Étude d’algorithmes modernes de contrôle robotique basés sur
l’intelligence artificielle: apprentissage par renforcement et RHC/MPC.
Séances de laboratoire portant sur la mise en pratique des algorithmes étudiés lors des
séances magistrales grâce à un robot mobile évoluant dans un environnement structuré
et inconnu.
Stratégies pédagogiques
- 39 heures de cours magistraux
- 24 heures de laboratoires
- 4 heures de travail personnel par semaine (lectures, exercices, préparation des laboratoires, travail libre au laboratoire, etc.)
Utilisation d'un environnement numérique d'apprentissage (ENA): Dans le cadre du cours, l'étudiant·e sera appelé·e à utiliser Moodle (https://ena.etsmtl.ca/) afin de télécharger les notes de cours, pour consulter les références et liens connexes, puis pour effectuer des exercices (e.g.: quiz) visant à vérifier sa compréhension des concepts théoriques. En plus de Moodle, l'étudiant·e sera introduit·e à l'environnement ROS Development Studio, un environnement virtuel en ligne, afin d'y effectuer certains exercices de développement logiciels.
De plus, afin de réaliser les divers objectifs d'apprentissage, les concepts clés seront d'abord présentés lors des séances magistrales et des exercices seront fréquemment proposés afin de bien encrer les nouvelles connaissances. Enfin, les concepts présentés en classe seront appliqués au laboratoire dans un réel contexte de robotique: les notions acquises serviront à programmer progressivement un robot devant effectuer une tâche de cartographie et localisation simultanées (SLAM).
Informations concernant l’agrément du BCAPG
| Catégories de UA | Proportion | Matière(s) traitée(s) |
| Science du génie | 25 % | N/A |
| Conception Ingénierie | 75 % | |
Les objectifs de ce cours sont liés aux indicateurs de qualités requises des diplômés de la manière suivante : | Objectif spécifique | Qualité | Indicateur | Niveau d'enseignement |
| expliquer les principes de la robotique mobile, de la locomotion et de la cinématique; | Q1 . Connaissances en génie | i4 . Appliquer les concepts spécialisés de l’ingénierie | Appliqué |
| analyser les architectures logicielles embarquées sous Linux et ROS; | Q2 . Analyse de problèmes | i1 . Identifier et formuler des problèmes complexes | Appliqué |
| analyser les architectures logicielles embarquées sous Linux et ROS; | Q2 . Analyse de problèmes | i2 . Choisir un modèle ou une méthode pour solutionner | Appliqué |
| analyser les architectures logicielles embarquées sous Linux et ROS; | Q2 . Analyse de problèmes | i3 . Appliquer modèle ou méthode | Appliqué |
| concevoir des algorithmes de localisation et de suivi de trajectoires; | Q4 . Conception | i1 . Formuler un problème d'ingénierie ouvert | Appliqué |
| concevoir des algorithmes de localisation et de suivi de trajectoires; | Q4 . Conception | i2 . Développer des concepts | Appliqué |
| concevoir des algorithmes de localisation et de suivi de trajectoires; | Q4 . Conception | i4 . Intégrer les concepts | Appliqué |
| implémenter des algorithmes de perception et de reconstruction de l’environnement; | Q5 . Outils d'ingénierie | i1 . Évaluer outils et techniques | Appliqué |
| implémenter des algorithmes de perception et de reconstruction de l’environnement; | Q5 . Outils d'ingénierie | i2 . Appliquer | Appliqué |
| implémenter des algorithmes de perception et de reconstruction de l’environnement. | Q5 . Outils d'ingénierie | i3 . Combiner, adapter, créer | Appliqué |
Utilisation d’appareils électroniques
Ne s'applique pas.
Horaire
| Groupe | Jour | Heure | Activité |
| 01 | Jeudi | 08:30 - 12:00 | Activité de cours |
| Vendredi | 08:30 - 12:30 | Laboratoire |
Coordonnées du personnel enseignant le cours
| Groupe | Nom | Activité | Courriel | Local | Disponibilité |
| 01 | | Laboratoire | | | |
| 01 | Jean-Philippe Roberge | Activité de cours | Jean-Philippe.Roberge@etsmtl.ca | A-3642 | Disponible sur demande. |
Cours
| Semaine - Date |
Matière traitée dans le cours |
Référence(s) |
|
#1 - 3 septembre
|
- Présentation personnelle
- Présentation du plan de cours
- Introduction à la matière:
- Historique de la robotique: focus sur la robotique mobile et son état actuel;
- Synthèse des morphologies et familles de robots;
- Moyens de locomotion.
|
Dudek & Jenkin: Chap. 1 |
| #2 - 17 septembre |
- Introduction à Linux et ROS:
- Terminal et notions élémentaires de BASH;
- Architectures logicielles, communication interprocessus et notions d'abstraction du matériel.
- Introduction au langage Python et exercices
- Démonstrations en classe avec le robot Mirobot de WLkata
|
Programming Robots with ROS - A Practical Introduction to the Robot Operating System. (ressource disponible en ligne) |
| #3 - 24 septembre |
- Retour sur les exercices et notions du cours #2 (ROS & Python)
- Rappels mathématiques: transformations homogènes et trigonométrie
- Introduction aux moyens de perception employés en robotique
|
Kelly: Chap. 2
Dudek & Jenkin: Chap. 2
|
| #4 - 1 octobre |
- Cinématique des robots mobiles
- Études des moyens de locomotion et modélisation.
- Notions de dynamique
- Localisation I:
- Centrale inertielle et encodeurs;
- Algorithmes de localisation simplifiés, filtres de Madgwick.
|
Siegwart et al.: Chap.2-3 |
| #5 - 8 octobre |
- Vision robotique I:
- Lidars 2D, caméras passives et modèle sténopé;
- Systèmes de vision 3D: principe de la stéréoscopie, vision par lumière structurée;
- Algorithmes de reconstruction de l'environnement et changement de coordonnées;
- Fusion par recalage d'images 2D sur nuages de points.
|
Siegwart et al.: Chap.4.1
Dudek & Jenkin: Chap. 5
|
| #6 - 15 octobre |
- Vision robotique II:
- Algorithmes de filtrage avancé (sphérique / cartésien);
- Reconstruction de surfaces par maillage, algorithme de Delaunay;
- Identification des surfaces navigables;
- Définition de trajectoires.
- Exercices de révision pour l'examen intra
|
Siegwart et al.: Chap.4.2-4.3
Dudek & Jenkin: Chap. 6
|
| #7 - 22 octobre |
Examen intra |
|
| #8 - 29 octobre |
- Retour sur la définition de trajectoires
- évitement d'obstacle(s) et minimisation de l'énergie.
- Algorithmes de suivi de trajectoires:
- Contrôleur d'Astolfi et contrôleur PID;
- Asservissement dans le domaine polaire ou cartésien;
- Algorithmes de Dijkstra et A-Star.
- Formalismes additionnels en contrôle: réseaux génétiques et contrôle hybride
|
Siegwart et al.: Chap.6
Dudek & Jenkin: Chap. 7
|
| #9 - 5 novembre |
- Localisation II:
- Compléments mathématiques;
- Localisation par odométrie visuelle;
- Algorithme RANSAC;
- Filtres de Kalman (1ère partie): filtre de Kalman classique, filtres bayésiens.
- Exercices
|
Siegwart et al.: Chap.5.1-5.5
Dudek & Jenkin: Chap. 8
|
| #10 - 12 novembre |
- Retour sur les exercices du cours précédent
- Localisation III:
- Filtres de Kalman (2ième partie): Filtre de Kalman étendu;
- Fusion de capteurs;
- Filtres de particules;
- Algorithmes d'exploration.
|
Siegwart et al.: Chap.5.6-5.7 |
| #11 - 19 novembre |
- Techniques de représentation cartographique (locale et globale)
- Types de cartes, grille d'occupation, Quadtrees, Diagrame de Voronoi.
|
Siegwart et al.: Chap.5.8
Dudek & Jenkin: Chap. 9.1-9.3
|
| #12 - 26 novembre |
- SLAM (Simultaneous Localization and Mapping)
- Référencement en cartographie;
- SLAM basé sur la vision.
|
Siegwart et al.: Chap.6
Dudek & Jenkin: Chap. 9.4-9.6
|
| #13 - 3 décembre |
- Intelligence artificielle en robotique
- Brève discussion sur la classification de données visuelles;
- Introduction aux algorithmes d'apprentissage par renforcement;
- Commande prédictive (MPC/RHC)
|
Références présentées en classe |
| Selon l'horaire |
Examen final |
n/a |
Laboratoires et travaux pratiques
| Semaine - Date |
Description |
| #1 - 4 septembre |
Congé de laboratoire |
| #2 - 11 septembre |
Lab1a - Introduction aux environnements, à Linux et ROS 2 |
| #3 - 18 septembre |
Lab1b - Interactions capteurs et actionneurs |
| #4 - 25 septembre |
Lab1c - Localisation I: encodeurs et IMU |
| #5 - 2 octobre |
Lab2a - Perception I: Acquisition et visualisation Lidar et caméra |
| 9 octobre |
Congé de laboratoire (relâche) |
| #6 - 16 octobre |
Lab2b - Perception II: Représentation 3D par Lidar 2D |
| #7 - 23 octobre |
Lab2c - Perception III: Maillage et surfaces navigables |
| #8 - 30 octobre |
Lab3a - Suivi de trajectoires |
| #9 - 6 novembre |
Lab3b - Localisation II: Odométrie visuelle |
| #10 - 13 novembre |
Lab3c - Localisation III: Filtres de Kalman et fusion de capteurs |
| #11 - 20 novembre |
Projet de fin de session: Intégration des packages et cartographie |
| #12 - 27 novembre |
Projet de fin de session: Techniques d'exploration |
| #13 - 4 décembre |
Projet de fin de session: Tests, validation et démonstration finale. |
Utilisation d'outils d'ingénierie
Stations de travail:
Logiciel:
- Système d'exploitation Linux - 22.04 (LTS) ou 24.04 (LTS)
- Robot Operating System (ROS) 2
- Langages Bash et Python (principalement)
- Utilitaires rviz et Gazebo
Matériel:
- Raspberry PI 4 B
- Robot mobile comportant divers capteurs et actionneurs
Évaluation
| Type d'évaluation | Pondération | Modalité | Description | Utilisation de l'IA |
| Examen intra | 30 | Individuel | Examen de mi-session | Utilisation interdite |
| Laboratoire | 7 | En équipe | Lab #1 | Utilisation balisée |
| Laboratoire | 7 | En équipe | Lab #2 | Utilisation balisée |
| Laboratoire | 7 | En équipe | Lab #3 | Utilisation balisée |
| Examen final | 35 | Individuel | Examen final | Utilisation interdite |
| Projet / Travail / travail de session | 14 | En équipe | Projet de fin de session | Utilisation balisée |
Informations additionnelles :
| Activité |
Description |
% |
Date de remise |
| INTRA** |
|
30 |
La 7e période de cours : 16 février 2025 |
| FINAL** |
Une moyenne de 50 % aux deux examens combinés est nécessaire pour réussir le cours. |
35 |
Durant la période des examens finaux |
| Laboratoire 1 |
|
7 |
Rapport à remettre avant la première séance du laboration #2. |
| Laboratoire 2 |
|
7 |
Rapport à remettre avant la première séance du laboration #3. |
| Laboratoire 3 |
|
7 |
Rapport à remettre avant la première séance allouée au projet de fin de session. |
| Projet de fin de session |
|
14 |
Rapport à remettre 1 semaine après la dernière scéance pour cet exercice. |
**Documentation permises à l'examen intra et final: notes de cours disponible sur moodle, manuels de référence mentionés dans le plan de cours, Calculatrice TI permise. Durée totale de 3 heures.
Seuil de passage pour les éléments à caractère individuel
Note minimale : 50
Dates des examens intra
| Groupe | Date | Heure |
| 1 | 22 octobre 2026 | 09:00 |
Absence à une évaluation
Afin de faire valider une absence à une évaluation en vue d’obtenir un examen de compensation, l’étudiante ou
l’étudiant doit utiliser le
formulaire prévu à cet effet dans son portail MonÉTS pour un examen final qui se
déroule durant la période des examens finaux ou pour tout autre élément d’évaluation surveillé de 15% et plus
durant la session. Si l’absence concerne un élément d’évaluation de moins de 15% durant la session, l’étudiant
ou l’étudiante doit soumettre une demande par écrit à son enseignante ou enseignant.
Toute demande de validation d’absence doit se faire dans les cinq (5) jours ouvrables suivant la tenue de
l’évaluation, sauf dans les cas d’une absence pour participation à une activité prévue aux règlements des
études où la demande doit être soumise dans les cinq (5) jours ouvrables avant le jour de départ de l’ÉTS
pour se rendre à l’activité.
Toute absence non justifiée par un motif majeur (voir articles 7.2.6.1 du
RÉPC et 6.5.2 du RÉCS)
entraînera l’attribution de la note zéro (0).
Infractions de nature académique
Les clauses du « Règlement sur les infractions de nature académique de l’ÉTS » s’appliquent dans ce cours ainsi que dans tous les cours du département. Les étudiantes et les étudiants doivent consulter le Règlement sur les infractions de nature académique (www.etsmtl.ca/a-propos/gouvernance/secretariat-general/cadre-reglementaire/reglement-sur-les-infractions-de-nature-academique) pour identifier les actes considérés comme étant des infractions de nature académique ainsi que prendre connaissance des sanctions prévues à cet effet. À l’ÉTS, le respect de la propriété intellectuelle est une valeur essentielle et tous les membres de la communauté étudiante sont invités à consulter la page Citer, pas plagier ! (www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).
Systèmes d’intelligence artificielle générative (SIAG)
L’utilisation des systèmes d’intelligence artificielle générative (SIAG) dans les activités d’évaluation constitue une infraction de nature académique au sens du Règlement sur les infractions de nature académique, sauf si elle est explicitement autorisée par la personne enseignante du cours ou la personne coordonnatrice dans le cas des stages.
Documentation obligatoire
-Note de cours GPA778 (disponible sur Moodle)
-Cahier de laboratoire GPA778 (disponible sur Moodle)
Ouvrages de références
- Gregory Dudek and Michael Jenkin. 2010. Computational Principles of Mobile Robotics (2nd. ed.). Cambridge University Press, USA.
- Roland Siegwart, Illah R. Nourbakhsh, and Davide Scaramuzza. 2011. Introduction to Autonomous Mobile Robots (2nd. ed.). The MIT Press.
- Luc Jaulin. 2015. Mobile Robotics (1st. ed.). ISTE Press - Elsevier, London/Oxford, GBR.
- Alonzo Kelly. 2013. Mobile Robotics: Mathematics, Models, and Methods. Cambridge University Press.
- Kevin M. Lynch and Frank C. Park. 2017. Modern Robotics: Mechanics, Planning and Control. Cambridge University Press.
- Steven M. LaValle. 2006. Planning Algorithms. Cambridge University Press.
- Morgan Quigley, Brian Gerkey and William D. Smart. 2016. Programming Robots with ROS - A Practical Introduction to the Robot Operating System. O'Reilly.
- Peter Corke. 2011. Robotics, Vision and Control - Fundamental Algorithms in Matlab. Springer Link.
Adresse internet du site de cours et autres liens utiles
https://ena.etsmtl.ca/course/view.php?id=31035
Autres informations
Ne s'applique pas.