Un projet titanesque
Un robot pouvant se déplacer dans toutes les directions, capable de reconnaître son environnement et de réagir en conséquent … et tout cela en partant de zéro !
C’est bien là le projet que j’ai réalisé avec mon binôme dans le cadre de mon M1. Nous souhaitions participer au concours Eurobot et pour cela il fallait développer un robot capable de se déplacer dans un environnement, de reconnaître certaines plantes et de la déplacer à des endroits déterminés. Comme le budget de l’université n’a été débloqué que trop tardivement, nous n’avons finalement pas pu terminer le robot à temps cependant nous sommes fiers d’avoir conçu un AMR à roues mécanums (permettant un déplacement dans toutes les directions) doté d’un LiDAR pour cartographier son environnement et d’une caméra à reconnaissance d’image par IA (avec YoLoV8).
Le challenge de ce projet est que nous partions de rien à la base. Il a donc fallu développer toute la partie mécanique, faire les simulations, coder les différentes parties etc… Pour cela la découverte de ROS2 (Robot Operating System) a été d’une grande aide puisque ce framework logiciel permet de développer chaque partie indépendamment et de les assembler très facilement. De plus fonctionnant sur le réseau, la commande à distance en était largement simplifiée.
Le projet étant très complexe, voici une petite mindmap permettant d’avoir une vision d’ensemble.
Nous avons donc conçu la partie hardware d’une part et la partie software d’autre part et il a fallu ensuite tout relier (ce fut la partie la plus délicate).
Détails Hardware
En pratique nous avons choisi des roues mécanums (ce sont des roues à rouleaux obliques permettant un déplacement omnidirectionnel). Chaque roue étant indépendante, nous avons donc utilisés 4 MCC.
Pour le SLAM (Simultaneous Localisation and Mapping) nous avons combinés l’utilisation d’un LiDAR 2D et d’une caméra RGB. Cette caméra a aussi été utilisée pour la Computer Vision.
Le cerveau du robot était une Raspberry Pi.
Les supports et plaques ont ensuite été soit imprimées en 3D soit usinés dans les ateliers de l’université.
En effet, nous voulions réaliser le plus d’opérations nous-même (dans un but de formation).
Détails Software
Le développement du logiciel s’est fait principalement en simulation et n’a été implanté que tardivement après création de l’interface Hardware.
Nous avons utilisé ROS2 pour contrôler le robot. Tout n’était donc pas à faire manuellement, mais cela a tout de même nécessité plusieurs mois de travail. Une fois que l’AMR était en mesure de se déplacer suivant les consignes qu’on lui donnait nous avons ensuite travaillé sur l’aspect autonome.
Nous avions intentionnelement acheté une Raspberry Pi 4B avec 8Go de RAM car le modèle de reconnaissance des objets (par IA) demandait une relative grande puissance de calcul. Nous étions alors en mesure de reconnaître des plantes dans le champ de vision du robot.
Puis il a fallu dévelepper le SLAM (simultaneous localisation and mapping). Il s’agit pour le robot de cartographier son environnement et ensuite de calculer l’itinéraire idéal pour aller à la destination.
La destination quant à elle a été déterminée suite à un processus de fusion des capteurs. En effet, YoLo (avec la caméra) reconnaissait l’objet, puis grâce aux données du LiDAR on déduisait la position dudit objet qu’on fournissait à l’algorithme de SLAM pour que le robot s’y déplace.
Résultats
Pour ne pas rendre la lecture de cet article trop fastidieuse, j’ai volontairement survolé l’ensemble du projet. Ce que nous sommes parvenu à réaliser a épaté nos enseignents qui ne pensaient pas que nous arriverions à aller aussi loin sachant que nous étions parti de rien.
Aujourd’hui nous avons donc un robot holonome (roues mécanums) doté d’une IA lui permettant de reconnaître son environnement et de réagir en conséquent. Je n’ai malheuresement pas de vidéo illustrative sous la main, mais je mettrai cet article à jour dès que je pourrai m’en procurer car nous avons réalisé quelques plans d’illustration.