Dans le cadre d’un projet de cours, nous (\, ^ et moi) avons construit un robot capable de se déplacer sur une surface plane en présence d’obstacles grâce aux courbes de Reeds et Shepp. Ces courbes sont en particulier utilisés pour la planification du mouvement lors du mode parking automatique sur certaines voitures (créneaux automatiques). Pour cela, nous avons utilisé une base dotée de deux roues motrices indépendantes à l’avant (mus par des moteurs pas à pas), stabilisé à l’arrière par deux roulements à bille. Une limitation logicielle permettait de réduire le rayon de braquage (pour simuler un comportement proche de celui d’une voiture).
Vidéos
Dispositif
Le dispositif est composé de plusieurs parties :
- Un système de vision placé au plafond, composé d’une webcam, d’une Intel Galileo chargée de prendre les photos, de les traiter (identifier le robot et les obstacles et en déterminer des coordonnées x,y) et de les mettre à disposition du robot.
- Un routeur wifi, placé aussi au plafond, connecté en ethernet à la carte Intel Galileo. Il permet en particulier aux utilisateurs extérieurs de se connecter facilement aux différents systèmes (typiquement via ssh).
- Un robot, composé de trois modules
- Le tout est alimenté par une batterie NiMH, lui conférant une autonomie d’environ 1 heure.
Le robot
Le robot est composé de 3 modules:
Un module commandement: composé d’une Raspberrypi 2 modèle B, connectée en wifi au routeur, qui planifie le mouvement. La raspberry récupère les coordonnées, calcule la trajectoire de Reeds et Shepp en prenant en compte les obstacles, optimise la trajectoire, et enfin transmet les ordres de trajectoire au module locomotion. La rapsberry dispose aussi d’un module LCD 1602 afichant des informations de debug. Il est aussi connecté au module gyrophare en serial permettant d’avertir de la mise en mouvement du robot.
Un module gyrophare: composé de quatre leds et d’un arduino nano, chargé d’avertir via un signal lumineux de la mise en mouvement du robot.
Un module locomotion: composé d’un arduino mega et d’une ramps, qui commande les deux steppers et transforme les ordres de trajectoire (segments de droite et arcs de cercles) en impulsion électriques (steps) à chaque moteur pas à pas.