Logo ÉTS
Session
Cours
Responsable(s) Jean-Philippe Roberge

Se connecter
 

Sauvegarde réussie
La notification a été envoyée
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Jean-Philippe Roberge


PLAN DE COURS

Hiver 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
Ce cours compte 58,8 unités d'agrément réparties comme suit :

Catégories de UA Nombre Proportion Matière(s) traitée(s)
Science du génie 14,7 UA 25,00 %
Conception Ingénierie 44,1 UA 75,00 %






Utilisation d’appareils électroniques

Ne s'applique pas.




Horaire
Groupe Jour Heure Activité
01 Lundi 18:00 - 21:30 Activité de cours
Mercredi 18:00 - 22:00 Laboratoire (2 sous-groupes)



Coordonnées du personnel enseignant le cours
Groupe Nom Activité Courriel Local Disponibilité
01 Jean-Philippe Roberge Activité de cours Jean-Philippe.Roberge@etsmtl.ca A-3642 Sur demande
01 Laboratoire (2 sous-groupes)



Cours
Semaine - Date Matière traitée dans le cours Référence(s)

#1 - 5 janvier

  • 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 - 12 janvier
  • 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 - 19 janvier
  • 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 - 26 janvier
  • 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 - 2 février
  • 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 - 9 février
  • 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 - 16 février Examen intra  
#8 -  23 février
  • 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

2  mars Congé (relâche)  
#9 - 9 mars
  • 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 - 16 mars
  • 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 - 23  mars
  • 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 - 30  mars
  • 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 -  13 avril
  • 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 - 7 janvier Congé de laboratoire
#2 - 14 janvier Lab1a - Introduction aux environnements, à Linux et ROS 2
#3 - 21 janvier Lab1b - Interactions capteurs et actionneurs 
#4 - 28 janvier Lab1c - Localisation I: encodeurs et IMU
#5 - 4 février Lab2a - Perception I: Acquisition et visualisation Lidar et caméra
#6 - 11 février Lab2b - Perception II: Représentation 3D par Lidar 2D
#7 - 18 février Lab2c - Perception III: Maillage et surfaces navigables
#8 - 25 février Lab3a - Suivi de trajectoires
4 mars Congé (relâche)
#9 - 11 mars Lab3b - Localisation II: Odométrie visuelle
#10 - 18 mars Lab3c - Localisation III: Filtres de Kalman et fusion de capteurs
#11 - 25 mars Projet de fin de session: Intégration des packages et cartographie
#12 - 8 avril Projet de fin de session: Techniques d'exploration
#13 - 15 avril 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 - Ubuntu 20.04 (LTS), 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
  • Robot mobile comportant divers capteurs et actionneurs



Évaluation


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(s) Date
1 16 février 2026



Politique de retard des travaux
Tout travail (devoir pratique, rapport de laboratoire, rapport de projet, etc.) remis en retard sans motif valable, c’est-à-dire autre que ceux mentionnés dans le Règlement des études (1er cycle, article 7.2.5/ cycles supérieurs, article 6.5.2) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignante ou l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.

Dispositions additionnelles

20% par jour de retard




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 RoboticsMechanics, 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=24972




Autres informations

Ne s'applique pas.