IMA3/IMA4 2021/2023 P12

De Wiki de Projets IMA
Révision datée du 18 janvier 2023 à 19:10 par Adeletan (discussion | contributions) (Gestion de Projet)

Résumé

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

L’objectif de notre projet est de faire communiquer deux robots autonomes que nous pourrions intégrer par la suite dans des entrepôts dans le but de rendre ceux-ci automatisés. Le premier robot sera un robot élévateur capable de soulever et déplacer des charges tandis que le second sera un robot transporteur de charges, dénommé "robot train". Le robot train se déplacera dans l'ensemble de l'entrepôt et s'arrêtera à des "stations" auxquelles le robot élévateur lui amènera des charges. Après avoir chargé un certain nombre de charges, il les amènera à un point final.

Présentation générale

Contexte

Notre projet initial était de concevoir un robot élévateur que nous imaginions parfaitement s'intégrer dans un entrepôt pour soulever des charges. 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.

Objectif

Notre objectif premier est d'assurer une communication entre nos 2 robots pour que ceux-ci exercent une tâche qu'ils accompliront ensemble.

De là interviennent également d'autres objectifs, certains secondaires, tels que la programmation de nos 2 robots et la mise en place d'un environnement permettant de simuler la circulation au sein d'un entrepôt.

Description

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

- Mise en place d'un futur repository Git

Matériel utilisé

- Robotino (anciennement)

- Robots Khepera IV

- Routeur D-Link (et son alimentation)


Rapport 18/01/23

- Connexion via WiFi (grâce au routeur) à un des khepera et possbilité de lui envoyer des fichiers - Impossibilité de se connecter en USB au deuxième khepera pour une raison inconnue mais la coonnexion WiFi n'a pas été testé. - Impossible d'exécuter des fichiers que l'on transfère au khepera.