Shaky

Prsentation du projet sur le forum Robot-Maker

Il s'agit de faire un robot bipde contrl 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 paralllisable :
- la construction matrielle du robot ;
- l'application de base Arduino pour grer les servocommandes ;
- la prise de contrle du robot en Bluetooth ;
- la constitution d'une large bibliothque de "poses" et d'animations (enchainement de poses).

Pour la partie "matriel", 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).
Aprs une petite tude de cout, le robot complet devrait me revenir a ~750. J'ai donc dcider 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 trs 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 prfr l'Arduino 2560 pour le nombre de possibilit mais l'inconvnient 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'lment "standard" pour servo issus du catalogue Lynxmotion. Lynxmotion a plusieurs bipdes a son catalogue mais aucun ne m'a vraiment sduit par sa construction ou ses possibilits d'extension.
Le torse est le seul lment spcifiquement typ pour bipde... 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 bipdes).
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 mcanique. 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 tte (bas sur une tourelle pan/tilt).
Je compte aussi ajouter un gyro pour garder le robot en quilibre (la partie software devrait permettre de contrler le robot en InverseKinematics)

De par ma premier exprience 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 prvois 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 cinmatique des animations (sur l'Arduino). a se passe plutt bien pour le moment.
Le plus embtant 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 dfini quelques "poses" et quelques animations mais la route est longue pour avoir suffisamment de poses pour faire des enchainements intressants :)

Et voici une petite vido de Shaky vous saluant :)

Image attache: IMAG0141.jpg Image attache: IMAG0142.jpg

...

J'ai une premire base de travail pour faire de l'animation en keyframe, je n'ai pas du tout commencer le travail en IK (inverse kinematics).

Pour le moment, je stocke les keyframes (ou "poses" : un instantan des positions de tous les servos) directement en mmoire (en dur dans le code Arduino), je dfini les animations en crant une suite de keyframes espac par une temporisation.
L'animation est une simple interpolation selon de chacune des positions d'un servo entre deux poses le temps coul.
Je ne pense pas pouvoir faire le code IK sur l'Arduino (mathmatique trop lourde), donc je vais directement le coder sur Android et transmettre la position des servos via bluetooth... jespre que ca sera assez ractif :)

J'ai juste dfini 5 animations (avec une dizaine de keyframes diffrents) :
- "je reste debout, droit comme un I" : 1 keyframe, facile ^^
- "je salue tout le monde" : 2 keyframes, video montre
- "je fais des pompes comme un homme" : 2 keyframes, idal pour tester la puissance des servos... catastrophe sur mon robot
- "finalement, je fais plutt des pompes comme une fille" : 2 keyframes, sur les genoux, parce les servos des bras ne sont pas assez puissant pour soulever tout le corps :P
- "Hulk" : 4 keyframes... petit enchainement rigolo, je ferai une video plus tard :)

Actuellement, je fais l'application qui permet d'enchainer tout a a partir d'Android : une interface simple avec des boutons reprsentant les 5 animations en haut... et une palanqu de boutons qui reprsentent chaque keyframe enregistr du robot. rien de trs glamour donc ;)
Il faudrait que je fasse un keyframe designer et keyframe animator/choregraphe... ce qui prendra un peu de temps :(