Aller au contenu


Photo

Mon projet pas à pas

Quadrupède

  • Veuillez vous connecter pour répondre
47 réponses à ce sujet

#41 MaPic+

MaPic+

    Membre

  • Membres
  • 26 messages
  • Gender:Male
  • Location:Meuse (55)

Posté 26 août 2010 - 05:21

Bonjour à tous,

Me revoilà après quelques semaines de vacances (et non je n'ai pas abandonné mon projet) ^_^ .

Concernant mon problème avec les servomoteurs, je n'ai toujours pas avancé ! Je n'ai même pas une petite idée... Enfin si, je suppose que cela vient du programme du PIC car normalement le fait de contrôler plusieurs servomoteurs en même temps doit être possible... Mais je ne maîtrise pas assez le langage assembleur pour trouver une amélioration. Certes je ne suis pas obligé d'utiliser ce langage.

EDIT : J'ai une idée un peu plus concrète ! Cela ne pouvait pas venir du programme du PIC car lorsque je commande mes servomoteurs avec le logiciel depuis mon ordinateur, tous les servomoteurs restent actifs. Donc mon problème vient des données envoyaient par la Fox G20. Mais je ne sais pas lesquelles...

Sinon en rentrant de vacances j'ai eu une surprise plutôt mauvaise ! Ma Fox G20 ne voulait plus s'allumer :angry2: ! J'ai alors cherché d'où cela pouvait venir... Mais rien ni faisait, j'ai alors testé le voltage de ma pile présente sur la Fox G20 et là 0.5v seulement (au lieux de 3v) ! Je n'ai pas compris pourquoi elle s'est déchargée. Est-ce dû au fait que je ne l'ai pas utilisée pendant 3 semaines ? Alors elle me boude au retour... Enfin bref j'ai vite commandé une pile CR1220 sur internet et après deux jours d'attente, la voici la voila :

Image IPB
Lien : http://img837.imageshack.us/img837/7193/cr1220.jpg

Et maintenant ma Fox G20 démarre normalement :) .

À propos de cette "pane" j'ai trouvé ce lien qui a sûrement un rapport : http://netus.acmesystems.it/doku.php?id=troubleshootings#the_fox_board_g20
Je pense que je ne vais pas tarder à faire cette modification, même si je ne trouve pas trop normal le fait de devoir corriger les fautes de ACME Systems...

Maintenant je vais vous donner quelques nouvelles de mes avancées mécaniques.

Comme je vous l'avais dit, je veux réaliser mon quadrupède avec des plaques d'époxy (pour leur légèreté, et leur résistivité) mais cela coûte cher... Alors pour réaliser les parties bêta de mon robot j'ai choisi du balsa ! Je ne sais pas si vous connaissez. C'est une sorte de contreplaqué très fin (entre 1,5 et 2mm) qui est léger et assez résistant. En plus pour ma part c'est de la récupération, donc très peu coûteux ^_^ .

Après avoir trouvé deux plaques de balsa j'ai commencé à découper le corps de mon robot, le voici en image :

Image IPB
Lien : http://img820.imageshack.us/img820/6599/corps.jpg

Aux extrémités du morceau le plus clair on peut voir des vis, elles servent à maintenir les embouts des servomoteurs.

J'ai aussi commencé à réaliser une partie (en deux exemplaires) des cuisses de mon robot, que voici :

Image IPB
Lien : http://img842.imageshack.us/img842/6676/dbutdecuisse.jpg

Rassurez vous elles sont loin d'être finies.

Une fois ces pièces réalisées, j'ai eu envie de les assembler pour voir un peu le résultat. Et voici ce que cela donne pour le moment :

Image IPB
Lien : http://img833.imageshack.us/img833/1936/premiermontagei.jpg

Puis j'ai eu l'idée de tester la résistance de mes petits servomoteurs lorsqu'ils ne sont pas désactivés. Pour cela j'ai utilisé plusieurs poids en plomb pour faire un poids total de 300g, et voici ce que ça donne :

Image IPB
Lien : http://img638.imageshack.us/img638/8643/testservomoteur.jpg

Le servomoteur résiste ! 300g me semble raisonnable pour sa petite taille. Mais j'ai voulu poussé l'expérience, enfin la torture :lol: , jusqu'à 480g, le servomoteur résiste encore mais très peu de temps (30 sec pas plus) et bien sûr dès que le poids et retiré le servomoteur reprend sa place initiale.

300g c'est pas mal certes, mais cela est-il suffisant pour supporter un vol ? Je ne vous parle pas d'un vol agressif, mais d'un vol autonome très paisible :P .

Merci d'avance pour vos réponses et commentaires, à bientôt !

#42 Leon

Leon

    Membre passionné

  • Membres
  • PipPipPipPipPip
  • 1 289 messages
  • Gender:Male

Posté 26 août 2010 - 05:58

Tu es toujours à ton idée de faire voler ta bête? En tout cas, pour faire un quadri-rotor, il faut une très bonne rigidité entre les 4 hélices. Là, avec les petits servomoteurs, et les cuisses bien ajourées en balsa, je n'y crois pas trop... Mais j'espère de tout coeur que tu pourras me prouver que j'ai tort! ;)

Sinon, tu va renforcer tes "cuisses" pour qu'elles ne fléchissent pas en vertical? Si tu mets tes 300g en vertical en bout de cuisse (genou), ça donne quoi comme flexion?
Ton balsa n'a pas l'air très épais, et en plus tu l'a ajouré... Des baguettes en balsa ou en carbone collées par dessus pourraient rigidifier le truc. Enfin, ce n'est que mon avis, je n'ai pas les pièces dans les mains!

Leon.

BOB4, mon drone hélicoptère autonome d'intérieur http://heli.bot.free.fr/
BOB3, mon robot autonome d'intérieur avec WiFi + Foxboard Linux http://ze.bot.free.fr/
BOB5, robot bipède simulé, puis tentative de réalisation (fail)


#43 MaPic+

MaPic+

    Membre

  • Membres
  • 26 messages
  • Gender:Male
  • Location:Meuse (55)

Posté 26 août 2010 - 11:30

Bonjour Leon,

Oui je suis toujours dans l'idée de faire voler ma bête :lol: . Pour le moment je m'occupe que de la partie quadrupède tout en prévoyant qu'il vole un jour. Mais avant de le faire voler je voudrai qu'il marche.

Oui je sais qu'il faut une bonne rigidité, c'est pour cela que je me demande si une force de 300g en axe X (horizontale) est suffisante.

Sinon je ne souhaite pas le faire voler avec un corps en balsa. Je réalise le corps de mon robot en balsa de manière à réaliser des essais sur la partie quadrupède. Une fois la partie quadrupède au point je refabriquerai les pièces en plaque d'époxy.

Je vais faire mon possible pour te prouver que tu as tort ;) .

Oui, je vais renforcer les cuisses, la photo c'est juste pour montrer mes débuts. Donc je testerai la flexibilité verticale lorsque les cuisses seront terminées.

Mon balsa mesure 2mm d'épaisseur. J'avais pensé à coller du carbone sur les pièces finales en époxy.

Merci de me donner ton avis Leon :) .

#44 MaPic+

MaPic+

    Membre

  • Membres
  • 26 messages
  • Gender:Male
  • Location:Meuse (55)

Posté 28 novembre 2010 - 09:25

Bonjour à tous,

Après 3 mois d'absence sur le forum, me revoilà avec d'excellentes nouvelles  :D !

En effet il y a un peu près une semaine j'ai enfin trouvé la solution à mon problème de servomoteur !

Je vous rappelle que je devais désactiver chaque servomoteurs après l'envoi d'une commande pour éviter qu'ils ne répondent plus aux ordres au bout d'un certain temps... Cela était gênant car les servomoteurs une fois désactiver ne résistent plus aux forces exercées. Donc le Quadrupède risquait de s'effondrait sous son propre poids.

Comment ai-je fais pour trouver d'où venait le problème ? Ou plutôt les problèmes ?

C'est assez simple. Dans un premier temps j'ai testé ma carte qui contrôle mes servomoteurs sur Windows avec le programme donné. Après quelques minutes d'utilisation on pouvait constater qu'il n'y avait pas de problème et que les servomoteurs étaient toujours actifs. Donc j'en ai déduit que ma carte (que j'ai réalisé) qui contrôle les servomoteurs était bonne et que le problème venait soit de ma configuration du port série, ou alors de mon programme en C++ qui envoie les données.

Ensuite j'ai installé Wine sur linux qui permet d'exécuter des progammes.exe. Cela ma permit d'installer le programme en VB qui était fournit. Comme celui-ci configure automatiquement le port série j'ai pu récupérer et comparer la configuration avec la mienne.

Voici ce que ca donne pour ceux qui sont intéressés :

  • La configuration automatique faite par le programme donné :
    speed 2400 baud; rows 0; columns 0; line = 0; 
    intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^Z; eol = <undef>; 
    eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; 
    werase = ^W; lnext = ^V; flush = ^O; min = 0; time = 0; 
    -parenb -parodd cs8 -hupcl -cstopb cread clocal -crtscts 
    ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff 
    -iuclc -ixany -imaxbel -iutf8 
    -opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 
    -isig -icanon -iexten -echo echoe echok -echonl noflsh -xcase -tostop -echoprt 
    echoctl echoke
  • Ma configuration pour la Fox Board G20 :
    speed 2400 baud; rows 0; columns 0; line = 0; 
    intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; 
    eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; 
    werase = ^W; lnext = ^V; flush = ^O ; min = 60; time = 1; 
    -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts 
    ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff 
    -iuclc -ixany -imaxbel -iutf8 
    -opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 
    -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt 
    -echoctl -echoke
En bref si vous ne voulez pas chercher les erreurs, il y a 10 variables différentes !

Déjà un problème de trouvé. Certes il y a quelques variables qui ne change en rien le fonctionnement...

Voilà le première problème très bête... D'ailleurs, je ne comprends pas pourquoi le logiciel Cutecom ne configure pas de la même façon le port série. Surtout avec des paramètres simples (1 bit de start, 1 bit de stop, 8 bits de donnée et 2400 bauds).

Après avoir trouvé ce problème, j'ai essayé à nouveau de contrôler mes servomoteurs avec ma Fox G20. Malgré une petite amélioration mes servomoteurs tremblaient encore...

Je me suis alors dit que cela venait de mon programme en C++ puisque ma carte et ma configuration étaient bonnes. J'ai alors connecté mon contrôleur de servomoteurs à mon ordinateur (sous Linux) j'ai configuré le port série et j'ai lancé mon programme.

Et là, surprise ! Les servomoteurs fonctionnaient correctement ! Il est important de savoir que j'avais modifié mon programme pour que je puisse rentrer les données manuellement au lieu de les récupérer dans un fichier.txt. C'est en effet important de le préciser car le deuxième problème ne venait pas de mon programme, mais des données que j'envoyais !

Je m'explique, un servomoteur peut bouger à 180° (ou 360° si on le modifie). Donc en théorie, la valeur minimale est de 01 (car 00 désactive le servomoteur) et la maximale 255. Dans mon fichier.txt j'avais des données qui allaient de 01 à 255, mais je me suis rendu compte que si j'allais au delà de 245 ou en dessous de 04, mes servomoteurs tremblaient ! En réalité de 01 à 255, le servomoteur fait plus de 180° ! Il arrive donc en buté (d'où son tremblement car il essaye d'atteindre la position demandée). Au final avec une valeur minimale de 04 et maximale de 245 j'arrive à faire bouger mes servomoteurs à 180° !

Ce n'est pas fini, car récemment j'ai découvert un nouveau problème... Depuis le début de mon projet j'utilise une petite alimentation stabilisée pour alimenter ma Fox G20, le contrôleur et les servomoteurs. Mais pour faire ce que j'ai cité au dessus, j'utilisais ma batterie de 7,4V 1200mAH. Comme vous pouvez vous en douter, mon alimentation ne fournissait pas assez de courant pour tous les servomoteurs en fonctionnement. Ce qui provoquait encore une fois un tremblement. Et en désactivant les servomoteurs après leurs utilisations, la demande en courant était moins importante.

Ça fait beaucoup de texte pour pas grand chose mais je voulais expliquer mes problèmes et la démarche que j'ai utilisé pour les résoudre. Qui sait peut être que ça pourra aider quelqu'un...

En résumé pour les fainéants comme moi, j'avais trois problèmes. Ma configuration série n'était pas entièrement bonne, j'envoyais des données incorrectes et ma petite alimentation stabilisée ne fournissait pas assez de courant pour l'ensemble des servomoteurs.

Tous ça pour arriver à ce résultat :

http://www.youtube.com/watch?v=nnMEQeeaKUI

On peut voir que les servomoteurs résistent bien à la force même après une petite chorégraphie.

Enfin nous y voilà ! J'arrive à contrôler mes servomoteurs correctement ! Maintenant je devrais m'attaquer à la partie mécanique de mon robot. Mais comme je compte le faire voler, il faudrait que je prévois tout à l'avance (taille et emplacement des moteurs, encombrement de l'électronique et j'en passe...). C'est pour cela qu'à partir de maintenant je commence la partie volante de mon robot !

Juste pour information, placer un moteur entre deux servomoteurs était possible, voici la preuve en image :

Image IPB
Désolé je n'ai plus la source de cette photo que j'ai trouvé sur internet. Ce système provient d'un Tricoptère. Mais je ne vais pas compliquer les choses (enfin je ne pense pas). Je ne vais pas placer mes moteurs sur les cuisses de mon robot, mais sur le corps de manière à réaliser une bestiole de ce style :

Image IPB
Un exemple trouvé sur internet, il s'agit d'un Quadrirotor. Ne vous inquiétez pas je sais que ces appareils sont très difficile à réaliser, surtout avec des composants inhabituels pour ce type de réalisation. Mais ne partons pas défaitistes, qui ne tente rien à rien...

D'après mes recherches, pour faire voler un Quadrirotor il faut : des gyroscopes (1 axe ou 2 axes ?), un accéléromètre (2 ou 3 axes ?), un compas (3 axes) et en option un baromètre pour déterminer l'altitude.

Bien sûr il faut 4 moteurs, pour ma part je mettrai des moteurs brushless donc je vais devoir utiliser 4 ESC. Et ne pas oublier les hélices, ça peut être utile...

Je sais que ce forum n'est pas spécialisé en modélisme c'est pour cela que je vous demanderai juste des conseils au niveau de l'équipement électronique, car pour choisir parmi toutes ces offres je suis un peu perdu.

Voici les prochaines étapes de mon robot :

  • Déterminer tout l'équipement électronique
  • Faire fonctionner les gyroscopes, l'accéléromètre, le compas et pourquoi pas le baromètre.
  • Réaliser la partie mécanique « béta »
  • Ajouter la partie Quadrupède à la partie Quadrirotor
  • Faire marcher le Quadrupède
  • Déterminer les moteurs, ESC et hélices adéquats.
  • Contrôler les moteurs avec la Fox G20
  • Faire voler le Quadrirotor
Comme vous pouvez le constater j'ai du boulot qui m'attend... Mon objectif principal et d'avoir tout l'équipement électronique avant mi janvier, pour que je puisse bosser un peu dessus. Car après je suis en projet de BTS jusqu'à mai/juin donc pendant ce temps je ne pense pas que j'aurai le temps d'avancer...

Voilà je vais m'arrêter là pour aujourd'hui. Merci d'avance pour vos commentaires et à bientôt !

#45 Leon

Leon

    Membre passionné

  • Membres
  • PipPipPipPipPip
  • 1 289 messages
  • Gender:Male

Posté 28 novembre 2010 - 10:43

Faire voler un robot, je connais! ;)

Pour l'articulation à servo entre le corps et le moteur, OK, mais là, dans l'exemple que tu donnes, l'articulation n'ajoute pas de "degré de liberté" dans les 2 sens qui peuvent être néfastes pour les vibrations. Les 2 sens qui peuvent amplifier les vibrations, c'est la vibration dans l'axe de l'hélice (flexion de la cuisse), et transverse à l'hélice (balayage de la cuisse).

Pour l'électronique, tout dépend de ce que tu veux faire. Si tu veux faire voler ton robot de manière télécommandée, 3 gyro suffiront comme capteurs. Un accéléro vertical peut être un plus, mais n'est pas indispensable, ça se contrôle facilement à la main (contrairement aux 3 axes qui sont plus instables). Le compas est parfaitement inutile pour un vol radiocommandé.

Par contre, si tu veux le faire voler de manière autonome, il faut rajouter d'autres capteurs.

Fais bien une estimation du poids total de ton engin, c'est primordial pour le choix de tes moteurs et hélices. Prend exemple sur les réalisations sur le web pour comparer.
Enfin, pour faire voler ce genre d'engin, il faut des boucles d'asservissement très rapides. 50 fois par secondes, mini. Si ça doit passer par ta liaison série à 2400bds, ça me semble limite! Tu peux aussi utiliser des ESC qui fonctionnent en I2C.

Leon.

BOB4, mon drone hélicoptère autonome d'intérieur http://heli.bot.free.fr/
BOB3, mon robot autonome d'intérieur avec WiFi + Foxboard Linux http://ze.bot.free.fr/
BOB5, robot bipède simulé, puis tentative de réalisation (fail)


#46 MaPic+

MaPic+

    Membre

  • Membres
  • 26 messages
  • Gender:Male
  • Location:Meuse (55)

Posté 30 novembre 2010 - 10:37

Bonjour à tous et à toi Leon.

En effet j'ai vu il y a quelques jours que tu arrives à faire des petits voles autonomes. D'ailleurs j'étais plutôt content que tu aboutisses ! Je te félicite !! Désolé de ne pas le faire sur ton topic mais je manque de temps -_- .

Oui je sais que le fait de mettre un servomoteur pour créer une articulation n'ajoutera pas de degrés de liberté, créera des vibrations et ne facilitera pas la conception de mon Quadrirotor. C'est pour cela que j'ai abandonné l'idée et que je vais me contenter de réaliser un Quadrirotor standard (enfin pas si standard que ça puisqu'il va marcher ^_^ ).

Pour le moment je souhaite « seulement » commander mon robot et par la suite le rendre un peu autonome. C'est pour cela que je voudrais avoir toute l'électronique maintenant pour être tranquille pour la suite (et comme ça le poids du robot ne changera pas).

Donc pour l'électronique, il me faut 3 gyroscopes, 1 accéléromètre, 1 compas (= magnétomètre ?) et un baromètre. Bien sûr je compte mettre aussi des capteurs ultrasons, mais je pense que ça ne ferra pas partie de ma liste de noël... Je crois que je n'ai rien oublié pour un vol autonome.

Ne t'inquiète pas Leon je sais que mes moteurs dépendent du poids de mon robot. C'est pour cela que je souhaite avoir tout l'électronique affin de pouvoir faire la partie mécanique de mon robot (en epoxy) ce qui me permettrai d' avoir le poids approximatif. Puis avec une petite marge je déterminerai mes moteurs, mes ESC et ma batterie. Une fois le robot opérationnel, je referai le corps de mon robot en carbone.

Concernant les boucles d'asservissement, cela va dépendre de l'électronique, comme tu l'as dit je peux utiliser de l'I2C (pour les gyroscopes, L'accéléromètre et le compas), SPI (pour le baromètre), PWM (pour les ESC) et du RS232 pour les capteurs à ultrasons. C'est vrai que 2400bds c'est pas énorme mais on peut aller jusqu'à 11520 si je ne m'abuse.

A bientôt ;) .

#47 Leon

Leon

    Membre passionné

  • Membres
  • PipPipPipPipPip
  • 1 289 messages
  • Gender:Male

Posté 01 décembre 2010 - 06:14

Si tu veux le rendre un jour autonome, il vaut mieux prendre 3 accéléros (ou un accéléro 3D). Sparkfun fait des platines intégrant plusieurs capteurs gyro et/ou accéléro et/ou magnéto (=boussole).

Leon.

BOB4, mon drone hélicoptère autonome d'intérieur http://heli.bot.free.fr/
BOB3, mon robot autonome d'intérieur avec WiFi + Foxboard Linux http://ze.bot.free.fr/
BOB5, robot bipède simulé, puis tentative de réalisation (fail)


#48 MaPic+

MaPic+

    Membre

  • Membres
  • 26 messages
  • Gender:Male
  • Location:Meuse (55)

Posté 20 décembre 2010 - 01:26

Bonjour à tous.

Je viens vous donner quelques nouvelles concernant mon choix pour l'électronique de mon Quadrirotor.

Voici ce que je compte commander :

  • Triple Axis Accelerometer Breakout - LIS3LV02DQ 39,00€ x1
  • Gyro Breakout Board - IDG500 Dual 500°/s $39.95 soit 30,35€ x1
  • Gyro Breakout Board - ADXRS610 - 300°/s $24.95 soit 18,95€ x1
  • Triple Axis Magnetometer Breakout - HMC5843 $49.95 soit 37,95€ x1
Et voici quelques liens si quelqu'un veut plus d'informations :
http://www.sparkfun.com/products/9058
http://www.sparkfun.com/products/9371
http://www.sparkfun.com/products/9094

Le LIS3LV02DQ n'est apparemment plus disponible sur sparkfun...

Je sais que Leon a utilisé le HMC5843 pour son BOB4 et qu'il faut que je fasse attention au champ magnétique produit par mes moteurs.
Mais si vous avez déjà utilisé l'une de ces "Breakout Board" n'hésitez pas à me faire part de vos impressions !
Ca évitera de mauvaises surprises après la commande...

Par la suite je commanderai un baromètre, des sonars et pourquoi pas un petit GPS.

Je vous remercie d'avance pour vos réponses et à bientôt ;) .





0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users