Aller au contenu


Photo

rantanplan


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

#81 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 768 messages
  • Gender:Male

Posté 27 mai 2020 - 06:28

Tu es luthier ?

 

Je n'aurais pas la prétention de te donner un cours de maths, je n'ai vraiment pas le niveau.

Ce que je te propose, pour trouver la solution à ton problème, c'est de jeter un coup d'oeil à ce cours et en particulier à la vidéo 19 qui traite de la loi des cosinus. Là tu auras le moyen de répondre à ta question. Tu peux accessoirement regarder ma vidéo qui est le résultat direct de ce que j'ai appris dans ce cours, mais il y en a beaucoup d'autres qui sont très bien également.

https://www.youtube....V7v7pWr1hlNV4_9

 

Ceci dit, je pense que tu prends le problème à l'envers. Je peux me tromper, mais à mon avis, il ne faut pas se baser sur le déplacement du corps.

Le but est d'analyser la figure que trace l'extrémité d'une patte. En principe, la patte doit tracer une droite partant de x vers -x. Ou de l'avant vers l'arrière pour parler français.

C'est ce mouvement qui fera avancer ton quadrupède. Puis il faut répéter ce mouvement, il faut donc lever la patte et revenir au point de départ.

Cette droite est décrite par une succession de points. Chaque point déterminera la position des angles du triangle que forme la patte.

 

En partant du corps tu détermines la cinématique, mais en partant de l'extrémité de la patte tu détermineras ce que l'on appelle la cinématique inverse.

Pourquoi partir de l'extrémité de la patte ? Et bien, parce qu'il semblerait que ce soit plus facile, plus simple.



#82 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 97 messages

Posté 27 mai 2020 - 09:15

Non je suis retraité. Le brevet de technicien des métiers de la musique permettait de travailler chez des libraires spécialisés, Fnac, dans les discothèques de prêt ou de continuer dans le son pour devenir preneur de son. Moi j'ai travaillé dans une discothèque de prêt municipale.

C'était avant internet et il y avait du monde !

 

Bref pour revenir au quadripède, j'ai été voir les petits cours sur la trigo, et c'est très abordable comme approche.

J'ai fait un petit schéma et il apparaît qu'avec le théorème de pythagore on obtient les angles du triangle rectangle projeté sur le sol.

l'hypoténuse étant connue, les deux tronçons des bras sont égaux et forment un triangle isocèle. 

Je cherche comment déterminer les angles du triangle isocèle.

 

 

Image(s) jointe(s)

  • problème2.jpg


#83 Sandro

Sandro

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 261 messages
  • Gender:Male

Posté 27 mai 2020 - 10:04

Je suis pas tout à fait sur d'avoir compris quelles dimensions tu connais.

 

Mais si tu connais (ou sais calculer) c, alors c'est assez facile : il suffit de découper le triangle isocèle en 2 triangles rectangles identiques :

triangle_isocèle.jpg

 

Chaque triangle rectangle a un coté mesurant c/2, et l’hypoténuse mesurant d=8cm.

Les angles sont theta et gamma/2 (gamma étant l'angle entre les deux cotés identiques du triangle isocèle).

 

Du coup, maintenant, tu peux utiliser le cosinus :

cos(theta)=adjacent/hypoténuse = (c/2) / d

Donc theta = arccos( c/(2*d) )

 

Ensuite, 2 moyens d'arriver au résultat  :

- soit tu restes dans le triangle rectangle : gamma/2=pi/2 - theta       (donc gamma=pi-2*theta)

- soit tu reviens au triangle isocèle, dont la somme des angles, comme pour tout triangle, vaut pi : theta + theta + gamma = pi, donc gamma = pi - 2*theta

 

Est-ce que ça répond à ta question?


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#84 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 97 messages

Posté 27 mai 2020 - 10:47

Merci Sandro, c'est exactement ce que je cherchais.

 

J'étais aussi arrivé après une bonne nuit à envisager de couper l'hypoténuse en deux pour découper le triangle isocèle en deux triangles rectangle. Un effet bénéfique des petites vidéos conseillées par Oracid.

 

Par contre l'ignorais comment extraire la valeur de l'angle theta depuis le cosinus.

theta = arccos( c/(2*d) )

 

Je pense avoir maintenant la possibilité de calculer les deux angles des servos pour un mouvement linéaire en X.
Je peux aussi envisager que la valeur Y change.

 

Si le robot change d'inclinaison, par exemple se penche en avant, cela se complique.

Après avoir recalculé les angles pour tenir compte de la nouvelle hauteur du sol sur l'avant, il faut rejouer sur les servos d'épaule chacun dans le sens contraire et d'un même angle. 



#85 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 768 messages
  • Gender:Male

Posté 27 mai 2020 - 02:18

Ne perd jamais de vue la loi des cosinus, je pense (je peux me tromper) qu'elle est la clée pour résoudre simplement les angles de la cinématique inverse.
 
Soit un triangle avec les cotés a, b et c de longueurs connues et opposés aux angles A, B et C.
On calcule les angles du triangle ainsi :
 
A = acos( -a2 + b2+ c2   / 2bc )
B = acos(  a2  - b2 + c / 2ac )
C = acos(  a2  + b2 - c / 2ac )

 

Concernant l'inclinaison de ton quadrupède, je pense que tu ne devrais pas t'en inquiéter pour l'instant.

Déjà, si tu arrives à programmer le mouvement d'une patte et donc, par symétrie des 4 pattes, ce sera déjà pas si mal.



#86 Sandro

Sandro

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 261 messages
  • Gender:Male

Posté 27 mai 2020 - 03:17

@Oracid, tu n'aurais pas oublié des parenthèses? et pour C, la division ne serait-elle pas par 2ab ?

 

Du coup, ça donne

A = acos( (-a2 + b2+ c2)   / (2bc) )
B = acos(  (a2  - b2 + c2)  / (2ac) )
C = acos(  (a2  + b2 - c2)  / (2ab) )


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#87 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 768 messages
  • Gender:Male

Posté 27 mai 2020 - 05:36

@Oracid, tu n'aurais pas oublié des parenthèses? et pour C, la division ne serait-elle pas par 2ab ?

Bien vu, Sandro ! Merci.
 
Et pour être complet, voici le type d'instruction que j'utilise :
A = acos( (-(a*a) + (b* b )+ (c*c)) / (2bc) );
B = acos( ((a*a) - (b* b ) + (c*c)) / (2ac) );
C = acos( ((a*a) + (b* b ) - (c*c)) / (2ab) );



#88 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 97 messages

Posté 27 mai 2020 - 09:06

Merci pour ces précisions smileystes  B)

Je vous met une copie écran avec sur la gauche un programme en python qui me donne les coordonnées calculées que j'ai ensuite rentré à droite dans Little Jo.

Je peux mettre maintenant des commentaires et vous remarquerez le bouton Modifier dans les copier / coller.

 

Au dessus un combo box me donne la possibilité de reproduire le mouvement d'une patte (en le sélectionnant puis le copiant) à l'emplacement voulu.

D - aD = modifier Droit dans arrière Droit

J'ai un petit bug à corriger mais cela fonctionne bien. 

 

Par contre les coordonnées calculée remontent la patte en fin de course, vont trop loin en X. (9 cm au lieu de 8 cm ) et remonte en Y de 1 cm

Image(s) jointe(s)

  • Ecran_Modifier.jpg


#89 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 768 messages
  • Gender:Male

Posté 28 mai 2020 - 06:46

Par contre les coordonnées calculée remontent la patte en fin de course, vont trop loin en X. (9 cm au lieu de 8 cm ) et remonte en Y de 1 cm

Je ne comprends pas ce que tu veux dire.

 

Au sujet de ton logiciel, ne serait-il pas possible de faire quelque chose de plus graphique sur les pavés de chaque patte ?

J'imagine un dessin de patte très schématique, et chaque fois que tu déplaces un curseur le résultat serait visible immédiatement.



#90 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 97 messages

Posté 28 mai 2020 - 07:42

Je voulais dire que les données calculées doivent faire reculer la patte de 1 à 8 cm (X). La hauteur du robot doit rester à 14 cm. (Y)

Mais je constate que plus la patte s'éloigne et plus elle remonte, en gros d'1 cm.

La première partie de la patte fait 80 mm, la seconde 80 mm + 5 mm de caoutchouc.

 

Le problème semble venir de la hauteur du robot (Y)  puisque je dois mettre une valeur plus petite pour avoir 14 cm. Il faut que je mette 125 mm.

Je me demande si je dois revoir le sens de mes servos ou l'emplacement de mon 90°.

 

Pour le côté graphique du logiciel, c'est beaucoup plus long à programmer et il faut maîtriser la 3D.

Donc pour l'instant je préfère qu'il reproduise ce que je veux sur le robot, après je verrai ce qu'il est possible de faire.



#91 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 768 messages
  • Gender:Male

Posté 28 mai 2020 - 10:10

Je voulais dire La hauteur du robot doit rester à 14 cm. (Y)

 

Ce n'est pas une obligation.

Considérons le corps du quadrupède comme étant un rectangle. Tu pourrais parfaitement vouloir le faire s'incliner sur l'angle opposé à la  patte que tu veux lever, en pliant la patte de cet angle. Suis-je clair ?

Je ne l'ai pas fait, j'ai des contraintes plus prioritaires, mais j'y ai pensé.

Dans ton cas, avec l'articulation de l'épaule, cela devrait être assez simple. Par exemple, quand tu lèves la patte avant-droit, tu affaisses la patte arrière gauche.

D'un point de vue cinématique de la marche, je pense que c'est correcte, mais tu augmentes la complexité.

Mais, vouloir garder le plan du corps strictement horizontal, je ne sais pas si c'est correct. A voir.



#92 Sandro

Sandro

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 261 messages
  • Gender:Male

Posté 28 mai 2020 - 10:42

A priori, je dirais que c'est possible de garder le corps strictement horizontal et à hauteur constante.

 

Si on prends le cas 2D :

Si on considère la position du "pied" par rapport au corps, tu as deux contraintes (x et y). Vu que tu as deux degrés d'actuation (hanche et genoux), ça fait autant de degrés de libertés que d'actuations : toutes les positions sont donc atteignables (dans la limite de l'espace atteignable).

Du coup, cinématiquement, il n'y a pas de problème. Reste à vérifier si tu peux exercer les forces nécessaires.

 

 Avec le 3ième degré d'actuation et de liberté, tu rajoutes la possibilité de déplacer le pied vers le coté.

 

 

Du coup, à priori tu peux imposer au corps de rester plan d'un point de vue cinématique.

Après, es-ce que c'est la meilleurs chose à faire, je suis pas sur (en particulier, tu risques d'être à la limite de basculement dès que tu lèves une pâte)


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#93 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 97 messages

Posté 28 mai 2020 - 10:57

Cela dépend de la position des pattes et de la répartition du poids du robot.

Mais dans le cas d'un quadripède, il faut qu'il reste en équilibre sur 3 pattes, quel que soit la patte qu'il lève.

Une façon d'y arriver est peut-être d'écarter les pattes.



#94 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 97 messages

Posté 28 mai 2020 - 11:06

Voici le résultat de mes essais de calcul de trajectoire.

Je me suis risqué a faire des commentaires. Ce n'est pas parfait et j'espère que je n'ai pas raconté de bêtises.
Il y a des changements de couleurs qui viennent d'un réglage automatique sur Adobe Première Eléments.

 



#95 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 768 messages
  • Gender:Male

Posté 28 mai 2020 - 11:50

Je suppose qu'à partir de 2'49", tu executes le mouvement, dont tu as parlé précedemment, qui doit faire avancer le quadrupède de 3cm.

Mais, si je ne me trompe pas, l'extrémité de la patte décrit un arc de cercle et non pas une ligne droite.

Or pour avancer, c'est bien une droite qu'il faut que la patte décrive. Sinon, tu ne pousses que sur le point de départ, après tu es dans le vide.

Avec le poids du robot, cela peut fonctionner à cause de la flexion des pattes, mais ce n'est pas très orthodoxe.



#96 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 97 messages

Posté 28 mai 2020 - 12:13

Je fais faire un mouvement de 0 mm à 90 mm. Et oui le problème s'accentue en fin de mouvement, mais à 0 mm la patte n'est pas à la verticale.

Je vais changer l'offset et voir si cela corrige le problème.



#97 Thot

Thot

    Membre passionné

  • Membres
  • PipPipPip
  • 327 messages
  • Gender:Male
  • Location:Toulouse

Posté 28 mai 2020 - 12:33

Je partage une réflexion que nous avions fait sur la marche quadrupède avec des danseurs (quand on marche à quatre pattes, on voit différemment les choses, on ressent les appuis)

Quand on est sur quatre pattes, il est intéressant de pouvoir lever les pattes avant sans tomber en avant. Pour ça, on cale le centre de gravité un peu en arrière, on lève la patte, on la positionne un peu plus en avant puis on avance tout le corps pour basculer le poids vers l'avant, la patte avant tape le sol (pour lever les pattes arrières) et ainsi de suite.

Cela demande de toute façon programmer les cycles de mouvement et on peut utiliser les cinématiques, ça permet d'intégrer une vision un peu dynamique et "basculante" de la marche quadrupède (équivalente à la marche bipède passive) qui n'impose pas forcément d'avoir le corps principal horizontal.

Un petit schéma du robot vu de dessus.

bascule.png


"Il n'y a rien de plus étrange pour l'homme que son image" RUR, Karel Capek
Caliban Midi - Art - Terroir et Robotique


#98 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 97 messages

Posté 28 mai 2020 - 12:49

Merci Thot, ce que tu m'apportes est très intéressant.

Il faut voir la marche comme un centre de gravité toujours en déplacement.

Et à partir de là bouger les pattes en conséquence.



#99 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 768 messages
  • Gender:Male

Posté 28 mai 2020 - 01:40

La marche du quadrupède est quelque chose de complexe. J'ai posté quelques vidéos pour en comprendre la complexité.

A mon avis, ce que démontrent ces vidéos, c'est qu'il faut à tous prix essayer de simplifier le problème.

 

https://www.robot-ma...pedes/?p=109983

https://www.robot-ma...pedes/?p=109984

https://www.robot-ma...pedes/?p=109985



#100 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 97 messages

Posté 29 mai 2020 - 07:30






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

0 members, 0 guests, 0 anonymous users