Aller au contenu


NooTe

Inscrit(e) (le) 30 sept. 2011
Déconnecté Dernière activité févr. 27 2016 10:00
-----

#53882 [projet] Spidy, hexapode

Posté par NooTe - 02 mars 2013 - 06:49

Bonjour,

Après un long moment d'absence, voici mon troisième projet en cours de réalisation : Spidy, un hexapode.

IMG_20130302_162909_low.jpg

Je reviens rapidement sur les deux autres projets qui sont toujours en cours de développement.
J'ai unifié les développements Android dans une bibliothèque de fonctions (qui n'est pas encore assez stable pour une utilisation autre qu'expérimentale).
Il y a Roby qui n'a pas évolué depuis la dernier mise a jour dans le forum. Et Shaky qui est en attente d'une nouvelle carte arduino et surtout de bénéficier des développement apporté par Spidy Image IPB

Spidy est un hexapode basé sur le kit Phoenix de Lynxmotion pour la partie squelette et d'une arduino Dagu Spider pour gérer les 18 servomoteurs (voir ci-dessous pour la liste complète des éléments).
Je reprends le même mode de fonctionnement que pour les deux autres projets : une base arduino pour la gestion bas niveau des capteurs et une base Android pour l'IA de l'engin qui a terme sera en deux parties : un téléphone (le cerveau) placé sur l'engin et la prise a distance/monitoring/reporting avec une tablette.
Spidy est un abus de langage faisant référence a une araignée (qui a 8 pattes et non pas 6). On retrouve des hexapodes sous la forme de cafard ou de fourmi par exemple.

La communication se fait avec un module Bluetooth qui relie la Dagu Spider a une tablette ou un téléphone sous Android.
Toute l'intelligence se fait avec une application développée par mes soins (utilisant la fameuse bibliothèque unifiée en cours de développement Image IPB).
Contrairement a ce que j'avais commencer a faire avec Shaky, je suis parti sur des animations dynamiques (ici la marche tripode classique), je suis encore loin de ce que je voudrais implémenter : la cinématique inverse.
La marche tripode est la plus rapide mais aussi la moins stable des marches pour un hexapode. Elle déplace 3 pattes en même temps laissant a 3 pattes le soucis de l'équilibre et du poids du robot. La prochaine étape est le développement de la marche Ripple6 qui permet un déplacement avec au minimum 4 pattes au sol (bien plus stable et moins contraignant pour le robot).
Pourquoi je parle d'animation dynamique. Dans mon implémentation de la marche 3P (tripode), je défini 4 paramètres qui permet une marche dynamique : la vitesse de rotation, l'angle de rotation, la vitesse de déplacement frontale et la "distance" entre les pas. A partir, d'une seule fonction, je peux tourner ou avancer ou les deux en même temps de manière précise (enfin tout est relatif bien sur). Cette implémentation ne prends pas en compte les déplacements latéraux (donc pas de marche en crabe pour le moment ^^).

Les problèmes rencontrés:
  • L'alimentation ! Aujourd'hui, j'ai une batterie de 7.2v pour l'ensemble de la plateforme. Il me faudrait ajouter un réducteur de courant pour le shield des servos (les HS422 supportent relativement bien le 7.2v en direct mais j'ai déjà cramé 2 servos), il faudrait que je descende a 6v pour être serein, mais je n'ai pas trouvé de réducteur qui support les 20A en plafond des 18 servos Image IPB
  • La puissance des servos. Les HS422 sont trop juste pour le poids du robot, ça fonctionne en ce moment car ils sont survoltés a 7.2v (à la place de 5v).
  • La place sur le squelette Phoenix. Clairement, il a été fait pour un SCS-32 et pas plus gros ! la Spider est assez compact mais elle tient tout juste. Et pour ajouter un support pour placer le téléphone portable, ça va être sport Image IPB
Le futur de Spidy
  • Finir le code du protocole client/serveur de communication en bluetooth et en WiFi.
  • Finir le code du cerveau Android et du superviseur
  • Des capteurs de pression sous les pattes et éventuellement un détecteur d'inclinaison ou gyroscope
  • Ajouter la marche Ripple6 et Wave (déplacement patte à patte).
  • Ajouter des postures de défense/attaque (déplacement sur les 4 pattes arrières, les pattes avant en protection haute)
  • Continuer le code de détection de mouvements sous Android
  • Faire un code de détection d'objets simples (balle de couleur par exemple) avec la camera sous Android
  • Lui donner des ordres simples via la reconnaissance vocale d'Android (déplacement, chercher balle, avancer vers la balle, fuir la balle, manger la balle ^^)
  • Le rendre "autonome" : IA simple prédateur/proie, crainte, curiosité...
Quelques images
IMG_20130302_162941_low.jpg IMG_20130302_162752_low.jpg IMG_20130302_162809_low.jpg

Une video sur YouTube
http://youtu.be/GINS8eGQ-vU

Liste des composants de Spidy :
Environnement de développement
  • Android SDK sous Eclipse
  • Editeur Arduino
Sur Google Code
Les sources des robots (en constante évolution... et surtout : à vos risques et périls Image IPB)


#48693 Communication Arduino / Bluetooth

Posté par NooTe - 11 septembre 2012 - 01:51

Hello,
Est-ce que ton "pairage" entre ton module BT et ton dongle a été fait avant d'utiliser TeraTerm ?
Est-ce que les informations de connexion sont bonnes : ton module BT est bien configuré en 9600 baud ?

Utilise directement Serial.print()/Serial.println() pour écrire des données et Serial.readStringUntil('\n') pour lire des données.

Mais surtout ne laisse pas brancher le cable USB... sinon, c'est lui qui occupera les TX0,TX1 !
Et idéalement, evite le mode "AT command" au possible (ca depend de ton module).