IMA4 2017/2018 P25 : Essaim de Robots : Différence entre versions

De Wiki de Projets IMA
m (Feuille d'heures)
m
Ligne 432 : Ligne 432 :
 
|}
 
|}
  
=Documents Rendus=
 
  
=Programmation=
+
=Déroulement du Projet=
  
=Microprocesseur=
+
==Documents Rendus==
 +
 
 +
==Programmation==
 +
 
 +
==Microprocesseur==
  
 
Comme les robots devront effectuer plusieurs tâches en parallèle (Déplacement, Envoi de trame infra-rouge, réception de trame infra-rouge), On a intégré la bibliothèque FreeRTOS dans l'Arduino afin qu'il agisse comme un OS.
 
Comme les robots devront effectuer plusieurs tâches en parallèle (Déplacement, Envoi de trame infra-rouge, réception de trame infra-rouge), On a intégré la bibliothèque FreeRTOS dans l'Arduino afin qu'il agisse comme un OS.
  
=InfraRouge=
+
 
 +
==InfraRouge==
  
 
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour s'assurer au maximum, que le message reçu n'est pas été corrompu, on enverra des bits de stuffing (une inversion de bits tous les n bits similaires de suite), et on enverra un bit de parité à la fin du message.
 
Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour s'assurer au maximum, que le message reçu n'est pas été corrompu, on enverra des bits de stuffing (une inversion de bits tous les n bits similaires de suite), et on enverra un bit de parité à la fin du message.
Ligne 448 : Ligne 452 :
 
Dans la réception, on attend une interruption du capteur IR, une fois activée, l'interruption active la tâche s'occupant de la réception Infra-rouge. Celle-ci va checker les n+1 premiers bits, voir si ceux sont bien des bits de start. Si c'est le cas, alors on récupère l'iD du robot tout en checkant les bits de stuffing et le bit de parité.
 
Dans la réception, on attend une interruption du capteur IR, une fois activée, l'interruption active la tâche s'occupant de la réception Infra-rouge. Celle-ci va checker les n+1 premiers bits, voir si ceux sont bien des bits de start. Si c'est le cas, alors on récupère l'iD du robot tout en checkant les bits de stuffing et le bit de parité.
 
Si ces bits de vérification suggère une erreur dans le message, alors le robot rejette le message et attend le prochain.
 
Si ces bits de vérification suggère 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 éxistant.

Version du 6 février 2018 à 16:38


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)

Description Fabricant Référence Fabricant Fournisseur Quantité Lien fournisseur
Microcontrôleur Atmel ATMEGA328P-AU Farnell 2 http://fr.farnell.com/atmel/atmega328p-au/mcu-8bit-atmega-20mhz-tqfp-32/dp/1715486
Condensateur 100nF Multicomp MC0201X104K6R3CT Farnell 22 http://fr.farnell.com/multicomp/mc0201x104k6r3ct/condensateur-mlcc-x5r-100nf-6/dp/2320753
Condensateur 10uF Wurth Electronik 885012106006 Farnell 4 http://fr.farnell.com/wurth-elektronik/885012106006/condesateur-mlcc-x5r-10uf-6-3v/dp/2495147
Condensateur 22pF AVX 06036A220KAT2A Mouser 4 http://www.mouser.fr/ProductDetail/AVX/06036A220KAT2A/?qs=sGAEpiMZZMs0AnBnWHyRQKdiqyDPVQdATEC6RfUr2zQ%3d
Rectifier Diode Vishay Semiconductors GL34G-E3/83 Mouser 2 http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/GL34G-E3-83/?qs=sGAEpiMZZMutXGli8Ay4kH9ZXA1Qtv9UOwbhSBXDb18%3d
Quartz ECS ECS-160-20-3X-TR Mouser 2 http://www.mouser.fr/ProductDetail/ECS/ECS-160-20-3X-TR/?qs=sGAEpiMZZMvAbnEMxb34PZ9bYWrwSXiB
Quartz Epson TSX-3225 16.0000MF09Z-AC3 Mouser 2 http://www.mouser.fr/ProductDetail/Epson-Timing/TSX-3225-160000MF09Z-AC3/?qs=sGAEpiMZZMsBj6bBr9Q9acukpafrIaZ1%2fpqCtYImzz0%3d
Servo moteur Fitec RB-Fit-03 Robotshop 4 http://www.robotshop.com/eu/fr/micro-servomoteur-9g-48v.html
Blue LED KingBright APHB1608LVBDZGKC Mouser 4 http://www.mouser.fr/ProductDetail/Kingbright/APHB1608LVBDZGKC/?qs=sGAEpiMZZMseGfSY3csMkcwbVq2rhH5Mu7mYFMpmGAhvgXBy5N%252b7kA%3d%3d
Green LED KingBright APT1608SGC Mouser 4 http://www.mouser.fr/ProductDetail/Kingbright/APT1608SGC/?qs=sGAEpiMZZMseGfSY3csMkeytxqHAv00AcF6Dm1xSW98%3d
Red LED KingBright APHB1608ZGSURKC Mouser 2 http://www.mouser.fr/ProductDetail/Kingbright/APHB1608ZGSURKC/?qs=sGAEpiMZZMseGfSY3csMkdKNYmh3uDipxtOOfF4A5sw%3d
Yellow LED KingBright APT1608SYCK Mouser 2 http://www.mouser.fr/ProductDetail/Kingbright/APT1608SYCK/?qs=sGAEpiMZZMsQtlBhqKq43Wn3QbM4OLG1
Orange LED KingBright APTD1608SECK Mouser 2 http://www.mouser.fr/ProductDetail/Kingbright/APTD1608SECK/?qs=sGAEpiMZZMt82OzCyDsLFNLWq0AjqZj1Bh9swU8LC68%3d
White LED 6200K OSRAM Opto Semiconductors LW L283-Q1R2-3K8L-1-Z Mouser 2 http://www.mouser.fr/ProductDetail/OSRAM-Opto-Semiconductors/LW-L283-Q1R2-3K8L-1-Z/?qs=sGAEpiMZZMsgSGrx0WqTbPUyJ8s29bGV
LED Infrarouge Farnell OP290A Optek technology 4 http://fr.farnell.com/optek-technology/op290a/led-t-1-3-4/dp/1497872
Récepteur Infrarouge Vishay Semiconductors TSOP38238 Mouser 6 http://www.mouser.fr/ProductDetail/Vishay-Semiconductors/TSOP38238/?qs=sGAEpiMZZMvAL21a%2fDhxMtgKho2n4%2fgBkajAZHPY5lE%3d
Transistor Multicomp 2N2222 Farnell 2 http://fr.farnell.com/multicomp/2n2222/transistor-npn-boitier-to-18/dp/9206884
Circuit d'horloge Texas Instruments NE555 RS Online 2 https://fr.rs-online.com/web/p/timers/0526959/
1kΩ Resistor ROHM Semiconductor ESR03EZPJ102 Mouser 4 http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ102/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejvfM9hA7acow%3d
10kΩ Resistor ROHM Semiconductor ESR03EZPJ103 Mouser 2 http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ103/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejZIagwiN2IRk%3d
1MΩ Resistor ROHM Semiconductor ESR03EZPJ105 Mouser 2 http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ105/?qs=sGAEpiMZZMu61qfTUdNhG79AcIiSWYOgHx87yIE%2f9KKMdGhl9FJu5g%3d%3d
470Ω Resistor ROHM Semiconductor KTR03EZPJ471 Mouser 2 http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/KTR03EZPJ471/?qs=sGAEpiMZZMu61qfTUdNhGwzMi690UM7UxxZFBtRl4vg%3d
330Ω Resistor ROHM Semiconductor ESR03EZPJ331 Mouser 2 http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ331/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejYH%2fBWzzt0Tg%3d
220Ω Resistor ROHM Semiconductor ESR03EZPJ221 Mouser 16 http://www.mouser.fr/ProductDetail/ROHM-Semiconductor/ESR03EZPJ221/?qs=sGAEpiMZZMu61qfTUdNhG1IKPAnaLGejce8FZC1%2fFYU%3d
Switch ALPS SKQGADE010 Mouser 2 http://www.mouser.fr/ProductDetail/ALPS/SKQGADE010/?qs=sGAEpiMZZMsqIr59i2oRcrO5GDYRXDIX6cdtN26xmPE%3d
USB Chip FTDI FT232RL-REEL Mouser 2 http://www.mouser.fr/ProductDetail/FTDI/FT232RL-REEL/?qs=sGAEpiMZZMs5ceO8zL%252bTxyQLQIH6hE7q
USB Connector / / / 2 /
Régulateur 5v Texas Instruments LM1117IMPX-5 Mouser 2 https://www.mouser.fr/ProductDetail/Texas-Instruments/LM1117IMPX-50-NOPB/?qs=X1J7HmVL2ZGGwLlD0uGqKQ%3D%3D
Batteries 9V Panasonic 6LF22XWA/B12 Mouser 2 http://www.mouser.fr/ProductDetail/Panasonic-Battery/6LF22XWA-B12/?qs=sGAEpiMZZMsra%2fh506hF%252bITISQoCasqh1k2eJLis9sg%3d
Roue de balance Pololu RB-pol-91 Robotshop 2 http://www.robotshop.com/eu/fr/roulette-bille-pololu-0375-po-metal.html
Emetteur/Récepteur Ultrason 40 kHz ELECFreaks RB-Elf-143 Robotshop 2 https://www.robotshop.com/ca/fr/module-sonar-hc-sr04-ultra01.html
Plaque plexiglass (3mm) Plexiglas, Altuglas ou Perspex / LacrylicShop 1 https://www.decoupe-plexi-sur-mesure.com/decoupe-plaque-plastique-plexiglass-altuglas/10003-plexiglass-sur-mesure-pmma-cn-inco-ep-3.html

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 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).


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 /
Développement en C de la communication infrarouge / 3 2 4
Programmation du contrôle des moteurs / / 3 /
Programmation de l'algorithmie des robots / / 3 /
Étude et Conception de la carte électronique / / / 1 2
Modélisation 3D du robot en CAD / / 5 2
Programmation pour simulation / / 6 /
Total


Déroulement du Projet

Documents Rendus

Programmation

Microprocesseur

Comme les robots devront effectuer plusieurs tâches en parallèle (Déplacement, Envoi de trame infra-rouge, réception de trame infra-rouge), On a intégré la bibliothèque FreeRTOS dans l'Arduino afin qu'il agisse comme un OS.


InfraRouge

Pour la transmission en infra-rouge, chaque robot enverra son identifiant à intervalle aléatoire. Pour s'assurer au maximum, que le message reçu n'est pas été corrompu, on enverra des bits de stuffing (une inversion de bits tous les n bits similaires de suite), et on enverra un bit de parité à la fin du message.

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 qu'on n'est pas dans les données, et donc on est au début du message.

Dans la réception, on attend une interruption du capteur IR, une fois activée, l'interruption active la tâche s'occupant de la réception Infra-rouge. Celle-ci va checker les n+1 premiers bits, voir si ceux sont bien des bits de start. Si c'est le cas, alors on récupère l'iD du robot tout en checkant les bits de stuffing et le bit de parité. Si ces bits de vérification suggère 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 éxistant.