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