IMA4 2017/2018 P25 : Essaim de Robots : Différence entre versions
m (→Feuille d'heures) |
m (→Feuille d'heures) |
||
Ligne 402 : | Ligne 402 : | ||
| 5 | | 5 | ||
| 4 | | 4 | ||
− | | | + | | 6 |
| | | | ||
| | | | ||
Ligne 416 : | Ligne 416 : | ||
| 2 | | 2 | ||
| 1 | | 1 | ||
− | | | + | | 1 |
| | | | ||
| | | |
Version du 22 février 2018 à 18:54
Sommaire
Présentation générale
Projet réalisé par : Benjamin Canu et Ganix Etcheguibel.
Description
Dans ce projet nous devons concevoir des mini-robots qui se comportent comme un essaim. Le principe de l'essaim se base sur les règles d'autonomie et de faible intelligence de chaque individu, ainsi que sur un faible de cout de production à l'individu et une robustesse à la variation de ceux-ci dans le groupe :
- Autonomie énergétique, sensorimotrice et décisionnelle.
- Faible intelligence : Aucune (ou très peu de communication), aucune connaissance de l'environnement global ou de l'ensemble du groupe, interactions uniquement avec l'environnement local.
Pour notre projet, nous prendrons comme but de réaliser la cartographie d'une pièce intérieure (sol plat et lisse, pas de perturbation).
Objectifs
- Adaptation du châssis et de la carte électronique fournie à partir d'un ancien projet IMA.
- Mise en place, sur ce châssis, de capteurs et LEDs.
- Programmation des algorithmes de calcul des robots pour le maintient de la distance dans l'essaim, et l'évitement des obstacles.
- Ajout des dispositifs nécessaires à la prise de mesure pour la cartographie.
Analyse du projet
Analyse du premier concurrent
Projet de robots vibrants développé à l’Université d’Harvard, est un ensemble de 1024 robots montés sur des tiges vibrantes, se plaçant sur le sol selon la forme donnée en image-ordre.
Ce groupe de robots permet la réalisation de figures complexes au sol, cependant leur moyen de mobilité fixe une vitesse fortement réduite (11h/forme) et donc n’est pas vraiment adaptée à l’analyse d’une pièce.
https://theconversation.com/thousand-robot-swarm-assembles-itself-into-shapes-30548
Analyse du second concurrent
Projet de drones volants, par GRASP Lab à l’Université de Pennsylvanie est un essaim de drones volants pouvant réaliser des figures, mouvements et organisations complexes.
Les drones permettent, si munis de caméra, de visualiser la pièce grâce à une vue de dessus rapide à mettre en place. Cependant cette vision de la cartographie n’est pas identique, car elle ne donne pas les même informations que les drones roulants (e.g.: un table vue de dessous est quatre pieds, vue de dessus elle est un rectangle). De plus, les drones peuvent cartographier en présence de personnes, si un traitement poussé est effectué en suite, mais il ne peuvent opérer dans une salle où l’air n’est pas stable.
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.423.203&rep=rep1&type=pdf
Scénario d'usage du produit ou du concept envisagé
Ces robots pourront être utilisés pour la cartographie de salles en intérieur.
Leur déploiement permettra ainsi, lors de l’évitement, d’enregistrer la position et la forme des obstacles et différents objets entreposés sans en connaître au préalable les paramètres.
Réponse à la question difficile
Aucune question difficile n'a été abordée lors de la présentation.
Préparation du projet
Choix techniques : matériel et logiciel (Ici pour deux robots)
Information sur le projet
Microprocesseur
Les robots devant effectuer différentes tâches en parallèle (Déplacement, Envoi de trame infra-rouge, réception de trame infra-rouge), nous avons intégré la bibliothèque FreeRTOS dans l'Arduino afin que celui-ci agisse comme un OS.
InfraRouge
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour assurer au maximum l'intégrité du message reçu, on y intègre des bits de stuffing (une inversion de bits tous les n bits similaires de suite), ainsi qu'un bit de parité en fin.
Comme on doit recevoir l'identifiant entier, on enverra n+1 bits de start. On s'assure ainsi, qu'on ne lit pas le message à partir de la moitié de la trame. Les bits de stuffing seront utilisés dans l'identifiant du robot. Ainsi, si on reçoit n+1 bits à l'état haut, cela signifie que l'on n'est pas dans les données, mais alors au début du message.
Dans la réception, on attend une interruption du capteur IR, une fois activée, le microprocesseur active la tâche s'occupant de la réception Infra-rouge. Celle-ci va vérifier si les n+1 premiers bits sont des bits de start. Si c'est le cas, alors on récupère l'Id du robot tout en vérifiant les bits de stuffing et le bit de parité. Si ces bits de vérification définissent une erreur dans le message, alors le robot rejette le message et attend le prochain.
Carte Électronique
Notre but, ici, était d'étudier et re-travailler une carte électronique déjà réalisée (Projet Peip Module IMA). Nous avons ainsi travaillé sous Fritzing afin de s'adapter au mieux au fichier existant. Afin de réaliser les fonctions désirées, la carte électronique se compose :
-d'un microprocesseur Atmega328. -de 3 capteurs Infra-rouge (TSOP) ainsi que d'un émetteur-recepteur ultrason afin de repérer les autres robots ainsi que les obstacles. -d'une LED infra-rouge afin d'être visible. -de deux servomoteurs pour assurer les déplacements. -d'une alimentation. -d'une partie gérant la liaison USB.
Liste des tâches à effectuer
- Étude Électronique
- Étude de la communication infrarouge
- Évaluation de la faisabilité.
- Étude de la modulation/démodulation.
- Détermination du circuit électronique correspondant.
- Création de la carte Électronique.
- Étude de la communication infrarouge
- Étude informatique : programmation en C
- Communication infrarouge
- Émission des trames d’identification.
- Réception des trames et analyse.
- Programmation en C
- Implémentation de FreeRTOS dans l'Arduino.
- Contrôle des moteurs.
- Algorithmie primaire (suivre, s'orienter..).
- Programmation sur un moteur de jeu pour simulation (Unity3D : C#, ou Godot).
- Communication infrarouge
Feuille d'heures
Tâche | Prélude | Heures S1 | Heures S2 | Heures S3 | Heures S4 | Heures S5 | Heures S6 | Heures S7 | Heures S8 | Heures S9 | Heures S10 | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Analyse du projet | 6 | 4 | / | / | / | / | / | / | / | / | / | 10 |
Étude de la communication infrarouge et des moteurs | / | 6 | / | 1 | / | / | / | / | / | / | / | 7 |
Implémentation de FreeRTOS dans l'Arduino | / | / | 2 | / | 3 | / | ||||||
Développement en C de la communication infrarouge | / | 3 | 2 | 4 | 1 | 4 | ||||||
Programmation du contrôle des moteurs | / | / | 3 | / | / | / | ||||||
Programmation de l'algorithmie des robots | / | / | 3 | / | / | / | ||||||
Étude et Conception de la carte électronique | / | / | / | 1 | 5 | 4 | 6 | |||||
Modélisation 3D du robot en CAD | / | / | 5 | 2 | 2 | 1 | 1 | |||||
Programmation pour simulation | / | / | 6 | / | / | / | ||||||
Total |
Déroulement du projet
Semaine 2
Arduino
Programmation de l'envoi en série de l'identifiant du robot sur la LED L.
Implantation de FreeRTOS
Moteurs et Algorithmie
Mise en place du programme de contrôle des moteurs et développement d'une base de programmation pour les robots.
Modélisation 3D
Conception en CAD sur Onshape de la coque du robot dans le but d'une impression 3D.
Simulation
Développement d'une simulation des robots sur le moteur de jeu Unity3D.
Projet mis à l’écart suite à une réévaluation des priorités.
Semaine 3
Arduino
Programmation de la réception en série de l'identifiant.
Rajout des bits de stuffing.
PCB
Récupération du fichier déjà existant, mise en place de l'environnement logiciel.
Semaine 4
Arduino
Correction de problèmes du projet FreeRTOS.
PCB
Analyse et étude de la carte électronique existante.
Semaine 5
Arduino
Synchronisation de l'envoi et réception des trames par sémaphore.
PCB
Modification de la carte et adaptation au projet en cours.