Robots suiveurs : Différence entre versions

De Learning Lab Environnements Connectés
Sauter à la navigation Sauter à la recherche
(Méthodes utilisées)
 
(237 révisions intermédiaires par 8 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
=Éléments de notre projet=
 +
 +
[[Déroulement projet robots suiveurs|Déroulement du projet / phasage]]<BR>
 +
[[Instructable Robots suiveurs|Instructable Robot]] <br>
 +
[[Télémètres]]
 +
 
=Sujet=
 
=Sujet=
 
Nous proposons aux participants de créer et développer des robots connectés, sur le thème initial de robots suiveurs. Le scénario de départ fait intervenir un robot-maître, suivi de 2 robots en file indienne. Ce scénario est appelé à évoluer en complexité au fil de l'avancée du projet.
 
Nous proposons aux participants de créer et développer des robots connectés, sur le thème initial de robots suiveurs. Le scénario de départ fait intervenir un robot-maître, suivi de 2 robots en file indienne. Ce scénario est appelé à évoluer en complexité au fil de l'avancée du projet.
  
Les robots seront développés sur des bases Stinger et Traxer qui embarquent une carte microcontrôleur qui gère la puissance et l'asservissement. Le dialogue (envoi de commandes) avec cette carte se fait par liaison série TTL 5V. L'intelligence du robot et la communication sans fil sera gérée par Arduino Yùn.
+
Les robots seront développés sur des bases Stinger et Traxer qui embarquent une carte microcontrôleur qui gère la puissance et l'asservissement. Le dialogue (envoi de commandes) avec cette carte se fait par liaison série TTL 5V. L'intelligence du robot et la communication sans fil seront gérées par Arduino Yùn.
 
<BR>
 
<BR>
 
<BR>
 
<BR>
  
 
=Projet=
 
=Projet=
Participants : Charlotte, Safae, Léa, [[Utilisateur:Flora tran|Flora]], Jimmy, Mehdi, Cyril, Yoann, Axel.
+
Participants : [[Utilisateur:‎Charlotte milanetto|Charlotte]], [[Utilisateur:‎Safae HABSATI|Safae]], [[Utilisateur:Léa C.|Léa]], [[Utilisateur:Flora tran|Flora]], Jimmy, [[Utilisateur:El-azrak.mehdi|Mehdi]], [[Utilisateur:Cyril.maillot|Cyril]], [[Utilisateur:‎Boussit.yoann|Yoann]], [[Utilisateur:‎Axel lebreton|Axel]].
  
==Objectif==
+
==Objectif de départ==
 
*Avoir 3 robots qui se suivent.
 
*Avoir 3 robots qui se suivent.
 
*Obtenir la même distance entre les robots au départ et à l’arrivée.
 
*Obtenir la même distance entre les robots au départ et à l’arrivée.
  
 +
==Résultat final==
 +
Notre cahier des charges étant assez large et nous octroyant un degré de liberté relativement important, nous avons pu réaliser plusieurs fonctionnalités grâce à nos robots sans forcément réaliser la première idée évoquée (les robots suiveurs). <br> <br>
  
'''1ère solution évoquée''' : Robot maitre avec détection les autres sans, le maitre transmet l’itinéraire à suivre aux autres robots.
+
Voici ce que nous avons été capable de réaliser dans le temps qui nous était imparti :  
 
+
* Premièrement, l'interface Web permettant de piloter le mode de fonctionnement du robot de tête (ainsi que les commandes de direction et de stop).
''Problème'' : si vitesse différente des robots ça ne marchera pas.
 
 
 
 
 
'''2ème solution''' : le premier détecte et dit aux autres le parcours à suivre. Les deux autres suiveurs suivront le même parcours, ils auront cependant juste a veiller que la distance avec le robot de devant soit correct (sinon ils s’adapteront -> Accélérer/freiner).  
 
 
 
''Problème'' : nécessité de communiquer entre les robots.
 
 
 
 
 
==Communication entre les robots==
 
 
 
*1ère solution:
 
**Wi-Fi comme vu en première séance
 
**Ethernet
 
**Bluetooth
 
 
  
-> Choix de Wi-Fi car fiable et vu en première séance de projet.
+
[[Fichier:ihm.jpg|centré|Ihm pour contrôller notre robot]]
  
Solutions techniques apportées en « vrac » :
+
Plusieurs modes de fonctionnement existent.
 +
* Mode '''Manuel'''. Celui-ci nous permet de pouvoir piloter, à l'aide des flèches de notre clavier, le robot de tête. Le robot suiveur effectuera exactement les mêmes mouvements que le robot piloté.
 +
Pour ce mode, nous pouvons activer la CheckBox nous permettant de piloter seulement le robot de tête.<br>
  
*Utilisation de timers pour savoir combien de temps le robot doit rouler avant de s’arrêter.
+
*Mode '''Auto'''. Celui-ci nous permettra de voir le robot maître (de tête) éviter les obstacles se trouvant juste devant lui. Encore une fois le second robot imitera le moindre de ses mouvements. <br>
*Les roues du robot sont asservies. Le robot va faire en sorte d’atteindre la vitesse qu’on lui donnera.
 
  
==Résumé de la méthode à aborder pour le moment==
+
*Mode '''Danse'''. Les robots effectuent en synchronisation des mouvements pré-programmés uniquement sur le robot maître. Le robot esclave imitera le premier encore une fois.<br>
  
Le maître détecte l’obstacle et tourne sur place d’un côté, il communique ensuite aux autres robots la distance minimum à partir de laquelle les robots esclaves devront tourner si il détecte un obstacle.  
+
*Le bouton '''Stop''' sert à stopper tout mouvement des deux robots. <br> <br> <br>
  
'''Problèmes engendrés par cette méthode''' :
 
Pendant que le robot maitre tournera il est possible que les esclaves détectent le robot maitre en pleine manœuvre comme un obstacle et qu’il commence à tourner, ce qui décalerai le parcours du robot esclave car il n’était pas censé tourner avant de détecter l’obstacle.
 
  
  
'''Solutions envisagées''' (à étudier plus tard dans le projet) :  
+
Voici la vidéo finale de notre projet regroupant l'ensemble des fonctionnalités réalisées dans l'ordre expliqué ci dessus :
Pendant que le premier robot tourne les autres s’arrêtent/ralentissent et attendent un peu que le robot est terminé sa manœuvre de rotation. -> Cependant il faudra que les deux robots suiveurs rattrapent la distance perdue pendant qu’ils étaient à l’arrêt par la suite.
 
  
 +
{{#ev:youtube|https://youtu.be/baEcm0s0N3g}}
 +
<br>
 +
==Méthodes utilisées==
 +
Pour une explication plus détaillée de nos problèmes référez vous à la partie [[Déroulement_projet_robots_suiveurs|Déroulement projet (tout le travail effectué)]].
  
 +
===Nos Robots===
 +
Deux Robots identiques ont été utilisés pour réaliser notre projet. Le premier possède à l'avant 3 [[Télémètres]]<br> qui lui servent à détecter les obstacles présents devant lui.
 +
Le deuxième ne possède aucun capteur car il va simplement imiter à tout instant le robot maître.
  
'''Répartition du travail''' :  
+
==Communication entre les robots==
 +
Pour pouvoir effectuer une communication quasi instantanée entre nos robots nous avons décidé de gérer la connexion Wi-Fi en passant via un point d'accès (un routeur que nous avons configuré nous même pour ce projet : Voir [[Instructable Robot|Instructable]]). <br>
  
*On se divise le travail en trois groupes pour éviter de tous travailler sur la même chose.
+
Nous avons également choisi de gérer la communication Wi-Fi grâce à la partie Linux de notre carte Arduino. Ceci dû au fait que le microprocesseur Linux soit beaucoup plus rapide et performant que le processeur Arduino.
*Un groupe travaillera sur la communication entre deux cartes Arduino coté serveur
 
*Un autre groupe travaillera sur le robot maitre (mise en marche et détection d’obstacles)
 
*Un autre groupe travaillera sur la communication coté client
 
*Mise en commun des méthodes mises en place pour le calcul de la distance entre le capteur et l’objet pour arriver à une méthode la plus fiable possible de calcul de distance à l’aide des capteurs.
 
  
==Idées de développements ultérieurs==  
+
===Serveur Web===  
 +
La création d'une page Web nous a permis de générer une interface graphique agréable et facile d'utilisation. il suffit, une fois connecté au routeur, de taper l'adresse du robot maître dans la barre d'adresse du navigateur.
  
*Faire un parcours sans obstacles ou les robots ferait une chorégraphie et se rejoindrait tous à un moment donné.
+
==Améliorations possibles==
*Programmer les robots pour que le robot maitre, si jamais un robot est déplacé, puisse rappeler tout ses robots et qu’ils se remettent en place (PROBLÈME :  il faudrait un GPS -> Matériellement peut possible à réaliser pour le moment).
+
===Partie Software===
*Commande à distance pour ordonner une séparation par exemple puis il faut qu’ils se remettent tous en place.
+
Nous avons pensé à gérer l'ensemble du projet grâce au processeur Linux beaucoup plus performant (ce qui nous permettrait de gagner en temps de calculs).
  
Idées à approfondir peut être et/ou à étudier pour pouvoir réaliser un projet intéressant.
+
==Idées de fonctionnalités futures==
 +
* Nous aurions aimer pouvoir, avec un peu plus de temps, réaliser le cahier des charges de départ.
 +
* Pouvoir effectuer la même chose sur plusieurs robots à la fois (chorégraphie "géante").
 +
* Pouvoir améliorer la détection grâce à nos capteurs (ou changer de modèle).
 +
* Ajouter des capteurs sur les robots esclaves, ce qui entrainerait le fait qu'aucun robot ne puisse rentrer en collision avec des obstacles.
  
=Phasage=
+
[[Catégorie:TELECOM]]
 +
[[Catégorie:Arduino]]
 +
[[Catégorie:Arduino Yùn]]

Version actuelle datée du 11 mars 2020 à 11:44

Éléments de notre projet

Déroulement du projet / phasage
Instructable Robot
Télémètres

Sujet

Nous proposons aux participants de créer et développer des robots connectés, sur le thème initial de robots suiveurs. Le scénario de départ fait intervenir un robot-maître, suivi de 2 robots en file indienne. Ce scénario est appelé à évoluer en complexité au fil de l'avancée du projet.

Les robots seront développés sur des bases Stinger et Traxer qui embarquent une carte microcontrôleur qui gère la puissance et l'asservissement. Le dialogue (envoi de commandes) avec cette carte se fait par liaison série TTL 5V. L'intelligence du robot et la communication sans fil seront gérées par Arduino Yùn.

Projet

Participants : Charlotte, Safae, Léa, Flora, Jimmy, Mehdi, Cyril, Yoann, Axel.

Objectif de départ

  • Avoir 3 robots qui se suivent.
  • Obtenir la même distance entre les robots au départ et à l’arrivée.

Résultat final

Notre cahier des charges étant assez large et nous octroyant un degré de liberté relativement important, nous avons pu réaliser plusieurs fonctionnalités grâce à nos robots sans forcément réaliser la première idée évoquée (les robots suiveurs).

Voici ce que nous avons été capable de réaliser dans le temps qui nous était imparti :

  • Premièrement, l'interface Web permettant de piloter le mode de fonctionnement du robot de tête (ainsi que les commandes de direction et de stop).
Ihm pour contrôller notre robot

Plusieurs modes de fonctionnement existent.

  • Mode Manuel. Celui-ci nous permet de pouvoir piloter, à l'aide des flèches de notre clavier, le robot de tête. Le robot suiveur effectuera exactement les mêmes mouvements que le robot piloté.

Pour ce mode, nous pouvons activer la CheckBox nous permettant de piloter seulement le robot de tête.

  • Mode Auto. Celui-ci nous permettra de voir le robot maître (de tête) éviter les obstacles se trouvant juste devant lui. Encore une fois le second robot imitera le moindre de ses mouvements.
  • Mode Danse. Les robots effectuent en synchronisation des mouvements pré-programmés uniquement sur le robot maître. Le robot esclave imitera le premier encore une fois.
  • Le bouton Stop sert à stopper tout mouvement des deux robots.



Voici la vidéo finale de notre projet regroupant l'ensemble des fonctionnalités réalisées dans l'ordre expliqué ci dessus :


Méthodes utilisées

Pour une explication plus détaillée de nos problèmes référez vous à la partie Déroulement projet (tout le travail effectué).

Nos Robots

Deux Robots identiques ont été utilisés pour réaliser notre projet. Le premier possède à l'avant 3 Télémètres
qui lui servent à détecter les obstacles présents devant lui. Le deuxième ne possède aucun capteur car il va simplement imiter à tout instant le robot maître.

Communication entre les robots

Pour pouvoir effectuer une communication quasi instantanée entre nos robots nous avons décidé de gérer la connexion Wi-Fi en passant via un point d'accès (un routeur que nous avons configuré nous même pour ce projet : Voir Instructable).

Nous avons également choisi de gérer la communication Wi-Fi grâce à la partie Linux de notre carte Arduino. Ceci dû au fait que le microprocesseur Linux soit beaucoup plus rapide et performant que le processeur Arduino.

Serveur Web

La création d'une page Web nous a permis de générer une interface graphique agréable et facile d'utilisation. il suffit, une fois connecté au routeur, de taper l'adresse du robot maître dans la barre d'adresse du navigateur.

Améliorations possibles

Partie Software

Nous avons pensé à gérer l'ensemble du projet grâce au processeur Linux beaucoup plus performant (ce qui nous permettrait de gagner en temps de calculs).

Idées de fonctionnalités futures

  • Nous aurions aimer pouvoir, avec un peu plus de temps, réaliser le cahier des charges de départ.
  • Pouvoir effectuer la même chose sur plusieurs robots à la fois (chorégraphie "géante").
  • Pouvoir améliorer la détection grâce à nos capteurs (ou changer de modèle).
  • Ajouter des capteurs sur les robots esclaves, ce qui entrainerait le fait qu'aucun robot ne puisse rentrer en collision avec des obstacles.