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

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Jean-Philippe Roberge


PLAN DE COURS

Hiver 2025
GPA778 : Algorithmes embarqués en robotique (3 crédits)





Préalables
Programme(s) : 6557,7485,7885
             
  Profils(s) : Tous profils  
             
    GPA434    
             
Unités d'agrément
Total d'unités d'agrément : 58,8 25,0 % 75,0 %




Qualités de l'ingénieur

Qn
Qualité visée dans ce cours  
Qn
  Qualité visée dans un autre cours  
  Indicateur enseigné
  Indicateur évalué
  Indicateur enseigné et évalué



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



Objectifs du cours

Le cours GPA778 vise l'acquisition de connaissances au sujet des familles d'algorithmes typiquement employés en robotique au sens large, en portant cependant une attention particulière à la robotique mobile. Le cours familiarise d'abord l'étudiant·e avec certains principes de base reliés à la programmation et à la robotique, puis présente une multitude d'approches logicielles permettant aux robots d'intéragir de manière efficace avec l'environnement. En particulier, le cours a entre autres comme objectifs d'amener l'étudiant·e à:

  • Se familiariser avec un ordinateur monocarte de type Raspberry PI fonctionnant sous Linux (Ubuntu);
  • Acquérir des connaissances de base en programmation Bash et Python;
  • Comprendre le fonctionnement de ROS (Robot Operating System) et développer des packages informatiques sous cet environnement;
  • Développer la cinématique de robots mobiles simples;
  • Connaître les moyens de locomotion et morphologies typiques utilisés en robotique mobile;
  • Connaître les principales technologies de capteurs pouvant être intégrées sur un robot et leurs implications sur le plan logiciel; 
  • Développer de solides compétences en développement d'algorithmes pour robot(s), notamment en:
    • Perception 2D et 3D, avec techniques de filtrage et maillage;
    • Identification des surfaces de travail (e.g.: surfaces navigables);
    • Localisation simple basée sur encodeurs et centrale inertielle (navigation aux instruments), puis plus complexe par fusion de capteurs et par odométrie visuelle;
    • Planification et suivi de trajectoires;
    • Cartographie et exploration;
  • Distinguer les avantages et les inconvénients des approches logicielles classiques lors d'activités de cartographie et localisation simulatanées (SLAM) au niveau de leur coût d'opération logicielle, selon le contexte d'opération;
  • Obtenir une introduction sur l'intelligence artificielle appliquée à la robotique.

Ultimement, l'étudiant·e devrait, au terme de ce cours, avoir acquis des habiletés lui permettant d'implanter efficacement les algorithmes étudiés durant les scéances magistrales et appliquées durant les laboratoires, sur de réelles plateformes robotisées.




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 connaissaces. 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).

 




Utilisation d’appareils électroniques

Ne s'applique pas.




Horaire
Groupe Jour Heure Activité
01 Mercredi 18:00 - 21:30 Activité de cours
Jeudi 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



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

#1 - 8 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 - 15 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 - 22 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 - 29 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 - 5 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 - 12 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 - 19 février Examen intra  
#8 -  26 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

5  mars Congé (relâche)  
#9 - 12 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 - 19 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 - 26  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 - 2  avril
  • 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 -  9 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 - 9 janvier Congé de laboratoire
#2 - 16 janvier Lab1a - Introduction à Linux et ROS
#3 - 23 janvier Lab1b - Interactions capteurs et actionneurs 
#4 - 30 janvier Lab1c - Localisation I: encodeurs et IMU
#5 - 6 février Lab2a - Perception I: Acquisition et visualisation Lidar et caméra
#6 - 13 février Lab2b - Perception II: Représentation 3D par Lidar 2D
#7 - 20 février Lab2c - Perception III: Maillage et surfaces navigables
#8 - 27 février Lab3a - Suivi de trajectoires
#9 - 6 mars Congé (relâche)
#10 - 13 mars Lab3b - Localisation II: Odométrie visuelle
#11 - 20 mars Lab3c - Localisation III: Filtres de Kalman et fusion de capteurs
#12 - 27 mars Projet de fin de session: Intégration des packages et cartographie
#13 - 3 avril Projet de fin de session: Techniques d'exploration
#14 - 10 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 18.04 (LTS), 20.04 (LTS), 22.04 (LTS) ou 24.04 (LTS)
  • Robot Operating System (ROS) 
  • Langages Bash et Python (principalement)
  • Utilitaires rviz et Gazebo

Matériel:

  • Raspberry PI 4
  • Robot mobile comportant divers capteurs et actionneurs



Évaluation

 

Activité Description % Date de remise
INTRA**   30 La 7e période de cours : 19 février 2024
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   5 Rapport à remettre avant la première séance du laboration #2.
Laboratoire 2   7.5 Rapport à remettre avant la première séance du laboration #3.
Laboratoire 3   7.5 Rapport à remettre avant la première séance allouée au projet de fin de session.
Projet de fin de session   15 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.




Double seuil
Note minimale : 50



Dates des examens intra
Groupe(s) Date
1 19 février 2025



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : https://www.etsmtl.ca/programmes-et-formations/horaire-des-examens-finaux


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 l’enseignante ou l’enseignant du cours.



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.