{"id":6824,"date":"2021-06-10T10:37:47","date_gmt":"2021-06-10T09:37:47","guid":{"rendered":"https:\/\/telefab.fr\/?p=6824"},"modified":"2026-04-30T17:33:59","modified_gmt":"2026-04-30T15:33:59","slug":"robot-ia","status":"publish","type":"projet","link":"https:\/\/hub.imt-atlantique.fr\/fablab\/projet\/robot-ia\/","title":{"rendered":"Robot IA"},"content":{"rendered":"<p>Robot IA &#8211; Synth\u00e8se du projet CodeV<\/p>\n<p><u>I &#8211; Contexte\/Projet\/Equipe<\/u><\/p>\n<p>&nbsp;<\/p>\n<p>Dans un monde o\u00f9 la robotique et l\u2019intelligence artificielle sont en plein essor, il est int\u00e9ressant et n\u00e9cessaire d\u2019envisager des projets de petite envergure afin d\u2019acqu\u00e9rir les bases de ce domaine, tels que le machine learning. Ce projet consistant \u00e0 \u00e9quiper un petit robot motoris\u00e9 (plateforme JetBot) d\u2019une cam\u00e9ra et lui implanter un code lui permettant de m\u00e9moriser et parcourir diff\u00e9rents circuits adapt\u00e9s est alors parfait pour commencer son chemin dans le monde de la robotique et de l\u2019impl\u00e9mentation robotique.<\/p>\n<p>&nbsp;<\/p>\n<p>Les objectifs du projets sont donc essentiellement de prototyper \u00e0 taille r\u00e9duite ce qui pourra par la suite \u00eatre adapt\u00e9 \u00e0 taille r\u00e9elle en voiture autonome, avec un robot capable de se d\u00e9placer d\u2019un point A \u00e0 un point B de mani\u00e8re totalement autonome, tout en analysant son environnement (les panneaux, le marquage au sol&#8230;).<\/p>\n<p>&nbsp;<\/p>\n<p>L\u2019\u00e9quipe sur le projet est compos\u00e9e de 4 \u00e9tudiants de FISE A1 : Arthur Didier, Aymen Kallala, Violette Castells et Marianne Bellery. Celle-ci a \u00e9t\u00e9 guid\u00e9e et encadr\u00e9e par Sylvie Kerouedan et Nicolas Farrugia.<\/p>\n<p>&nbsp;<\/p>\n<p><u>II &#8211; R\u00e9alisation<\/u><\/p>\n<ul>\n<li>Environnement<\/li>\n<\/ul>\n<p>La cr\u00e9ation de l\u2019environnement est pass\u00e9e par la conception et l\u2019impression de panneaux. Les visuels ont tous \u00e9t\u00e9 cr\u00e9\u00e9s sur PhotoShop dans un style se rapprochant au maximum des panneaux de circulation r\u00e9els \u00e0 l\u2019\u00e9chelle du robot. Ils ont ensuite \u00e9t\u00e9 imprim\u00e9s sur du papier collant par les encadrants FabLab. La structure des panneaux a quant \u00e0 elle \u00e9t\u00e9 produite sur Tinkercad puis imprim\u00e9e gr\u00e2ce aux imprimantes 3D du FabLab.<\/p>\n\n<p>En parall\u00e8le le besoin d\u2019avoir une route modulable \u00e9tant \u00e9vident, celle-ci \u00e0 \u00e9t\u00e9 con\u00e7ue selon un syst\u00e8me de pi\u00e8ces de puzzle. De m\u00eame les visuels ont \u00e9t\u00e9 r\u00e9alis\u00e9s sur PhotoShop de mani\u00e8re \u00e0 \u00e9voquer clairement une route aux utilisateurs, puis imprim\u00e9s par le FabLab sur des papiers \u00e9pais selon un format 50cmx50cm.<\/p>\n\n<p>&nbsp;<\/p>\n<ul>\n<li>Code<\/li>\n<\/ul>\n<p>Le code s\u2019est divis\u00e9 en deux parties distinctes : l\u2019impl\u00e9mentation du suivi de la route et l\u2019impl\u00e9mentation de la reconnaissance des obstacles et limitations. La premi\u00e8re permettant au robot d\u2019avancer sur la route en limitant le franchissement des lignes continues blanches. La seconde faisant en sorte que le robot reconnaisse son environnement et agisse en fonction des objets qu\u2019il rencontre. Les types d\u2019objets \u00e9tant \u00e9galement en deux sous cat\u00e9gories : les obstacles et les panneaux de circulation.<\/p>\n<p>L\u2019impl\u00e9mentation du code est \u00e9galement pass\u00e9e par la collecte de donn\u00e9es.<\/p>\n<p>Quant aux obstacle l\u2019architecture de d\u00e9cision finale est la suivante :<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2021\/06\/Capture-d%E2%80%99%C3%A9cran-2021-06-08-%C3%A0-21.37.07.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6831 \" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2021\/06\/Capture-d%E2%80%99%C3%A9cran-2021-06-08-%C3%A0-21.37.07.png\" alt=\"\" width=\"724\" height=\"354\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>Validation<\/li>\n<\/ul>\n<p>Afin de valider les avanc\u00e9es du projet une liste de tests a \u00e9t\u00e9 r\u00e9alis\u00e9e. Les r\u00e9sultats de celle-ci sont pr\u00e9sent\u00e9s dans le tableau ci-dessous :<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2021\/06\/Capture-d%E2%80%99%C3%A9cran-2021-06-08-%C3%A0-21.55.36.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6837 \" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2021\/06\/Capture-d%E2%80%99%C3%A9cran-2021-06-08-%C3%A0-21.55.36.png\" alt=\"\" width=\"613\" height=\"352\" \/><\/a><\/p>\n<p><u>III &#8211; Composants de l\u2019ensemble environnement + robot<\/u><\/p>\n<p>Pour le robot :<\/p>\n\n<p>Le robot se basera sur la plate-forme Jetbot d\u00e9velopp\u00e9e par Nvidia. Avec notamment comme composants ceux du kit JetBot Nano et une batterie.<\/p>\n<p>Pour les pi\u00e8ces puzzles la structure g\u00e9n\u00e9rale est la suivante :<\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2021\/06\/image_2021-06-09_171726.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6840\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2021\/06\/image_2021-06-09_171726.png\" alt=\"\" width=\"151\" height=\"151\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><u>IV &#8211; Protocole d\u2019utilisation et sc\u00e9nario <\/u><\/p>\n<p>Sc\u00e9nario :<\/p>\n<p>L\u2019utilisateur souhaite que le robot se d\u00e9place d\u2019un point A \u00e0 un point B suivant une route avec des contraintes (marquage au sol, panneaux de signalisation&#8230;) appel\u00e9 ici environnement.<\/p>\n<ul>\n<li>L\u2019utilisateur pose le robot au sol dans cet environnement au point A. L\u2019utilisateur allume ensuite le robot qui devra alors parcourir le circuit de mani\u00e8re autonome.<\/li>\n<li>Si le robot arrive dans une impasse il devra soit faire demi-tour s\u2019il constate un espace suffisant pour l\u2019effectuer ou reculer jusqu\u2019\u00e0 l\u2019intersection pr\u00e9c\u00e9dente dont le choix a men\u00e9 \u00e0 l\u2019impasse afin de prendre une nouvelle route.<\/li>\n<li>Lorsque le robot rencontrera un obstacle, si l\u2019espace est suffisant pour passer alors le robot contournera l\u2019obstacle en laissant une distance minimale d\u20191 cm entre lui et l\u2019obstacle. Si l\u2019espace restant est trop petit alors le robot devra soit faire demi-tour soit reculer jusqu\u2019\u00e0 l\u2019ancienne intersection comme expliqu\u00e9 pr\u00e9c\u00e9demment dans le cas de l\u2019impasse.<\/li>\n<li>Lorsque le robot arrive au niveau d\u2019un passage pi\u00e9ton il adoptera une vitesse d\u2019avance r\u00e9duite.<\/li>\n<li>Lorsqu\u2019un pi\u00e9ton est sur le passage alors le robot devra s\u2019arr\u00eater \u00e0 au moins 1 cm du passage pi\u00e9ton.<\/li>\n<li>Lorsque le robot rencontre un des 4 panneaux obligatoires, il suivra l\u2019indication.<\/li>\n<li>Si un bug de reconnaissance d\u2019obstacle ou de prise de d\u00e9cision par le robot est constat\u00e9 par l\u2019utilisateur, celui-ci doit l\u2019arr\u00eater et le repositionner 10 cm en amont sur le circuit. Puis il indique par la proc\u00e9dure qui sera d\u00e9velopp\u00e9e et donn\u00e9e dans le mode d\u2019emploi, qu\u2019il y a une erreur afin que l\u2019algorithme d\u2019apprentissage puisse le prendre en compte.<\/li>\n<li>Une fois arriv\u00e9 au point B, le robot s\u2019arr\u00eate et l\u2019utilisateur \u00e9teint le robot.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><u>V &#8211; Perspectives et pistes d\u2019am\u00e9lioration<\/u><\/p>\n<p>Finalement, ce projet est vou\u00e9 \u00e0 \u00eatre transmis et am\u00e9lior\u00e9 par de futures \u00e9quipes. Nous avons effectivement fait en sorte de rentre le code le plus clair possible avec une architecture intuitive pour les diff\u00e9rentes parties.<\/p>\n<p>Pour poursuivre ce projet, il faudrait mettre en commun l\u2019ensemble du code (suivi de route et d\u00e9tection des objets), pour que le robot soit capable, sur un circuit complet, \u00e0 la fois d\u2019\u00e9viter les obstacles, de reconnaitre les panneaux et suivre la route. En effet, il est capable de tout faire mais chaque code fonctionne s\u00e9par\u00e9ment des autres. Cela devra aussi \u00eatre accompagn\u00e9 d\u2019une am\u00e9lioration de certains algorithmes afin de garantir un comportement plus robuste et plus juste dans les diff\u00e9rents cas d\u2019utilisation.<\/p>\n<p>De plus, on pourrait tenter de remplir les fonctions compl\u00e9mentaires que nous avions \u00e9voqu\u00e9es dans le cahier des charges. En particulier, les fonctions li\u00e9es \u00e0 l\u2019esth\u00e9tique du robot, au bruitage ainsi qu\u2019au rajout d\u2019options secondaires vis-\u00e0-vis de la circulation du robot sur une route. On pourrait aussi rajouter dans la base de donn\u00e9es de nouveaux obstacles et panneaux. Par exemple, on pourrait imaginer rajouter dans la base de donn\u00e9es des bonhommes, de diff\u00e9rentes tailles et formes mod\u00e9lisant les pi\u00e9tons. On pourrait aussi cr\u00e9er de nouveaux types de panneaux de circulation.<\/p>\n<p>Enfin, il serait aussi int\u00e9ressant d\u2019am\u00e9liorer les performances du robot, par exemple, son autonomie ou encore la puissance de ses moteurs.<\/p>\n","protected":false},"author":1,"featured_media":6830,"parent":0,"menu_order":0,"template":"","meta":{"_acf_changed":false,"footnotes":""},"categories":[15,20],"type_projet":[],"class_list":["post-6824","projet","type-projet","status-publish","has-post-thumbnail","hentry","category-formation","category-projets"],"acf":{"objectifs":"","categorie":false,"fichiers_associes":null},"_links":{"self":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet\/6824","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet"}],"about":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/types\/projet"}],"author":[{"embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":1,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet\/6824\/revisions"}],"predecessor-version":[{"id":10421,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet\/6824\/revisions\/10421"}],"wp:attachment":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/media?parent=6824"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/categories?post=6824"},{"taxonomy":"type_projet","embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/type_projet?post=6824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}