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

De Wiki de Projets IMA
(Réalisations et résultats)
Ligne 32 : Ligne 32 :
  
  
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.
+
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.
Cependant, nous avons rencontré un problème majeur : le code présent sur wikirobotino nécessite l’installation de la bibliothèque API2, or l’installation de celle-ci n’est pas disponible pour Unix sur le wiki. Ainsi il nous était impossible d’essayer le code présent sur le wiki.
+
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 avons donc décidé de ne plus travailler avec les Robotinos. Nous sommes passé sur les robots KHEPERAS IV. Afin de réaliser le connexion entre les robots, nous n'allons plus utiliser ROS.
 
 
 
 
 
 
 
  
  
  
 +
Nous sommes passé sur les robots KHEPERAS IV. Afin de réaliser le connexion entre les robots, nous n'allons plus utiliser ROS.
  
 
=<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%;">'''Bilan'''</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%;">'''Bilan'''</div>=

Version du 16 décembre 2022 à 12:25

Résumé

Communication entre des 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. 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. Afin de réaliser le connexion entre les robots, nous n'allons plus utiliser ROS.

Bilan

Gestion de Projet

Outils Gestion de Projet

- Google Drive

- Diagramme de Gantt

- Mise en place d'un futur repository Git

Matériel utilisé

- Routeur D-Link (et son alimentation)