Difference between revisions of "SwarmBots : Robotiques en essaim"
(→Le copié de la nature) |
(→Version 2 : Detection et évitement d'obstacle) |
||
(23 intermediate revisions by 2 users not shown) | |||
Line 7: | Line 7: | ||
* taille réduite (taille max 10 cm) : idéalement, les robots seraient des cubes de 5 cm de coté. | * taille réduite (taille max 10 cm) : idéalement, les robots seraient des cubes de 5 cm de coté. | ||
− | * cout réduit : max | + | * cout réduit : max 80 euros par unité, idéalement 30-40 euros. |
* communiquant : les robots auront deux modes de communication | * communiquant : les robots auront deux modes de communication | ||
** proximté : communication localisée entre robots | ** proximté : communication localisée entre robots | ||
** global : communication longue portée entre robots et une station exterieur. | ** global : communication longue portée entre robots et une station exterieur. | ||
− | * autonome : IA embarquée, les robots seront capable d'appréhender leur environnement via des capteurs US/IR, voire une Caméra embarquée faible résolution (risque de rentrer en conflit avec les points 1 et 2) | + | * autonome : IA embarquée, les robots seront capable d'appréhender leur environnement via des capteurs US/IR, voire une Caméra embarquée faible résolution (risque de rentrer en conflit avec les points 1 et 2) |
== Évolutions == | == Évolutions == | ||
Line 21: | Line 21: | ||
== Systèmes de positionnement et asservissement == | == Systèmes de positionnement et asservissement == | ||
− | + | L'intéret de tel système pour des robots de cette taille est sujet à discussion. | |
+ | |||
+ | (''© Pierre De : Je préconiserai de ne pas s'y attarder dans les premières versions'') | ||
+ | |||
+ | === Odométrie === | ||
+ | |||
+ | * Classique (via roue folle ou encodeur) : très difficile d'avoir des mesures fiables, les robots sont légers, risquent de se cogner, etc. L'odométrie sera dans les choux très rapidement. Sans recalibration, ce n'est pas la peine. | ||
+ | * souris optique : beaucoup plus fiable, mais plus compliqué à mettre en place. (piste à creuser) | ||
+ | |||
+ | === Asservissement === | ||
+ | |||
+ | * En position : faisable avec les méthodes classiques. Un asservissement en position n'a pas réellement de sens avec des robots réactifs. L'utilité de ce type d'asservissement dépendra du type de contrôle choisi. | ||
+ | * En vitesse : faisable avec les méthodes classiques. Ce type d'asservissement permet de garantir un certain déterminisme dans les réponses des robots. | ||
= Version = | = Version = | ||
Line 40: | Line 52: | ||
** Les servos à rotation continue n'existent pas en beaucoup de modèles. La plupart sont volumineux (s'il en existe des petits, ça peut le faire). | ** Les servos à rotation continue n'existent pas en beaucoup de modèles. La plupart sont volumineux (s'il en existe des petits, ça peut le faire). | ||
** Modifier des petits servos, c'est chiant et compliqué, surtout pour un grand nombre de robots | ** Modifier des petits servos, c'est chiant et compliqué, surtout pour un grand nombre de robots | ||
− | ** Économise un | + | ** Économise un double pont en H. |
** Bonne précision de mouvement mais vitesse limitéé | ** Bonne précision de mouvement mais vitesse limitéé | ||
* les roues + moteur continue : solution standard, peu encombrant | * les roues + moteur continue : solution standard, peu encombrant | ||
− | ** double pont en H pour commander les moteurs | + | ** double pont en H pour commander les moteurs |
− | + | ||
=== Le fun : les robots brosses === | === Le fun : les robots brosses === | ||
Line 54: | Line 66: | ||
* double pont en H pour commander les moteurs | * double pont en H pour commander les moteurs | ||
− | === Le | + | === Le copier de la nature (et fun aussi !) === |
Lui donner des pattes ! Soit s'inspier des hexbugs : | Lui donner des pattes ! Soit s'inspier des hexbugs : | ||
Line 60: | Line 72: | ||
[[File:Hexbug.jpg|300px]] | [[File:Hexbug.jpg|300px]] | ||
− | Soit en faisant des pattes avec 3 servos 9g par pattes avec minimum 4 pattes. | + | Soit en faisant des pattes avec 3 servos 9g par pattes avec minimum 4 pattes. |
[[File:TPSG90.jpg|300px]] | [[File:TPSG90.jpg|300px]] | ||
Coût du servo SG90 : 25euros les 12. | Coût du servo SG90 : 25euros les 12. | ||
+ | |||
+ | Il est possible de prendre des servos encore plus petits afin de miniaturisé au maximum les marcheurs | ||
+ | |||
L'inconvénient de cet architecture est que l'on se retrouve avec une morphologie complexe et difficile à contrôler. De plus les déplacements des robots seront très lentes. | L'inconvénient de cet architecture est que l'on se retrouve avec une morphologie complexe et difficile à contrôler. De plus les déplacements des robots seront très lentes. | ||
Line 71: | Line 86: | ||
Ce point mérite réflexion, car il conditionne les versions ultérieures. | Ce point mérite réflexion, car il conditionne les versions ultérieures. | ||
− | *arduino : ça peut rendre la plateforme accessible | + | *arduino : ça peut rendre la plateforme accessible aux newbies. |
− | *pic/dspic/avr divers et | + | *pic/dspic/avr divers et variés, enfin tout les controleurs 8 bits usuels. |
Ou même combiner les 2 utiliser un avr qui pourras être programmé avec l'API arduino (avec une librairie faite pour les swarmbots) | Ou même combiner les 2 utiliser un avr qui pourras être programmé avec l'API arduino (avec une librairie faite pour les swarmbots) | ||
+ | |||
+ | === Un peu de matos === | ||
+ | |||
+ | * très petit moteur continue : http://www.solarbotics.com/products/rpm2/ (prix : 4 dollars) | ||
+ | * des très petit servos : http://www.solarbotics.com/products/22085/ (prix : 10 dollars) | ||
+ | **remarque : il existe des servos plus petits et moins cher mais cela donne une idée de ce que l'on peut trouver) | ||
+ | * servo à rotation continue : http://www.solarbotics.com/products/22140/ (12 dollars) et un peu gros ! | ||
== Version 2 : Detection et évitement d'obstacle == | == Version 2 : Detection et évitement d'obstacle == | ||
Line 79: | Line 101: | ||
Le robot est capable de se déplacer de manière autonome en évitant les obstacles. | Le robot est capable de se déplacer de manière autonome en évitant les obstacles. | ||
Quelques capteurs de proximité : | Quelques capteurs de proximité : | ||
− | * le must : IR Sharp , mais cher et volumineux. | + | * le must : IR Sharp , mais cher (10-15 euros environs) et volumineux. |
− | * US : cher et volumineux, simple | + | * US : cher (environ 20 euros) et volumineux, simple à piloter |
− | * d'autres capteurs IR ? généralement peu fiable | + | ** Des US à seulement 6.99 euros : |
+ | ** http://cgi.ebay.fr/capteur-de-distance-a-ultrasons-module-de-mesure-ultrasonic-sensor-module-/180732232564?pt=FR_YO_MaisonJardin_Bricolage_ElectroniqueComposants&hash=item2a147b0374#rpdId | ||
+ | * Fabriquer nos propres sharp ! (environ 2 dollars ... ) | ||
+ | ** recepteur IR : http://www.solarbotics.com/products/pna4602/ | ||
+ | ** diode IR : http://www.solarbotics.com/products/ir-led/ | ||
+ | ** tutorial pour faire une détection infrarouge à pas cher : http://www.pic_examples.byethost3.com/IR_Obj_detect.html | ||
+ | ** Prix imbattables ! Pour peu que l'on y mette un peu d'huile de coude ... | ||
+ | * d'autres capteurs IR ? | ||
+ | ** généralement peu fiable | ||
+ | ** sensible au variation de luminosité. | ||
+ | ** mode "tout ou rien" et très petite portée | ||
+ | ** Cepedant cela peut être suffisant compte tenu des caractéristiques des robots. | ||
* caméra base résolution : cher, volumineux, nécéssite un microcontroleur dédié, détection plus fine | * caméra base résolution : cher, volumineux, nécéssite un microcontroleur dédié, détection plus fine | ||
Line 91: | Line 124: | ||
*Version communication lumineuse (IR ou visible) | *Version communication lumineuse (IR ou visible) | ||
+ | ** La version IR est intéressante, il est possible de réutiliser les capteurs IR maisons pour la transmission ! | ||
*Version communication sonore. | *Version communication sonore. | ||
Line 96: | Line 130: | ||
== Version 4 : Communication longue portée == | == Version 4 : Communication longue portée == | ||
+ | |||
+ | |||
+ | === Communication RF === | ||
Une solution de communication RF pas chère : | Une solution de communication RF pas chère : | ||
Line 119: | Line 156: | ||
[http://pierredufour.fr/electrolab/nRF24L01_Product_Specification_v2_0.pdf Liens pour pdf de la puce] | [http://pierredufour.fr/electrolab/nRF24L01_Product_Specification_v2_0.pdf Liens pour pdf de la puce] | ||
+ | |||
+ | === Bootloader RF === | ||
+ | Pour charger un nouveau programme à tout les robots il faudra créer un bootloader qui fonctionne avec cette puce RF. | ||
+ | |||
+ | Le superviseur pourra charger le même programme à tout les swarmbots en même temps. | ||
== Version 5 : Station de rechargement == | == Version 5 : Station de rechargement == | ||
Line 127: | Line 169: | ||
todo | todo | ||
+ | |||
+ | = Quelques liens = | ||
+ | |||
+ | kilobot : http://www.eecs.harvard.edu/ssr/projects/progSA/kilobot.html | ||
+ | |||
+ | Formica : http://warrantyvoidifremoved.com/formica |
Latest revision as of 21:55, 19 January 2012
Contents
Objectif
Construire un essaim de "petits" robots autonome pour un faible prix de revient. Les robots devront répondre aux critères suivants :
Fonctionnalité
- taille réduite (taille max 10 cm) : idéalement, les robots seraient des cubes de 5 cm de coté.
- cout réduit : max 80 euros par unité, idéalement 30-40 euros.
- communiquant : les robots auront deux modes de communication
- proximté : communication localisée entre robots
- global : communication longue portée entre robots et une station exterieur.
- autonome : IA embarquée, les robots seront capable d'appréhender leur environnement via des capteurs US/IR, voire une Caméra embarquée faible résolution (risque de rentrer en conflit avec les points 1 et 2)
Évolutions
Des évolutions futurs pourront être réalisées, il sera possible par exemple de rajouter :
- une station de rechargement et un système de docking sur chaque robot
- une caméra extèrieur permettant de positionner les robots
Systèmes de positionnement et asservissement
L'intéret de tel système pour des robots de cette taille est sujet à discussion.
(© Pierre De : Je préconiserai de ne pas s'y attarder dans les premières versions)
Odométrie
- Classique (via roue folle ou encodeur) : très difficile d'avoir des mesures fiables, les robots sont légers, risquent de se cogner, etc. L'odométrie sera dans les choux très rapidement. Sans recalibration, ce n'est pas la peine.
- souris optique : beaucoup plus fiable, mais plus compliqué à mettre en place. (piste à creuser)
Asservissement
- En position : faisable avec les méthodes classiques. Un asservissement en position n'a pas réellement de sens avec des robots réactifs. L'utilité de ce type d'asservissement dépendra du type de contrôle choisi.
- En vitesse : faisable avec les méthodes classiques. Ce type d'asservissement permet de garantir un certain déterminisme dans les réponses des robots.
Version
Le projet se décompose en plusieurs versions incrémentales.
Version 1 : base roulante
Le robot peut se déplacer ! Deux solutions sont envisageables :
- deux moteurs + deux roues : la solution la plus classique.
- deux brosses + deux vibreurs : c'est quand même méga fun !
La classique : les roues
- roues + servomoteur :
- Solution la plus simple a mettre en place.
- Les servos à rotation continue n'existent pas en beaucoup de modèles. La plupart sont volumineux (s'il en existe des petits, ça peut le faire).
- Modifier des petits servos, c'est chiant et compliqué, surtout pour un grand nombre de robots
- Économise un double pont en H.
- Bonne précision de mouvement mais vitesse limitéé
- les roues + moteur continue : solution standard, peu encombrant
- double pont en H pour commander les moteurs
Le fun : les robots brosses
La base mobile se composerait de deux tètes de brosses à dents, chacune relié à un vibreur. L'oscillation des vibreurs plus l'orientation des poils des brosses à dents permettent au robot de se déplacer.
- rendement de merde par rapport aux roues !
- pas plus compliqué à piloter ou contrôler
- double pont en H pour commander les moteurs
Le copier de la nature (et fun aussi !)
Lui donner des pattes ! Soit s'inspier des hexbugs :
Soit en faisant des pattes avec 3 servos 9g par pattes avec minimum 4 pattes.
Coût du servo SG90 : 25euros les 12.
Il est possible de prendre des servos encore plus petits afin de miniaturisé au maximum les marcheurs
L'inconvénient de cet architecture est que l'on se retrouve avec une morphologie complexe et difficile à contrôler. De plus les déplacements des robots seront très lentes.
Microcontroleur
Ce point mérite réflexion, car il conditionne les versions ultérieures.
- arduino : ça peut rendre la plateforme accessible aux newbies.
- pic/dspic/avr divers et variés, enfin tout les controleurs 8 bits usuels.
Ou même combiner les 2 utiliser un avr qui pourras être programmé avec l'API arduino (avec une librairie faite pour les swarmbots)
Un peu de matos
- très petit moteur continue : http://www.solarbotics.com/products/rpm2/ (prix : 4 dollars)
- des très petit servos : http://www.solarbotics.com/products/22085/ (prix : 10 dollars)
- remarque : il existe des servos plus petits et moins cher mais cela donne une idée de ce que l'on peut trouver)
- servo à rotation continue : http://www.solarbotics.com/products/22140/ (12 dollars) et un peu gros !
Version 2 : Detection et évitement d'obstacle
Le robot est capable de se déplacer de manière autonome en évitant les obstacles. Quelques capteurs de proximité :
- le must : IR Sharp , mais cher (10-15 euros environs) et volumineux.
- US : cher (environ 20 euros) et volumineux, simple à piloter
- Fabriquer nos propres sharp ! (environ 2 dollars ... )
- recepteur IR : http://www.solarbotics.com/products/pna4602/
- diode IR : http://www.solarbotics.com/products/ir-led/
- tutorial pour faire une détection infrarouge à pas cher : http://www.pic_examples.byethost3.com/IR_Obj_detect.html
- Prix imbattables ! Pour peu que l'on y mette un peu d'huile de coude ...
- d'autres capteurs IR ?
- généralement peu fiable
- sensible au variation de luminosité.
- mode "tout ou rien" et très petite portée
- Cepedant cela peut être suffisant compte tenu des caractéristiques des robots.
- caméra base résolution : cher, volumineux, nécéssite un microcontroleur dédié, détection plus fine
Version 3 : Communication de proximité
- Version connecté :
Les robots peuvent se plugger aux autres robots avec une perche et un aimant pour maintenir la connection. Ensuite une communication série peux intervenir entre les 2.
- Version communication lumineuse (IR ou visible)
- La version IR est intéressante, il est possible de réutiliser les capteurs IR maisons pour la transmission !
- Version communication sonore.
Un peu à la R2D2 mais chaque robot aura sa fréquence porteuse et avec un filtre numérique audio on peux en écouter qu'un seul.
Version 4 : Communication longue portée
Communication RF
Une solution de communication RF pas chère : Les modules basé sur la puce nRFL01 Une petite recherche sur ebay "nRFL01" on peux trouver ces modules pour 5euros les 2!
Description technique : On-board 2.4GHz Antenna 100m Range at 250kbps 250kbps to 2Mbit Data Rate Auto Acknowledge Auto Re-Transmit Multiceiver - 6 Data Pipes 32 Byte separate TX and RX FIFOs 5V tolerant input pins Software selectable channel from 2400MHz to 2525MHz (125 Selectable channels)
Donc il faut une liaison SPI pour causer avec il y à un système complet de transmission retransmission acknoledge. Avec chaque paquet on peux transmettre 1 à 32 octets
Multiceiver : Une puce peux recevoir la communication de 6 autres puces sur le même channel utilise pour que le superviseur puisse avec 1 seule puce recevoir plusieurs swarmbots.
Bootloader RF
Pour charger un nouveau programme à tout les robots il faudra créer un bootloader qui fonctionne avec cette puce RF.
Le superviseur pourra charger le même programme à tout les swarmbots en même temps.
Version 5 : Station de rechargement
todo
Version 6 : Positionnement par caméra extèrieur
todo
Quelques liens
kilobot : http://www.eecs.harvard.edu/ssr/projects/progSA/kilobot.html
Formica : http://warrantyvoidifremoved.com/formica