IMA3/IMA4 2021/2023 P12 : Différence entre versions

De Wiki de Projets IMA
Ligne 40 : Ligne 40 :
 
Ce projet se déroule sur un ensemble de 3 semestres au bout desquels les robots devront présenter les fonctions suivantes : (insérer tableau des fct)
 
Ce projet se déroule sur un ensemble de 3 semestres au bout desquels les robots devront présenter les fonctions suivantes : (insérer tableau des fct)
  
 
==Description==
 
  
 
=<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 80%; background: #4C3081; vertical-align: top; width: 98%;">'''Réalisations et résultats'''</div>=
 
=<div class="mcwiki-header" style="border-radius: 15px; padding: 10px; font-weight: bold; color: #FFFFFF; text-align: center; font-size: 80%; background: #4C3081; vertical-align: top; width: 98%;">'''Réalisations et résultats'''</div>=

Version du 13 mai 2023 à 11:08

Présentation du Projet

Contexte

Collaboration de deux robots pour la gestion d'un entrepôt :

Dans le cadre de notre projet ingénieur, nous avions choisi pour sujet la “Conception et commande d'un robot élévateur” dont le but était de concevoir un robot élévateur que nous imaginions parfaitement s'intégrer dans un entrepôt pour soulever des charges et qui pourrait coopérer avec un autre. Cependant, après analyse, nous avons constaté que quelques prototypes existaient déjà or nous tenions à ce que notre projet puisse être une réelle valeur ajoutée ce qui nous a amené à revoir nos plans. Il se trouve que l'un des problèmes des entrepôts concerne la sécurité puisqu'on compte plusieurs cas d'accidents mortels chaque année.

Afin de pouvoir apporter plus de sécurité au sein des entrepôts et de rendre plus efficace le traitement des marchandises, nous avons décidé qu'il serait plus intéressant de concevoir 2 robots légèrement différents et qui coopéreraient entre eux. Nous avons donc décidé de nous concentrer sur la communication entre les robots à partir de modèles déjà existants. Nous avons alors redéfini notre projet comme suit : “Collaboration de deux robots pour la gestion d'un entrepôt”.

Ainsi, nous voulons faire communiquer deux robots autonomes que nous pourrions intégrer par la suite dans des entrepôts en plus grande quantité, dans le but de rendre ceux-ci automatisés. Le premier robot serait un robot élévateur capable de soulever et déplacer des charges tandis que le second serait un robot transporteur de charges d’un point A à un point B.


Objectifs

Etudes du projet

Tout d’abord, pour déterminer les objectifs de notre projet, nous sommes passés par une phase d’études en amont dans le but d’affiner notre idée principale. Nous en avons réalisé plusieurs, dont une étude d’opportunité et un état de l’art.

Tout d’abord, la pertinence de notre solution, la communication entre deux robots autonomes, nous a été confirmée par une étude d’opportunité que nous avons pu réaliser. Celle-ci nous a permis de définir concrètement le contexte dans lequel nous réalisions notre projet et dans lequel il pourrait s’exprimer. Une analyse de la situation actuelle dans le monde de l'industrie et comment pouvoir résoudre le problème principal, à savoir, rendre les entrepôts automatisés et plus sécurisés tout en gardant une efficacité dans la réalisation de la tâche. En effet, dans un contexte où il est nécessaire de répondre aux besoins des consommateurs de manière efficace, l'intérêt de voir apparaître des entrepôts autonomes est un gage de rapidité et de fiabilité.

Cependant, au fur et à mesure que nous avancions dans la conception de notre projet, nous ressentions le besoin de savoir si notre projet n’existait pas déjà ou s’il n’était pas tout simplement inutile car personne ne recherchait ce type de technologie. Cela nous a donc poussé à mener un travail de recherche sur ce qui existait déjà et sur les besoins dans les entrepôts à travers un état de l’art et une étude de marché. L’état de l’art nous a permis de faire le lien entre ce que nous souhaitions mettre en place avec nos robots et les différents mécanismes déjà utilisés dans le monde de l'industrie. En parallèle, l’étude de marché que nous avons réalisée nous a permis d’avoir une idée plus concrète de ce qui était recherché dans le secteur de l’industrie.

Une fois l’idée générale de notre projet détaillée, nous avons commencé une réflexion sur les fonctions nécessaires aux deux types de robots que nous voulions faire communiquer..

Pour cela, nous avons tout d’abord schématisé au travers de différents diagrammes les fonctionnalités de nos robots dans une analyse fonctionnelle afin d’exprimer le problème actuel des entrepôts et d’y trouver une solution. Cela nous a par la suite mené à rédiger le cahier des charges, à travers lequel nos objectifs sont clairement définis. Nous avons tout d’abord réalisé des diagrammes APTE pour déterminer le besoin auquel répond notre solution. (insérer diagramme APTE)

Cahier des Charges

Dans le cadre de l’industrie du futur, l’industrie 4.0, nous pouvons imaginer des entrepôts de plus en plus automatisés, avec moins de présence humaine, tout en restant rapide et fiable dans le traitement des charges, des marchandises. Ces entrepôts seraient peuplés de robots réalisant les tâches actuellement réalisées par les manutentionnaires qui sont souvent pénibles et répétitives.

L’objectif de notre projet est de concevoir un prototype échelle quasi-réelle de robots autonomes collaborant entre eux dans le but idéal de pouvoir gérer les marchandises de tout un entrepôt en imaginant d’autres robots collaborant avec eux. C’est un projet d’une échelle TRL 5.

Le premier robot serait un chariot élévateur automatique et le second serait un robot transporteur de charges appelé “robot train”. Le robot élévateur déposera des palettes, des charges sur le robot train. Ce dernier, une fois chargé en charges, les amènera à un point final. Le robot train se déplacerait dans l'ensemble de l'entrepôt et s'arrêterait à des "stations" auxquelles le robot élévateur lui amènerait des charges. Après avoir chargé un certain nombre de charges, il les amènerait à un point final. Dans le cadre d’un projet TRL 5, nous souhaitons mettre en place une “maquette”, un environnement spécifique dans lequel se déplaceront les robots avec différentes lignes au sol déterminant : les limites à ne pas dépasser, les stations du robot train. Ce projet se déroule sur un ensemble de 3 semestres au bout desquels les robots devront présenter les fonctions suivantes : (insérer tableau des fct)


Réalisations et résultats

Après avoir mis en place notre plan d'action pour les semestres S7 et S8 et avoir établi notre diagramme de Gantt, nous nous sommes attaqués à la seconde phase de notre projet. Tout d'abord, on souhaite utiliser les Robotinos, un Robotino qui servira de "Robot Élévateur", l'autre sera utilisé comme Robot Train. Pour cela, on s'appuie sur 2 modèles de Robotinos présents dans l'école.

Robotino élévateur
Robotino Train

Si on prévoyait initialement de coder chaque Robotino avec le logiciel RobotinoView, nous nous sommes rapidement ravisés puisque il est impossible de faire communiquer les 2 robots via RobotinoView. Pour pouvoir faire communiquer les 2 mais aussi pour les coder, nous devons passer par ROS1 (ROS2 ne permettant pas de gérer les Robotinos). Il nous faut donc prendre en main ROS. C'est un logiciel très complet qui permet de réaliser tout ce que l'on souhaite faire pour nos robots tout en nous permettant de programmer ceux-ci en python, langage maîtrisé par chacun des membres du projet ou bien en C++. On dispose même d'un simulateur 3D, Gazebo, nous permettant d'aller très loin dans les tests. Sur le site officiel de ROS est disponible un tutoriel complet permettant de comprendre les grands principes notamment à l'aide de turtlesim, un outil créer spécialement pour comprendre ROS. Enfin, sur le wiki de Robotino est disponible des fonctions déjà faîtes en C++ permettant d'utiliser l'ensemble des fonctionnalités des Robots.


Ros
Turtlesim


Cependant, nous avons rencontré un problème majeur : ce code présent sur le wiki robotino nécessite l’installation de la bibliothèque API2, or l’installation de celle-ci ne peut être faîte sur les ordinateurs de l'école et ce même après une intervention extérieure. Ainsi il nous était impossible d’essayer le code présent sur le wiki. Bien qu'il existe d'autres façons de coder les Robotinos, en passant par MATLAB par exemple, nous avons fait le choix d'utiliser d'autres robots pour réaliser notre projet.


Nous sommes passé sur les robots KHEPERAS IV, dont 2 modèles sont présents dans l'école également. Bien que l'on doive revoir légèrement notre cahier des charges, ces robots présentent quelques avantages. En effet, ils sont de plus petites taille que les Robotinos, plus pratiques pour nos démonstrations. De plus, on peut les coder en C ce qui est très avantageux pour nous puisque c'est un langage que l'on maîtrise bien contrairement au C++. Enfin, pour la communication entre les 2, nous n'aurons plus à utiliser ROS, nous utiliserons un Routeur D-link pour connecter les 2 robots sur un même réseau et les faire communiquer.

Jusqu'à présent, nous avons réussi à nous connecter sur les KHEPERAS IV en USB via le programme de communication série minicom et à lancer un code test depuis le robot nous permettant d'accéder à ses différentes fonctionnalités.


Bilan

Gestion de Projet

Outils Gestion de Projet

- Google Drive

- Diagramme de Gantt

- Plan d'action

Matériel de l'école utilisé

- Robotino (anciennement)

- Robots Khepera IV (anciennement)

- Routeur D-Link (et son alimentation) (anciennement)

- TurtleBot3 Burger