Nous sommes le Sam 21 Avr 2018, 10:56


patopion - (petite base bipède humanoide)

Faites de votre bébé la star du web !!!
  • Auteur
  • Message
Hors ligne
Avatar de l’utilisateur

Esprit

Membre asso caliban

  • Messages: 1641
  • Inscription: Jeu 11 Fév 2010, 11:14
  • Localisation: Ottignies

Re: patopion - (petite base bipède humanoide)

Message non luMar 23 Avr 2013, 11:35

Ça reste tout de même assez sympa même si tu dis que le code est "simple". Si tu ne tiens pas le fil, il continue de marcher aussi longtemps ? :lol:

Continue d'avancer comme ça, c'est super !
Simon, membre fondateur de l'Association Caliban Belgique,
.·° Mon blog : Le Chipoteur de Brols .·°·. L' Association Caliban Belgique °·.
"L'impossible, nous ne l'atteignons pas, mais il nous sert de lanterne." (René Char)
Hors ligne
Avatar de l’utilisateur

philopat

Membre asso caliban

  • Messages: 1720
  • Inscription: Mer 5 Nov 2008, 01:19
  • Localisation: Jonzac

Re: patopion - (petite base bipède humanoide)

Message non luSam 20 Juil 2013, 01:14

salut...!

vous savez quoi? surtout ne faites pas les mêmes choix que j'ai fait!
j'ai déjà pèté 4 mini servos (futaba s3107) à 18€... :colere: juste une petite chute de 10 ou 20cm et paf .. les micro dentures des petits engrenages en plastique ne tiennent pas le moindre choc.. radialement ,axialement, ou dans le sens de rotation!
donc.. le choix à faire pour ce genre de dimension de servo, est obligatoirement avec denture metal.
sinon, mettre des ressorts partout , je le vois mal. :roll:

-
phil
ce qui voit , se voit dans les yeux de ceux qui nous regardent...
Hors ligne
Avatar de l’utilisateur

leon

Roboticien confirmé

  • Messages: 634
  • Inscription: Dim 19 Juil 2009, 07:57

Re: patopion - (petite base bipède humanoide)

Message non luSam 20 Juil 2013, 06:25

Merci Phil pour ton avis, ça servira à d'autres!

Par contre, est-ce que le faible couple des servos (1.2kg.cm) était suffisant? Suffisant pour réussir à faire des flexions-extensions avec les jambes (genoux)? Et quel est le poids de ton robot? Il est sans doute très léger, quelques centaines de grammes?

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/
Hors ligne
Avatar de l’utilisateur

philopat

Membre asso caliban

  • Messages: 1720
  • Inscription: Mer 5 Nov 2008, 01:19
  • Localisation: Jonzac

Re: patopion - (petite base bipède humanoide)

Message non luSam 20 Juil 2013, 10:41

salut léon!

pour le couple tu peux voir dans la 1ere video du 17avr2013 , 1er test que j'avais fait :
les servos peuvent positionner et maintenir une jambe à l'horizontale.
(video à 00:35)
la revoici :
(cliquer sur l'image pour accéder à la vidéo)
Image
http://www.archive-host.com/link/9aa1713fbc9cece614602dca10d7624409fd9174.mp4

ce robot inachevé pèse 300g tel qu'on le voit , avec les câbles qui trainent...
il pourrait peser facilement 2 fois moins .je n'ai pas encore cherché à minimiser le poids , en vérité.
c'est donc intéressant dans le cas où je le prolonge d'un petit corps.

visiblement, ce que j'ai retenu de ces premieres expériences, c'est qu'il faut des mouvements rapides, pour pouvoir assurer une bonne dynamique. et ce , avec plusieurs servos simultanément. c'est pourquoi j'ai arrété de jouer avec. j'ai suspendu le projet tant que je ne maitrise pas cet aspect de simultanéité.
et puis pour assurer un couple suffisant, j'ai volontairement mis les 6 accus de 1V2 ... ce qui ne favorise pas la longévité des servos... (mais la tension chute tres vite sans regulateur) il ne faut pas les faire chauffer plus d'une minute ...apres ils crament ! 8-) (j'avoue que ce n'est pas tres pro comme approche!.. :lol: )

-
phil
ce qui voit , se voit dans les yeux de ceux qui nous regardent...
Hors ligne
Avatar de l’utilisateur

philopat

Membre asso caliban

  • Messages: 1720
  • Inscription: Mer 5 Nov 2008, 01:19
  • Localisation: Jonzac

Re: patopion - (petite base bipède humanoide)

Message non luMar 30 Juil 2013, 15:43

hello!


je pense avoir trouvé un moyen de résoudre le fameux problème du contrôle simultané des positions de servos. :D

pour mémoire...
ce problème est dû aux temporisations intempestives a placer dans le script du programme de la carte arduino, pour que les servos aient le temps d' atteindre la position souhaitée. ces tempos entrainent alors une fâcheuse durée de chaque instruction de mouvement. ce qui conduit à un décalage dans le temps de toutes les instructions de mouvements qui se succèdent. on obtient une quasi impossiblité de caler des mouvements de servo de manière simultanée.
(bien entendu, ce probleme est dépendant de mes connaissances actuelles sur la programmation de l'arduino. je suis encore debutant , et ne sais pas comment programmer l'arduino en mode avancé, par exemple , par le controle des interruptions du processeur.)


la solution que je pense avoir trouvée, ce serait d'ajouter une petite carte spécifique, dédiée à la gestion des servos. le contrôle des servos devient grace à ça, complètement indépendant de la durée des instructions du programme de l'arduino. la carte en question est la PCA9685 de ADAFRUIT .
il s'agit d'une carte controleur pwm de 16canaux 12 bits via le bus I2C .
les datas 12bits permettent d'attreindre une résolution de "4096 pas", pour la position angulaire d'un servo (au lieu des 180 pas, du PWM arduino)
cette carte existe en petite carte séparée:
Image
mchobby.be/PrestaShop/product.php?id_product=89
sinon cette carte existe aussi en version shield arduino (pour le format standard arduino uno) :
Image
-

il faut donc aborder l'utilisation du bus i2C... :col:
... mais heureusement , adafruit propose une library prete à l'emploi... :P je verrais bien et vous tiendrais au courant. :roll:

-
phil
ce qui voit , se voit dans les yeux de ceux qui nous regardent...
Hors ligne
Avatar de l’utilisateur

leon

Roboticien confirmé

  • Messages: 634
  • Inscription: Dim 19 Juil 2009, 07:57

Re: patopion - (petite base bipède humanoide)

Message non luDim 4 Aoû 2013, 07:58

philopat a écrit:ce problème est dû aux temporisations intempestives a placer dans le script du programme de la carte arduino, pour que les servos aient le temps d' atteindre la position souhaitée. ces tempos entrainent alors une fâcheuse durée de chaque instruction de mouvement. ce qui conduit à un décalage dans le temps de toutes les instructions de mouvements qui se succèdent. on obtient une quasi impossiblité de caler des mouvements de servo de manière simultanée.
Nous en avons déjà parlé, et je ne comprends toujours pas ton problème. Je ne vois pas en quoi l'ajout d'une carte supplémentaire résoudrait quoi que ce soit. Tu devras toujours laisser le temps à tes servos de réagir, ça ne changera rien.

Si je comprends bien, actuellement, tu rajoutes une temporisation d'attente après chaque mouvement de chaque servo. Et bien il suffit de changer ce principe! C'est à dire mettre à jour les consignes de tous les servos en même temps, et gérer les temporisations d'attente après. Et si nécessaire, ne donner une nouvelle consigne à un servo que si on lui a laissé suffisamment de temps pour se déplacer. Donc un servo ne sera pas forcément mis à jour au "cycle d'actualisation" suivant, mais selon un délai qui dépendra du déplacement qu'il a à effectuer. Et le programme déclenche une actualisation de servo toutes les 20ms par exemple (c'est souvent suffisant). Il n'y a pas besoin de gérer les interruptions pour faire ça : une simple boucle infinie avec à l'intérieur l'actualisation des servos et un "wait 20 ms" suffit.

Mais il y a encore mieux : l'idéal est d'actualiser à chaque cycle chaque consigne de servo, mais avec un filtre en amont de la consigne. Un filtre genre "rate limiter", qui tient compte de la vitesse maxi atteingable par ton servo. Ca donnera des mouvements plus fluides.

Bref, n'hésites pas à en rediscuter, parce que personnellement, je ne comprends toujours pas où se situe ton problème.

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/
Hors ligne

lordcuty

Membre asso caliban

  • Messages: 68
  • Inscription: Lun 4 Avr 2011, 20:12

Re: patopion - (petite base bipède humanoide)

Message non luMer 14 Aoû 2013, 09:01

par contre tu peux essayer de regarder, je crois qu'il y a une temporisation dans la librairie Servo.

Mais si tu veux je peux te donner des documents, (numéro 2 de OpenSilicium) pour pouvoir outrepasser la couche arduino et gérer toi même ton PWM, ainsi tu peux faire tes mises à jours de registre en une fois puis faire une temporisation, ce qui aura l'effet d'un séquenceur...
Hors ligne
Avatar de l’utilisateur

VersatileRobot

Membre asso caliban

  • Messages: 344
  • Inscription: Ven 29 Jan 2010, 22:28
  • Localisation: seine-maritime (76)

Re: patopion - (petite base bipède humanoide)

Message non luJeu 15 Aoû 2013, 15:47

philopat a écrit:vous savez quoi? surtout ne faites pas les mêmes choix que j'ai fait!
j'ai déjà pèté 4 mini servos (futaba s3107) à 18€... juste une petite chute de 10 ou 20cm et paf .. les micro dentures des petits engrenages en plastique ne tiennent pas le moindre choc


C'est pour ça que j'ai commencé à travailler sur un principe d'assistance en effort des servos:

Cette modif combine l'organe de liaison au capteur..d'où totale intégration ;)
Le surcout n'est pas bien élevé: environs 11€/ servo, électronique incluse. Mais il faut graver et souder son circuit.
Voici une première patte de mon futur quadrupède:
IMG_0568b.jpg
Patte de Qrious


:col:
"Nous avons seulement un avenir et il sera fait de nos rêves, si nous avons le courage de bousculer les idées reçues." Saichiro Honda
http://versatilerobot.blog.free.fr/
Hors ligne
Avatar de l’utilisateur

philopat

Membre asso caliban

  • Messages: 1720
  • Inscription: Mer 5 Nov 2008, 01:19
  • Localisation: Jonzac

Re: patopion - (petite base bipède humanoide)

Message non luDim 18 Aoû 2013, 00:31

salut tous !

@léon:

je t'avouerais que je n'ai pas vraiment travaillé sur le sujet depuis la derniere fois. je suis resté sur une mauvaise impression de ma gestion des servos. j'ai commandé la petite carte i2c que j'ai quasi reçu aujourd'hui/demain dans un relais postal...
peut etre que tu as raison, mais comme je ne vois pas comment le programmer, le principe de mettre toutes les affectation de valeurs de servo au meme niveau, je n'ai pas encore cherché à faire ça. et puis en vérité, j'ai hâte d'expérimenter la petite carte additive qui me parait être une solution bien meilleure, et qui offre d'autres avantages (précision, nombre de controle, etc..)
comme je l'ai dit, j'avais simplement programmé ce robot comme ça pour voir si je pouvais le faire facilement marcher, sans avoir bien étudié préalablement une structure intelligente de programme pour bien segmenter les procédures qui doivent tourner en rond, et autres genre de considerations algorithmiques..
il n'y a pas de probeme pour en discuter, mais il faut que je travail un peu sur le sujet.. ::-D:
toutefois, si le coeur t'en dit, tu peux faire des experiences et m'en parler! ::):

@lordcuty
salut et merci pour les tuyaux, je regarderais ça de près.
mais pour les interruptions, je ne me sens pas encore vraiment pret pour aborder ça. ça me parait complexe. je suis encore débutant... ;)

@versatilerobot
salut ! c''est génial ce que tu as fait! :bravo:
faudra que je te suive à la trace. de ce que j'ai compris de la façon dont nous fonctionnons, nous les humains: un coup on résiste en s'opposant au mouvement imposé par l'environnement (exemple on reste debout, on ne se laisse pas aplatir par la force de pesanteur) et un coup on accepte de suivre le guide comme tu l' a fais . :roll:
en revanche, pour résoudre les problème de casse des petits servos a pignonnerie plastique, j'ai bien peur que ça ne marchera pas. car ils cassent dans tous les sens de chocs (sens du mouvement, ce que tu résouds, mais aussi axialement et radialement ! )

-
phil
ce qui voit , se voit dans les yeux de ceux qui nous regardent...
Hors ligne
Avatar de l’utilisateur

VersatileRobot

Membre asso caliban

  • Messages: 344
  • Inscription: Ven 29 Jan 2010, 22:28
  • Localisation: seine-maritime (76)

Re: patopion - (petite base bipède humanoide)

Message non luDim 18 Aoû 2013, 14:51

philopat a écrit:pour résoudre les problème de casse des petits servos a pignonnerie plastique, j'ai bien peur que ça ne marchera pas. car ils cassent dans tous les sens de chocs (sens du mouvement, ce que tu résouds, mais aussi axialement et radialement ! )

A oui, dans ce cas il n'y a pas d'autre solution que les pignons métal ou alors alléger au maxi tout le montage..
Je ne doute pas que tu trouveras une solution. Hâte de voir la suite :8):
"Nous avons seulement un avenir et il sera fait de nos rêves, si nous avons le courage de bousculer les idées reçues." Saichiro Honda
http://versatilerobot.blog.free.fr/
Hors ligne
Avatar de l’utilisateur

Esprit

Membre asso caliban

  • Messages: 1641
  • Inscription: Jeu 11 Fév 2010, 11:14
  • Localisation: Ottignies

Re: patopion - (petite base bipède humanoide)

Message non luLun 19 Aoû 2013, 19:15

Versat, c'est vraiment très cool ce que tu as fais là !
Tu utilises quel capteur ?

Vraiment, vraiment sympa ! ::):
Simon, membre fondateur de l'Association Caliban Belgique,
.·° Mon blog : Le Chipoteur de Brols .·°·. L' Association Caliban Belgique °·.
"L'impossible, nous ne l'atteignons pas, mais il nous sert de lanterne." (René Char)
Hors ligne
Avatar de l’utilisateur

VersatileRobot

Membre asso caliban

  • Messages: 344
  • Inscription: Ven 29 Jan 2010, 22:28
  • Localisation: seine-maritime (76)

Re: patopion - (petite base bipède humanoide)

Message non luLun 19 Aoû 2013, 22:05

Esprit a écrit:Tu utilises quel capteur ?

C'est de la micro load cell à 7€ . il y a quatre jauges de contraintes montées en pont de wheastone.
C'est le même genre de composant qu'on trouve dans les balances car le poids peut être placé en n'importe quel point du plateau sans modifier la mesure. C'est ce qu'on appelle un capteur à moment constant ou plus simplement une demie-balance Roberval. Normalement ça doit être utilisé horizontalement, mais mon idée consiste à corriger la mesure en fonction de l'inclinaison du capteur qui est connue par le contrôleur (dans une plage définie).
Habituellement il faut une carte spéciale trés couteuse pour le faire fonctionner, mais j'ai trouvé un ampli Op de précision à moins de 2 € par voie, ce qui donne avec les autres composants discrets une solution à environs 10€.

L'ambition c'est d'obtenir à l'aide de composants simples et peu couteux des mouvements de type résilients, un peu comme le robot Acroban, mais sans casser sa tirelire avec du dynamixel :8): Peut-être a discuter dans un autre topic pour ne pas polluer celui-ci.

Par contre ça ne règle pas le problème de Phil car il est confronté à une casse structurelle suivant tous les DOF :?

Hâte de voir les prochains pas de Patopion :col:
"Nous avons seulement un avenir et il sera fait de nos rêves, si nous avons le courage de bousculer les idées reçues." Saichiro Honda
http://versatilerobot.blog.free.fr/
Hors ligne
Avatar de l’utilisateur

philopat

Membre asso caliban

  • Messages: 1720
  • Inscription: Mer 5 Nov 2008, 01:19
  • Localisation: Jonzac

Re: patopion - (petite base bipède humanoide)

Message non luLun 26 Aoû 2013, 01:41

salut tous , et toutes


j'ai reçu la petite carte Adafruit 16 servos .
je viens de la tester avec juste 2 servos. grâce à la librairie adafruit pour l'arduino, la mise en oeuvre a été vraiment simple avec le programme de test mis à disposition par MChobby.be
aucune difficulté particulière jusqu'ici.
juste un truc à savoir, avec la librairie en question , ça utilise 2 entrées analogiques pour la communication via I2c...
l'alim de la carte se fait par les 5V de l'arduino. l'alim des servos est séparée.
Image
Image
-
maintenant je dois apprendre à bien l'exploiter... :P
mais en tout cas, pour le moment, je la trouve vraiment bien pour l'arduino cette petite carte. elle offre tout de suite tous les connecteurs de servos, en plus des avantages de parallelisation du controle des servos et de la précision de 4096 pas, pour à peine le prix d'une carte de connectique... et on peut mettre plusieurs cartes en serie si nécessaire (plein...) :P .
faudrait que je trouve le meme genre de carte pour les entrées analogiques ! ;)

-
phil
ce qui voit , se voit dans les yeux de ceux qui nous regardent...
Hors ligne
Avatar de l’utilisateur

VersatileRobot

Membre asso caliban

  • Messages: 344
  • Inscription: Ven 29 Jan 2010, 22:28
  • Localisation: seine-maritime (76)

Re: patopion - (petite base bipède humanoide)

Message non luLun 26 Aoû 2013, 18:38

En effet ça m'a l'air pas mal du tout et surtout beaucoup moins cher que les cartes pololu maestro
:col:
"Nous avons seulement un avenir et il sera fait de nos rêves, si nous avons le courage de bousculer les idées reçues." Saichiro Honda
http://versatilerobot.blog.free.fr/
Hors ligne
Avatar de l’utilisateur

philopat

Membre asso caliban

  • Messages: 1720
  • Inscription: Mer 5 Nov 2008, 01:19
  • Localisation: Jonzac

Re: patopion - (petite base bipède humanoide)

Message non luMar 27 Aoû 2013, 12:51

salut versat'

merci pour cette info super! je ne connaissais pas ces petites cartes ci!
elles peuvent etre utilisées pour les capteurs aussi (elle peuvent être parametrées pour gerer des entrées analogiques ,avec conversion ADC)
le truc interessant, c'est que elles disposent d'un séquenceur de 3000 pas! :P
chose que j'ai recherché sans avoir trouvé..
on peut paramétrer la vitesse, mais aussi l'accélération des servos !
et on a aussi la précision de 4096 pas.
en revanche, il est possible que la mise en oeuvre en liaison serie avec une arduino uno soit moins aisée que pour la carte adafruit.
pour les application de bureau, on n'a meme plus besoin d'une carte arduino...puisque il y a une connexion usb, et un séquenceur! :ygeek:

concernant la carte Adafruit PCA9685 que je viens de tester:
j'ai dernièrement constaté un défaut de ma petite carte adafruit, une déception... :|
la précision de la largeur de l'impulsion n'est pas du tout celle que j'attendais.
le nombre de pas de 0 à 4095 permet de gérer une largeur d'impulsion de 0 à "X" microsecondes, telle que la largeur maxi est bien supérieure à ce que les servos standards puissent exploiter.
un servo exploiterait un signal pwm classique avec une impulsion de 1,5 millisecondes +/- 0,5 milliseconde , pour un mouvement de 0 +/-90 degrés.
donc du coup, la précision dans la zone d'exploitation du pwm par le servo descend à peu près à 360 pas.
c'est mieux que les 180 pas de l'arduino, mais 10fois moins que ce à quoi je m'attendais.
je suppose que ça permet également le principe de contrôle par déphasage plutot que par largeur de l'impulsion
(car on peut en effet régler la position du début et de la fin de l'impulsion).

je suppose , sans le savoir précisément , que la carte polulu fonctionne de la même manière. :roll:

(edit du 30aout2013 : correction du signal pwm classique, ma mémoire me joue des tours... )
ce qui voit , se voit dans les yeux de ceux qui nous regardent...
PrécédenteSuivante

Retourner vers Vos réalisations

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron