Zeus : Retour sur la Canadian International Rover Challenge

Zeus : Retour sur la Canadian International Rover Challenge 

Zeus : Retour sur la Canadian International Rover Challenge

Après plusieurs mois de travail, l’équipe Zeus a réussi à terminer la conception et la fabrication de notre Rover afin de participer à la Canadian International Rover Challenge (CIRC) qui a eu lieu en août dernier. Étant à notre première participation, nous sommes très fiers d’avoir remporté la première place à la compétition. Dans cet article, nous vous décrirons toutes les missions que Zeus a dû compléter et allons discuter de comment ça s’est passé. Pour en apprendre plus sur les origines du projet n’hésitez pas à visiter notre page web, ou bien notre article d’il y a quelques mois.

La compétition

La compétition CIRC était composée de cinq défis que chaque rover devait surmonter. Ces cinq défis visaient à évaluer des aspects variés du rover, soient leur capacité à surmonter des obstacles, la dextérité du bras robotique, la robustesse des systèmes de téléopération, et bien d’autres. Chaque mission avait une mise en situation particulière et devait être complétée en téléopérant le rover à distance à partir d’une base.

Search and Rescue

Suite à un accident qui a atteint un réacteur nucléaire durant la nuit, un astronaute se retrouve blessé près des installations. Comme la radioactivité est élevée, personne ne peut aller l’aider, il faut donc envoyer un rover en mission de secours!
Cette mission a été très excitante. En plus de devoir accrocher l’astronaute, le tirer, et vérifier l’état des lieux, tout devait être fait dans le noir. C’était un bon défi pour nos systèmes de téléopération. Nous avions quatre caméras et deux lumières, qui nous ont permis de bien observer l’environnement du rover tout au long de la mission. Le système de propulsion a également très bien relevé le défi de tirer l’astronaute, qui représentait une charge d’environ 30 kg.

Traversal

Les réacteurs nucléaires des installations martiennes ont besoin d’inspections fréquentes. Afin de vérifier que tout fonctionne bien, un rover est envoyé périodiquement pour les surveiller. Les coordonnées des réacteurs sont connues, et leur état doit être vérifié en lisant les codes Aruco qu’on y retrouve.
Cette mission nécessitait de voyager à des points GPS connus et de scanner des codes Aruco une fois arrivés à chaque destination. De plus, le terrain était de plus en plus accidenté au fur et à mesure que nous avancions dans le parcours. Nous étions très contents de notre suspension robuste et notre système de téléopération, qui nous ont permis de compléter cette mission dans un temps record de 16 minutes!

Land Speculation

Suite à un accident dans une des installations martiennes, un nouvel endroit pour installer une base spatiale doit être identifié en urgence. Pour ce faire, un rover est envoyé pour explorer les terrains à proximité pour évaluer la viabilité de s’y installer. Le rover doit prendre des photos, sauvegarder les coordonnées des endroits visités, et même prendre des échantillons du sol qui devront être analysés une fois revenu de sa mission. Un rapport de recommandations doit être généré en urgence pour prendre action sur les nouvelles installations à bâtir.
Cette mission a été très intéressante car nous avions plus de liberté que dans les autres. Il n’y avait pas d’actions précises à poser, nous étions libres de choisir une stratégie pour l’exploration et le choix d’emplacement. Notre système de caméras pour prendre des photos ainsi que notre système d’échantillonage de sol ont été très utiles durant la mission. Nous avons réussi à fournir un rapport complet de nos analyses en seulement trois heures et avons trouvé des bons endroits pour des nouvelles installations martiennes.

Arm Dexterity

Une défaillance d’équipement met en danger la stabilité d’un réacteur nucléaire. Ainsi, une réparations doit être faite immédiatement à l’aide d’un rover qui se trouve sur place pour ce genre de situation. Il faut téléopérer le bras du rover à distance afin de compléter la réparation. Par contre, le pilote du rover ne connaît pas bien les systèmes qu’il doit réparer. Il doit donc communiquer avec un expert qui le guide dans la réparation.
Cette tâche a vraiment mis à l’épreuve notre bras robotique et son sytème de téléopération. Les manipulations à faire sur le panneau de contrôle demandaient des mouvements très précis, et notre pilote a très bien relevé le défi. Nous avons réussi à compléter presque toutes les réparations à faire et avons obtenu un excellent score pour cette épreuve.

Pontifex Perplexus

Les systèmes de refroidissement des installations martiennes ont subi d’importants dommages à la suite de l’explosion d’un réacteur, et le manque de contrôle climatique entrave sérieusement les efforts de réparation. Un rover doit enquêter dans la zone, rechercher des indices et des matériaux et réparer les systèmes défectueux.
Cette tâche a été très intéressante. Contrairement aux autres tâches, qui duraient une heure chacune, celle-ci durait trois heures et demandait d’effectuer plusieurs réparations. D’abord, il fallait retrouver des guides de maintenance et réussir à les lire avec les caméras du rover. Ceux-ci étaient éparpillés un peu partout sur le terrain de la mission. Ensuite, en suivant les instructions, nous devions compléter les réparations nécessaires. Il y avait beaucoup de défis pour tous les systèmes du rover. Il fallait d’abord construire une passerelle, afin de nous permettre d’accéder au panneu de contrôle pour pouvoir ensuite y réparer le système de refroidissement. Cette mission a été très appréciée par l’équipe et noius sommes très contents de notre performance.

Les Roverlympics

En plus des cinq missions de la compétition, nous avons eu beaucoup de plaisir durant les Roverlympics, compétition amicale qui a eu lieu durant la dernière journée de la CIRC. Il y avait plusieurs défis pour tester les limites des rovers, comme des courses à obstacles, des sauts, une compétition de tir à la corde entre rovers, et bien d’autres. C’était un excellent moyen de clôre la compétition et aussi notre voyage en Alberta!

Une très belle expérience!

Ce projet a été énormément formateur pour nous, et nous avons eu énormément de plaisir en le faisant. Le voyage en Alberta ainsi que la compétition ont également été des expériences incroyables. Nous tenons remercier nos commanditaires ainsi que tous ceux qui ont supporté le projet. Tout cela n’aurait pas être possible sans leur généreuse aide. Par ailleurs, nous sommes toujours à la recherche de contributions afin de compléter le prototype final, et de léguer le prototype au groupe, qui continuera d’aller à la compétition d’année en année!
Pour la session d’automne, nous nous concentrerons sur des améliorations ainsi que la préparation du rover pour l’expo MégaGÉNIALE. Nous aimerions vous inviter à cet évènement, qui est la plus grande exposition de projets de génie au Canada! Plus de 50 projets d’envergure réalisés par les finissantes et finissants dans chacun des domaines du génie seront exposés.

La conception d’une astromobile, un projet concret pour ces finissants de la Faculté de génie

Robotique UdeS est un groupe technique de l’Université de Sherbrooke qui a été fondé en 2019 et qui regroupe maintenant plusieurs étudiants ayant en commun une passion pour la robotique. Ce groupe est une bannière qui rassemble plusieurs projets qui permettent autant le transfert des connaissances que l’innovation technologique. Si vous pensez qu’il est question d’assemblage de blocs Lego, vous serez surement surpris de voir les barrières que le groupe a repoussées dans les six derniers mois.   

Des projets tous plus diversifiés les uns des autres 

Le groupe se veut très inclusif et toutes les personnes intéressées à participer aux différentes activités sont invitées à le faire, et ce peu importe leur parcours scolaire ou leur domaine d’études. Tout d’abord, le groupe a comme priorité de transmettre les connaissances et de démocratiser l’accès à la robotique de toutes les façons possibles. Le but est de faire découvrir le domaine et ainsi permettre au plus grand nombre de personnes d’y contribuer et de s’épanouir en le faisant. Pour atteindre cet objectif, plusieurs initiatives sont mises en place, comme le mentorat robotique dans les écoles primaires et secondaires, le projet Robot en 100 heures, et bien d’autres!  

D’un autre côté, le groupe a l’innovation technologique à cœur. Le but est de donner aux étudiants une opportunité de mettre en œuvre les connaissances techniques acquises durant leurs études en participant à des projets d’ingénierie d’envergure et en représentant l’Université à des compétitions de conception robotique. Cela nous amène à parler du projet de rover Zeus. Le groupe partira bientôt vers l’Alberta afin de représenter l’Université de Sherbrooke à la compétition Canadian International Rover Challenge du 13 au 16 août prochains!  

Conception d’un véhicule pour « explorer » une surface céleste  

Le projet Zeus est un projet de fin de baccalauréat, réalisé par 10 finissants en génie en partenariat avec le groupe technique Robotique UdeS. Le projet consiste à concevoir un rover afin de simuler plusieurs missions spatiales, comme des missions d’exploration, de réparation d’installations spatiales et même de sauvetage d’un astronaute en danger. Le projet est d’une grande envergure et s’étend sur une année et demie. L’équipe a donc pour but de léguer le projet au groupe Robotique UdeS à la fin de sa réalisation pour que celui-ci puisse le bonifier et continuer de participer à la compétition pour les années à venir.

Puisque la compétition approche à grands pas, l’équipe est présentement en train de terminer les tests du prototype qui sera amené à la compétition le 13 août prochain. Nous avons très hâte de représenter l’Université de Sherbrooke et de voir comment le rover sur lequel on travaille depuis quelques mois performera. Après la compétition, la session d’automne nous laissera le temps de perfectionner notre robot et d’assurer un transfert de connaissances pour le léguer au groupe technique. La version finale du projet sera présentée à L’Expo Méga GÉNIALE au mois de décembre 2021. 

Zeus V0: Un premier prototype fonctionnel

Zeus V0 : Un premier prototype fonctionnel 

Zeus V0 : Un premier prototype fonctionnel

L’équipe de projet de fin de baccalauréat en robotique, Zeus, est composée de 10 finissants en génie de l’Université de Sherbrooke. Notre objectif est de construire un astromobile (Rover) dans le but de participer à la Canadian International Rover Challenge.

À ce jour, l’équipe de Zeus est fière de présenter son premier prototype fonctionnel! Les prochaines étapes seront de travailler sur une version plus robuste pour faire des tests plus exhaustifs, et ainsi avoir un Rover prêt pour la compétition au mois d’août. À la suite de la compétition, nous améliorerons davantage notre Rover et le présenterons à l’Expo MegaGénial de la faculté de génie.

Ultimement, l’équipe de Zeus désire assurer la continuité du projet en le léguant aux nouvelles cohortes de Robotique UdeS. En plus de laisser son Rover aux nouveaux étudiants, Zeus prévoit aussi diffuser toute sa démarche de conception. Le but est de transmettre les connaissances acquises durant le projet et d’encourager des futurs ingénieurs et ingénieures qui voudraient entreprendre des projets semblables.

Mars 2021
Prototype V0
Nous avons assemblé une première version de notre Rover afin de faire une première intégration de toutes ses composantes. Cette démarche a été très éducative et nous a permis de décerner des problèmes très tôt dans notre conception.
Mars 2021
Avril 2021
Prototype V1: Améliorations
Suite à une première intégration des composantes, nous travaillons maintenant sur des améliorations pour rendre le tout plus robuste. Une version améliorée sera prête assez vite afin de faire des tests plus exhaustifs.
Avril 2021
Mai 2021
Prototype V2: Prêts pour la CIRC!
Puisque toute l'équipe sera en stage à l'été 2021, nous souhaitons que notre Rover soit prêt pour la compétition CIRC à la fin de la session scolaire, soit avant le début du mois de mai, et ce, même si la compétition a lieu seulement en août. C'est un défi de taille, mais nous croyons être en mesure de le relever.
Mai 2021
Août 2021
Prototype V3: Exposition MégaGéniale
La compétition nous aura permis de détecter les failles dans notre conception. Nous travaillerons pour les améliorer durant l'automne et présenterons une version finale de notre prototype à l'exposition MégaGéniale!
Août 2021

La conception d’un rover est un défi d’ingénierie de taille. Un rover est un système robotique complexe, qui englobe plusieurs domaines, soient la mécanique, l’électrique et l’informatique. Afin de répartir la charge de travail parmi notre équipe multidisciplinaire, nous avons divisé le rover en plusieurs modules. Cette manière de procéder s’est avérée très efficace, nous permettant de travailler en parallèle selon nos expertises. Cependant, il ne faut pas négliger le travail d’intégration qui doit être fait afin de s’assurer que toutes les composantes interagissent de manière harmonieuse. C’est pour cette raison que nous nous sommes fixé plusieurs jalons. Cette démarche itérative nous permet d’avoir des versions complètes du rover périodiquement et de confirmer que les systèmes fonctionnent bien ensemble. Voici les modules qui composent notre rover: Le châssis, la propulsion, le bras, la puissance, le contrôle et les sciences. Dans cet article, nous présentons le rôle de chaque module ainsi que son état actuel à notre V0.

Châssis

Le châssis est le module qui joue en quelque sorte le rôle de squelette du rover, car c’est lui qui contient tous les autres modules en plus de jouer un rôle structurel important. Pour cette version-ci du châssis, la structure a été construite à l’aide d’extrusions d’aluminium. Ce choix apporte comme avantages de bonnes propriétés mécaniques telles que la rigidité ainsi qu’une simplicité à y intégrer les autres modules. Pour les versions subséquentes du rover, l’équipe va miser sur un design qui optimisera la légèreté du châssis en changeant sa géométrie ainsi que les matériaux qui le composent.

Propulsion

Le module propulsion permet au rover de se déplacer et de traverser des obstacles. La propulsion contient un différentiel, une suspension, des roues et des moteurs. La suspension et le différentiel forment un mécanisme rocker-bogie similaire à celui du rover Persévérance récemment envoyé sur Mars par la NASA. Cette suspension permet alors au rover de surmonter des obstacles de 50 cm tout en gardant un contact au sol optimal pour chacune des roues. On cherche à innover au niveau des roues en créant nos propres roues imprimées 3D, déformables et en forme de nid d’abeilles. Les roues, sans air, sont alors insensibles aux crevaisons et possèdent une très bonne adhérence au sol.

Bras

Afin de réaliser des tâches de dextérité et de manipulation, nous avons doté notre rover d’un bras robotique à 5 degrés de liberté. Ce dernier va permettre de soulever une charge utile allant jusqu’à 3kg tout en manipulant des boutons, des leviers et même des touches de clavier. Des caméras vont être positionnées à des endroits stratégiques sur le bras afin de permettre au pilote de téléguider le bras à distance de manière précise. Pour l’accompagner, une simulation en temps réel sera également à sa disposition pour aider la réalisation des différentes tâches de la compétition.

Puissance

Le module de puissance assure l’alimentation électrique des différentes composantes électriques des autres modules. Le rover comporte une douzaine de moteurs DC entre 12V et 24V. Le module de puissance doit aussi alimenter plusieurs composantes électriques reliées à la communication entre le rover et la station de contrôle. Pour assurer notre sécurité et celle des composantes, plusieurs dispositifs de sécurité ont été ajoutés. En effet, la batterie est dotée d’un système de contrôle permettant une stabilisation sécuritaire et toutes les composantes sont protégées par des fusibles. Ces systèmes de protection garantissent un maximum de sécurité.

Contrôle

Le module contrôle englobe toute la programmation du rover ainsi que le système de communication avec la station de contrôle. À présent, nous avons développé toute une infrastructure de téléopération manuelle sur ROS et nous avons mis en place un système de communication sans-fil pour téléopérer et monitorer le rover à distance. Nous débutons présentement le développement de fonctionnalités plus complexes afin d’ajouter de l’autonomie à notre rover. Nous avons également créé une simulation dans le but de pouvoir développer et tester tout ce que nous faisons avant de le faire fonctionner sur le rover réel.

Sciences

Le module sciences permettra au rover de récolter des échantillons du sol lors de ses missions. Ces échantillons pourront également être analysés une fois le rover revenu à la station de contrôle afin d’étudier leur composition et leurs caractéristiques. Pour accomplir ces tâches, le module sciences aura un mécanisme de prise d’échantillons ainsi qu’un moyen de les stocker. Nous avons exploré plusieurs concepts pour réaliser ce module et un premier prototype est encore en développement.

L’intégration de tous ces modules a été un gros défi pour l’équipe et nous sommes très fiers du résultat. Notre version V0 nous a permis d’identifier les lacunes de notre conception très tôt et nous travaillerons maintenant pour les améliorer. Nous avons très hâte de nous rendre à la CIRC pour mettre Zeus à l’épreuve ainsi que de présenter notre prototype final à l’exposition MégaGéniale. Finalement, de la part de toute l’équipe, nous aimerions remercier nos commanditaires, nos mentors, et tous ceux qui nous épaulent dans ce projet de près ou de loin. C’est une expérience énormément enrichissante et formatrice d’avoir la chance de participer à un projet de cette envergure. Merci et à très bientôt!

ROS : Robot Operating System

ROS : Robot Operating System 

ROS : Robot Operating System

Aujourd’hui, lorsqu’on parle de développement robotique, ROS est devenu un incontournable. Cette plateforme open-source facilite l’intégration des différents modules logiciels qui constituent un système robotique et propose un standard pour la communauté de développeurs.

Issu d’un projet du Stanford Artificial Intelligence Laboratory, ROS a initialement été développé en 2007. Le projet est né dans le but de répondre au besoin d’avoir un moyen de relier tous les processus logiciels qu’un système robotique peut contenir. Mais pourquoi est-ce qu’un tel outil est nécessaire?

Typiquement, un robot est composé de 3 principaux types de modules: la perception, la planification et le contrôle.

Perception

Avant de pouvoir interagir avec son environnement, le robot a besoin de le comprendre. Cela peut nécessiter une grande quantité de capteurs, selon la tâche que le robot doit accomplir. Par exemple, une voiture autonome peut utiliser des caméras, des LIDAR, des GPS, des centrales inertielles, etc.

Planification

Ensuite, une fois que le robot comprend ce qu’il se passe autour de lui, il doit prendre des décisions et utiliser l’information qui lui est présentée pour agir de manière optimale. Si on reprend notre voiture autonome, celle-ci doit savoir comment réagir si elle détecte un piéton qui se trouve devant elle!

Contrôle

Finalement, le robot doit être en mesure d'exécuter les actions qu’il a déterminé comme étant optimales. Cela signifie de convertir des commandes abstraites en action concrètes qui auront des conséquences dans le monde réel, comme accélérer et freiner par exemple.

Par contre, ces 3 catégories de tâches englobent souvent une multitude de processus, qui ne fonctionnent pas nécessairement de façon linéaire et qui interagissent tous les uns avec les autres de manière complexe. C’est là que ROS entre en jeu. Il permet de suivre tous les modules (appelés des noeuds) et gère les transferts d’information entre eux.Suite aux premiers développements de ROS, Willow Garage, un incubateur de recherche robotique, a pris en charge le développement de la plateforme et a contribué grandement à sa croissance. La communauté open-source de ROS compte aujourd’hui un grand nombre de contributeurs à travers le monde.

Comment ça fonctionne?

Le nom Robot Operating System peut porter à confusion. En fait, ROS n’est pas un système d’exploitation en soi, comme le sont Windows et Linux par exemple. C’est plutôt un middle-ware, une plateforme qui offre une abstraction pour faciliter l’interaction et la communication entre différents processus qui peuvent être indépendants et même rouler sur des machines différentes.L’idée générale derrière ROS est qu’ils s’agit d’un système distribué. Chaque noeud fonctionne de manière indépendante, mais se rapporte au master, qui coordonne les interactions.

Le master accomplit plusieurs tâches. Il accorde aux noeuds des noms uniques, et garde un registre des canaux de communications entre ceux-ci. Le master met ce registre à la disposition des noeuds, qui sont ensuite capables de communiquer entre eux de manière peer-to-peer une fois qu’un premier contact est établi.

La communication inter-noeuds peut se faire de différentes manières. Les deux mécanismes les plus utilisés sont les topics et les services.

D’une part, les topics sont des canaux de communication ayant chacun un identifiant unique. Ils permettent aux noeuds de se transmettre des messages sous forme de publisher/subscriber. Il n’y a donc pas de notion d’expéditeur ni de destinataire. Tous les noeuds du système ont accès à l’information qui est envoyée par des topics.

D’autre part, il y a les services. Ceux-ci permettent de faire des appels de procédures à distance entre les noeuds. Les données circulent sous forme de messages et ont des formats qui sont préétablis par le noeud qui offre le service en question.

Outils

En plus de ses fonctionnalités de base, ROS offre plusieurs outils pour faciliter le développement de systèmes robotiques.

rqt

L’outil rqt est une interface utilisateur modulable. C’est une plateforme qui gère le déploiement de plugins basés sur Qt. Certains plugins de base sont fournis par ROS et il est aussi possible de développer des modules personnalisés.

rqt_graph

Un des plugins fournis par ROS qui est très utile est rqt_graph. Il s’agit d’une interface qui permet de visualiser les noeuds actifs ainsi que les transferts d’information entre ceux-ci. C’est un excellent outil pour déboguer un programme ROS et valider son bon fonctionnement.

rviz

L’outil rviz (ROS Visualization Tool) est un outil de visualisation 3D très puissant. Il permet de visualiser les données provenant de capteurs, qu’ils soient réels ou simulés, ainsi que le modèle du robot lui-même. Ceci est très utile pour comprendre le comportement du robot selon ce qu’il voit à travers ses capteurs. Par exemple, on peut voir en temps réel des points détectés par un LIDAR en 3D et valider que les actions du robot respectent le comportement désiré.

Gazebo

Gazebo, pour sa part, est un simulateur. Il permet de créer des modèles de robots ainsi que des scénarios et des environnements réalistes qui respectent les lois de la physique. Il est également possible de simuler tous types de capteurs. C’est un outil idéal pour tester ses algorithmes avant de les déployer sur un robot réel.

Installation

Maintenant que vous connaissez ROS, il est temps de commencer à l’utiliser. La plateforme officiellement supportée pour son utilisation est Ubuntu, mais il est également possible de l’installer sur d’autres distributions de Linux. Présentement, la version la plus récente de ROS pour laquelle du support à long terme est offert est ROS Melodic, conçu pour Ubuntu 18.04.

L’installation est très bien détaillée ici et se fait assez facilement. Ensuite, il faut configurer son environement de travail en suivant ces étapes, puis tout est prêt pour commencer à développer. De très bons tutoriels sont également disponibles pour tous les niveaux.

Conclusion

Bien que ROS soit extrêmement utile pour le développement de systèmes robotiques, il peut aussi être difficile à maîtriser au départ. Son utilisation nécessite certainement de bonnes connaissances de base du système d’exploitation Linux, puis, idéalement, des bases du fonctionnement de systèmes réseau. Heureusement, le wiki et les tutoriels offerts sont assez utiles. Et bien sûr, comme pour tout logiciel, il y a aussi beaucoup de ressources disponibles en ligne.J’espère que cet article vous a permis de mieux comprendre ce qu’est ROS et comment il fonctionne. Si les projets de Robotique UdeS vous intéressent, ou si vous voulez simplement discuter de robotique, n’hésitez pas à nous contacter, nous sommes toujours ouverts à de nouveaux défis!

Sources

Nous aimerions remercier tous nos commanditaires, sans qui nos activités ne seraient pas possibles. Nous vous sommes très reconnaissants. Merci de nous permettre de réaliser des projets concrets, d’avoir un impact sur la communauté, et de nous épanouir tout en nous développant personnellement et professionnellement. 

Un merci tout particulier à Merkur grâce à qui nous pouvons redonner davantage a la communauté.