Session de terrain CS
Contexte
Pendant l’été 2020, j’ai suivi le cours CSCI370 ou « Advanced Software Engineering » dans le cadre de mon programme de licence en informatique à la Colorado School of Mines. CSCI370 est un cours qui amène les étudiants à concevoir, implémenter et documenter des solutions logicielles pour une entreprise. Il permet aux étudiants d’appliquer les connaissances acquises en cours à des problèmes informatiques du monde réel. Vous pouvez en savoir plus sur le cours ici.
Dans le cours, vous choisissez le projet/entreprise sur lequel vous allez travailler. Le cours a fourni des PDF détaillant chaque projet et chaque entreprise. Finalement, j’ai décidé de travailler sur un projet publié par une entreprise appelée Lunar Outpost intitulé Détection en temps réel du glissement des roues et corrections d’erreurs pour une navigation lunaire améliorée. Comme le nom est long, donnons au projet l’alias « Détection du glissement des roues ».
Problème
Lunar Outpost est une start‑up qui tente de créer des rovers lunaires autonomes. Sur la Lune, il y a beaucoup de poussière lunaire connue pour provoquer un important glissement des roues. Ce n’est pas idéal car le glissement des roues peut faire perdre aux systèmes autonomes la trace de leur position réelle. Sur Terre, cela se résout en utilisant les données GPS pour corriger tout décalage causé par le glissement des roues. Mais le problème avec le GPS est qu’il ne fonctionne qu’en disposant de plus de 30+ satellites de navigation en orbite autour de la Terre et transmettant des signaux uniques permettant aux ordinateurs de calculer leur position. Or, sur la Lune, il n’existe actuellement aucun GPS. Sachant cela, une méthode autre que le GPS doit être utilisée pour détecter le glissement des roues. Un rapport plus détaillé du problème du projet peut être consulté ici.
Coéquipiers
Ce projet n’était pas simple, il a donc dû être réalisé en équipe. L’équipe était composée de cinq étudiants de la Colorado School of Mines :
- Mehmet Yilmaz (moi)
- Kane Bruce
- Braedon O’Callaghan
- Liam Dempsey
- Kevin Grant
Le projet nous a obligés à connaître ROS, C++, Python, Linux, Raspberry Pi et Arduino. La plupart d’entre nous avaient de l’expérience dans une ou plusieurs de ces technologies, mais j’étais le seul à avoir de l’expérience avec ROS, car je l’avais utilisé dans mon cours Human Centered Robotics (CSC470) au semestre du printemps 2020. En raison de cela, dès le début, j’ai aidé tout le monde à se familiariser avec ROS et à développer pour celui‑ci.
Défis
Dans ce projet, il y a eu de nombreux défis. Mais le plus grand défi que nous avons rencontré a été de ne pas avoir accès à un robot réel pour les tests. Cela était dû à COVID qui a rendu tout le travail à distance et nous a empêchés de travailler dans les laboratoires/bâtiments de Lunar Outpost. En conséquence, nous avons dû recourir à des simulations.
De plus, nous avons consulté des recherches académiques du WVU Navigation Lab pour obtenir une idée de la façon dont le problème du glissement des roues pourrait être résolu pour le cas d’utilisation de Lunar Outpost. Ce qui, pour nous, étudiants de deuxième et troisième année, était plus difficile que prévu.
Un autre défi était le temps limité dont nous disposions pour travailler sur ce projet. CSCI370 est un cours d’un mois. Mais le problème lui‑même est massif, et de nombreuses entreprises et chercheurs tentent de le résoudre/perfectionner depuis des décennies. Ainsi, un mois est loin d’être suffisant pour résoudre ce problème. Malgré tous ces défis, nous avons persévéré et nous nous sommes assurés de livrer le résultat.
Conclusion
Dans cet article, j’aurais aimé fournir une explication plus détaillée de nos solutions ainsi qu’une conclusion appropriée expliquant ce que nous avons découvert et les résultats finaux. Mais malheureusement, mes coéquipiers et moi avons signé un Accord de non-divulgation (NDA) qui nous empêche de partager toute information confidentielle sur ce projet. Toutes les informations que j’ai fournies ci‑dessus sont publiques et peuvent être consultées sur Internet.
Au cours de ce projet, nous avons réellement appris à utiliser ROS et à créer des simulations avec ROS et Gazebo. Nous avons également acquis une meilleure compréhension du domaine de recherche sur la détection du glissement des roues. Nous avons aussi eu l’honneur de rencontrer des universitaires/chercheurs du WVU Navigation Lab.
En sachant tout cela, je dois dire que ce projet m’a permis de prendre une position de leader dans l’équipe, de servir d’éducateur pour aider mes pairs à mieux comprendre ROS, et m’a apporté davantage d’expérience avec ROS, Gazebo et Python. Il m’a également sensibilisé au problème du glissement des roues, un problème dont je n’étais pas conscient avant de travailler sur ce projet. Dans l’ensemble, je suis reconnaissant que Lunar Outpost ait consacré du temps de son emploi du temps chargé, surtout pendant la période COVID, pour nous permettre de travailler sur ce projet. Je suis également reconnaissant d’avoir eu des coéquipiers formidables qui ont travaillé très dur sur ce projet.