Aller au contenu


NooTe

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

Sujets que j'ai initiés

[projet] Spidy, hexapode

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.

Fichier joint  IMG_20130302_162909_low.jpg   316,36 Ko   236 téléchargement(s)

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
Fichier joint  IMG_20130302_162941_low.jpg   213,97 Ko   265 téléchargement(s) Fichier joint  IMG_20130302_162752_low.jpg   218,78 Ko   293 téléchargement(s) Fichier joint  IMG_20130302_162809_low.jpg   245,79 Ko   283 téléchargement(s)

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)

[Probleme] alimentation d'un hexapod (18 servos)

03 août 2012 - 05:50

Bonjour,

J'ouvre un deuxième thread qui ressemble a celui ouvert pour mon bipède. Car décidément, je ne suis pas doué avec mes alimentations de robots :(

Dans ce cas précis, j'ai une carte compatible Arduino DAGU Spider qui est un peu différente de l'Arduino MEGA2560 que j'utilise sur le bipède (a terme, une autre DAGU Spider est censé remplacer l'imposante MEGA et son shield tout aussi imposant ^^).
Cette carte n'a qu'une seule entrée VIN qui fonctionne de 7v a 30v.

Lorsque je développe le code Arduino, le port USB alimente la carte. mais clairement, l'USB atteint ses limites avec les 18 servos de branché (des Hitec HS422). c'est très lent et les servos ont du mal a se mettre en place (4 a 6 servos, c'est bon, au dessus ce n'est plus ça). L'USB c'est du 5v et 500mA.
J'ai donc acheter deux batteries NiMh de 7.2v : une Lynxmotion de 2800mA/h et une LRP de 5000mA/h (un pour l'hexapode et un autre pour le bipède, en théorie)
Mais lorsque je branche une des batteries (n'importe laquelle), les servos bougent dans tous les sens, la reception BT est brouillé, le code Arduino plante... c'est l'horreur quoi :(

Je suis complétement perdu... Je pensais que l'alim de la carte aurait suffit pour tout alimenter (idem pour le bipède).

J'ai vu qu'il y avait un blindage spécifique pour les servos pour la DAGU spider.
Est-ce cela veut dire que je dois dupliqué l'alimentation, une pour la carte (pile de 9v ?) et un autre (batterie 7.2v ou 6v ?) pour les servos en utilisant le blindage ?

Les seuls exemples concrets que j'ai trouvé pour le DAGU Spider sont a base de micro-servos, beaucoup moins consommateur d'energie :(
Sur ce kit complet, ils marquent qu'une seule batterie de 7.4v suffit :(

Donc... HELP !

Fichier joint  IMAG0180m.jpg   281,71 Ko   274 téléchargement(s)

PS :
Résoudre ce problème m'aidera pour le bipède aussi ^^ (car ils partageront le même matériel de base ;))

[Projet] Shaky - robot bipède 21 DOF

16 mai 2012 - 03:16

Bonjour,

Je vous présente mon nouveau projet.

Il s'agit de faire un robot bipède contrôlé par un terminal Android via bluetooth.
Tout ressemblance avec le film Real Steel est fortuite ^^
Car le but est d'en faire un robot danseur et non de combat :)

Plusieurs étapes plus ou moins parallélisable :
- la construction matérielle du robot ;
- l'application de base Arduino pour gérer les servocommandes ;
- la prise de contrôle du robot en Bluetooth ;
- la constitution d'une large bibliothèque de "poses" et d'animations (enchainement de poses).

Pour la partie "matériel", je ne voulais pas partir d'un base robotique telque le Kondo, Kumotek ou RoboPhilo (trop cher a mon gout entre 800 et 1200€, auquel il fait ajouter le hack pour arduino et les sensors qui vont bien... et surtout me privant du plaisir du bricolage les mains dans le cambouis).
Après une petite étude de cout, le robot complet devrait me revenir a ~750€. J'ai donc décider de le faire de A a Z.

Je suis partie d'un carte Arduino 2560 et d'un shield MEGA IO v2.1de DFRobot.
Ce qui offre un très grand nombre de DPIN pour les servos (et pour les sensors a venir). Le second option était une carte SCS32 associé a une carte Arduino UNO.
J'ai préféré l'Arduino 2560 pour le nombre de possibilité mais l'inconvénient est la taille et le poids de la carte et du shield (voir photo du robot de dos).

Le robot est constitué d'un certain nombre d'élément "standard" pour servo issus du catalogue Lynxmotion. Lynxmotion a plusieurs bipèdes a son catalogue mais aucun ne m'a vraiment séduit par sa construction ou ses possibilités d'extension.
Le torse est le seul élément spécifiquement typé pour bipède... au final, je le trouve trop petit pour le robot tel que je l'ai construit.

Un autre element central du robot est le servo par lui meme !
Ne sachant pas quoi prendre, j'ai opté pour le HiTec HS-422 vendu vers 10€ (couple de 4.2Kg/cm, Lynxmotion utilise dans certains de ses bipèdes).
Cela s'est averé être un mauvais choix : pas assez puissant pour tenir le robot sur ses jambes !
Donc, je suis parti pour tout ce qui est jambe pour des TowerPro MG995 (couple de 12Kg/cm) qui coute a peine plus cher (13€). Evidement, prendre un magnifique servo digital de 65Kg/cm aurait été le choix ideal... mais a 60€ le bestiau... trop cher ;) C'est, grosso modo, ce qui explique que certains bipedes vendu dans le commerce atteignent des prix de 2000€ ou 3000€ (ou plus).

Aujourd'hui, j'ai fini a 80% la partie mécanique. Il me manque des pinces en guise de mains, mus par des micro-servos. Ce qui devrait porté le degré de liberté (DOF) a 23 ;)
Il me faudrait probablement un boitier pour caché la carte et le shield et pour mettre un peu d'ordre dans les cables ^^

Dans les sensors que je compte ajouter, il y aura un capteur Infra-rouge (type GP2D120) situé dans chaque avant bras, un ou plusieurs Ultrasonique situé au niveau de la tête (basé sur une tourelle pan/tilt).
Je compte aussi ajouter un gyro pour garder le robot en équilibre (la partie software devrait permettre de contrôler le robot en InverseKinematics)

De par ma premier expérience robotique avec un des Roby du forum, je maitrise pas trop mal la communication bluetooth entre l'Arduino et Android.
J'ai équipé la 2560 d'un module XBee Bluetooth. L'avantage du bluetooth, c'est que finalement n'importe quel dongle BT permet de se lier avec l'Arduino.
Je prévois de faire, en plus du module Android, un module software fait en Processing.org pour piloter le robot via un PC (et pourquoi pas une appli iPad un jour...).

Actuellement, je bosse sur la partie algo de la cinématique des animations (sur l'Arduino). Ça se passe plutôt bien pour le moment.
Le plus embêtant étant de calibrer les servos (car malheureusement les servos en sont pas tous calibré pile poil). Les plus observateurs noterons des excentrations des servos sur les photos.

J'ai défini quelques "poses" et quelques animations mais la route est longue pour avoir suffisamment de poses pour faire des enchainements intéressants :)

Et voici une petite vidéo de Shaky vous saluant :)

Fichier joint  IMAG0141.jpg   994,14 Ko   493 téléchargement(s) Fichier joint  IMAG0142.jpg   884,51 Ko   424 téléchargement(s)

[Probleme] Alimentation d'un robot bipede

07 mai 2012 - 01:48

Bonjour,

J'ai commencé un nouveau robot (le premier étant ici).
C'est un robot bipède qui contient actuellement 17 servos standard (Hitec HS-422) et qui, a terme, devrait en compter 22 (20 standard + 2 micro).
Il est equipé d'une carte arduino Mega + extension shield 2.1. Et dans l'avenir, il devrait recevoir 3 sonars, 2 capteur infrarouges, un module XBee bluetooth et un module gyro/accelerometre.

Mon problème est le suivant : mon robot n'est pas autonome au niveau alimentation !

Je dois branché un transfo metronic 12v (8.64VA) + le cordon USB pour avoir l'énergie nécessaire au fonctionnement du robot.
J'ai essayé de brancher un pack de 6 piles 1.2v sur le port 5V de l'extension shield... mais ce n'est pas mieux...
Est-ce qu'il faudrait plutot que je le branche sur le 7V/12V de la carte arduino ?

Du coup, je ne sais pas trop avec quoi l'équipé pour être "sans fil" d'alim :(
Evidement, je suis limité par le poids

Auriez-vous de suggestions ?

[projet] Roby... oui encore un :)

30 septembre 2011 - 03:25

Bonjour à tous,

Je vous présente mon projet en cours de réalisation (je suis novice dans la robotique, un peu moins en informatique).
Il s'agit d'un robot d'exploration qui a vocation de devenir autonome (comme une grande partie des robots ;)).

Le projet s'articule sur 3 composants : une base mobile, un "cerveau" et un "observateur de résultat" (je les détaille un peu plus bas).
Cela se fera a base Arduino et d'Android.

La base mobile est un DFRobot 4WD (plateforme a 4 roues motrices... mais seulement deux dans la realité), celle-ci se voit équipé d'une carte micro-contrôleur DFRobot Roméo v1.0, associé à un module DFRobot Bluetooth v3, 4 switchs de distance, une tourelle tilt/pan ou est logé le "cerveau" (avec deux servos moteurs).

Le cerveau est un téléphone mobile HTC Désire qui communiquera avec la plateforme via Bluetooth. Celui-ci est solidaire de la plateforme mobile (en haut de la tourelle mobile).
Sa camera servira à la reconnaissance et l'analyse du territoire (soft en cours de développement, basé sur la détection de lignes et de reconstruction 3d en temps-réel si c'est possible), il sera aussi le transmetteur des informations à l'"observateur" (streaming audio/video, prise de photos) via Wi-Fi.
Pour info, HTC a supprimé le profil SPP (Serial Port Protocol) du firmware officiel (froyo 2.2), le téléphone a donc été rooté et une version de Cyanogen 7.1.0 R1 a été installée (Gingerbread 2.3.4).

L'observateur est, dans le cas présent, une tablette Acer A500 (Honeycomb 3.2, mais pourrait etre tout autre appareil mobile sous Android avec un écran large) qui sera connectable via Wi-Fi au cerveau. Il recevra les informations (positions, capteurs, flux video) mais pourra, bien sur, prendre le pas sur le commandement du robot.

Ou en suis-je actuellement sur le projet ?
La plateforme mobile est assemblé, les switches réglés, la communication avec le cerveau est établie ainsi que la communication entre le cerveau et l'observateur. Le cerveau ne sert pour le moment que de relai de commande depuis l'observateur. en parallèle, je continu mon travail sur la détection des lignes (algorithme choisi est une simplification de l'algo "RANSAC"... une autre voie est la transformée de Hough).
Qui reste encore a faire : le streaming audio/video et l'envoi des photos du cerveau vers (qui sont stocké sur le portable pour le moment).
Matériellement, je prévois encore une amélioration majeur : l'ajout d'un capteur de distance a ultrason (type DFRobot URM04) qui serait solidaire et orienté dans le sens de la camera (pour la reconstruction 3d).
Et bien sur, l'IA reste entièrement a faire :)
Maintenant, je ne suis pas sur que le HTC Désire soit assez puissant pour tout faire à la fois... c'est donc aussi un défi a ce niveau là :)

Dans un premier temps, je finalise le "remote control" entre le cerveau et l'observateur (streaming video en priorité).
Puis je reprends le dev sur la reconnaissance de territoire.
Et ensuite l'IA...

Voila, ca reste assez ambitieux pour une première tentative dans le domaine de la robotique. Mais, j'ai le temps et l'ambition pour le finir ^^
Je prevois de mettre tout en opensource quand ca sera plus stable (finalisation du remote controle).

Fichier joint  IMAG0080_m.jpg   48,08 Ko   336 téléchargement(s) Fichier joint  IMAG0079_m.jpg   76,09 Ko   335 téléchargement(s)