SwarmBots : Robotiques en essaim

From Electrolab
Revision as of 15:04, 13 January 2012 by Chewbak (Talk | contribs)

Jump to: navigation, search

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 pont double 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 :

Hexbug.jpg

Soit en faisant des pattes avec 3 servos 9g par pattes avec minimum 4 pattes.

TPSG90.jpg

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

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é :

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!

  • Nrf24L01 photo.JPG
  • Schematic PCB nrf24L01.jpg

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.

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

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