Python pour la robotique
Ref: 2SC6010
Description
Ce cours présente une approche en python de la programmation robotique. On abordera dans une première partie des fondements en python couvrant les thématiques de la programmation orientée objet, de la programmation système/parallèle. On étudiera ensuite plus en détail les aspects robotiques sur la base de l'écosystème ROS2. On implémentera une bibliothèque de traitement visuel pour la navigation qu'on déploiera sur une plateforme robotique réelle Turtlebot. L'ensemble des réalisations se feront sous Linux avec des outils libres et une partie des TPs permettra aux étudiants de se familiariser avec cet environnement.
Période(s) du cours
ST5
Prérequis
1C1000 : Systèmes d’information et programmation
1C4000 : Traitement du signal
Des connaissances en programmation python sont absolument nécessaires.
Syllabus
- TP (2 x 1h30) d'introduction à Linux et à GIT
- CM (2 x 1h30) : Cours programmation objet python
- TP (2 x 1h30) : Programmation orientée objet en python
- TP (2 x 1h30) : Calcul numérique vectorisé efficace avec numpy
- TP (2 x 1h30) : Python multithreadé, multiprocess
- CM (1h30) : Introduction à ROS2
- TP (2 x 1h30) : Tutoriels d'introduction à ROS2
- TP (4 x 1h30) : Détection de lignes et de points de fuite pour l'asservissement visuel d'un Turtlebot
- TP (2 x 1h30) : Navigation semi-autonome et cartographie visuo-guidée
Volume horaire en HPE:
CM : 4.5 HPE
TP : 24 HPE
Composition du cours
Le cours est organisé autour de quelques enseignement magistraux accompagnés d'une part importante de mise en pratique. Les TPs, avec des plateformes robotiques réelles ou simulées, seront en particulier l'occasion d'implémenter et expérimenter les différents concepts vus en cours. Cette mise en œuvre reposera fortement sur ROS2. La programmation se fera en Python et l'ensemble des expérimentations se dérouleront sous Linux.
Ressources
Équipe enseignante : Joel Legrand, Hervé Frezza-Buet, Jeremy Fix
Outils logiciels : Uniquement des logiciels libres (Linux, Python, ROS, Gazebo)
Matériel : Turtlebot équipés de LIDAR et caméra 3D
Salles de TP : Salle de TP avec les logiciels pré-installés
Résultats de l'apprentissage couverts par le cours
- Structurer un développement informatique par une approche objet en python
- Écrire un code parallèle
- Prendre en main une plateforme robotique
- Code et déployer un ensemble de noeuds ROS2 pour un système robotique