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.