OUPS !!! Punaise !!!

Matrice changement de repère ou matrice de translation
#21
Posté 19 janvier 2017 - 02:08
#22
Posté 19 janvier 2017 - 11:19
Bon, un ptit résumé, comme la Souligné Ashira commencer par des tests "simple" pour comprendre le fonctionnement d'un point pouvant se déplacer avec deux servomoteurs pour allez à un autre point, ok.
Je vais peut être un peu vite, mais c'est juste pour savoir ou je vais au final. (sans pour autant mettre la charrue avant les bœufs).
Dites moi si je me plante, il nous faut pour déplacer un point dans l'espace, connaitre ou se servir :
- Les angles d'Euler (ça peux aider, avoir le même sens des coordonnées cartésienne avec les angles et autre directions d'Euler, non ?).
- Cinématique du point. (je trouve ça intéressant).
- Les vecteurs de positions sur des coordonnées cartésienne.
- Al-Kashi (Telson, ton fichier PDF est bien sympathique je trouve sur le mouvement de 5 servo, merci).
- Matrices symétrique et de translation, rotation (symétrique par rapport au bras et à la jambe opposé) ^^ (pour la translation on est bien d'accord que cela permet d'affiner des positions sans avoir un mouvement linéaire ???).
- et comme la souligné Budet connaitre les différentes vitesse, accélération (et décélération j'ai envie de dire) de chaque servo pour avoir celle de la main.
Infos :
https://fr.wikipedia.../Angles_d'Euler
https://fr.wikipedia...ki/Cinématique
https://fr.wikipedia...ecteur_position
https://fr.wikipedia...tion_des_robots
https://www.lyceedad...rices_cours.pdf
https://tel.archives...503210/document
http://www.robot-maker.com/forum/index.php?app=core&module=attach§ion=attach&attach_id=5880
Si j'ai oublié quelque chose....???
Modifié par Oliver17, 19 janvier 2017 - 06:46 .
#23
Posté 20 janvier 2017 - 08:34
Oui !!
Une dizaine de cruche de café et une boîte de patator !!
Vous êtes des grands malades !!!
#25
Posté 20 janvier 2017 - 02:50
Erf, avec tous ça je ne sais pas par quoi commencer ^^
Je lis, je lis, je lis....
En fait, là je reste un peu bloqué sur la position de mes servos, (-90 . 90 ou 0 . 180 et dire que 90 c'est le centre), le truc c'est que dans un mouvement (je garde toujours l'exemple d'un bras) il y a des angles qui vont vers le négatif, et je bloque sur se truc (me faut pas grand chose).
Pour un servo à rotation continue je me doute que cela ne pose pas de problème et mettre dans les conditions les limites dont j'aurai besoin, mais là, je veux essayer d'avoir une tite base sympa pour voir ce que j'arrive à en faire
Si je prend l'exemple du servo de 0 . 180 je fais comment pour lui dire que sur l'axe y que la rotation négative sera de -30° et que dans le positif +45° (c'est juste pour l'exemple).
Alors que si je cale les servos dont j'ai besoin en -90 . 90, on sait directement que les servos sont en position 0° et donc plus facile pour lui donner une valeur par la suite en négatif et positif ...
Ou alors pour le 0 . 180 je cale sur le 90 pour le centre, et lorsque je veux faire bouger le bousin avec un - et + je lui dis, par exemple, fais une rotation de -35 ce qui emmènera le servo à -55 pour sa position (en partant du 90 neutre) ??
Ou je me plante carrément et je me prend trop la tête avec ça ???
Mais je pense qu'il faut directement poser ça...
C'est là que je me triture un peu le cerveau pour un truc tout bête. :'(
Hum (je te pourri pas trop le post Telson j'espère.?)
Edit : je viens de tester en mettant comme valeur 0 . 180 et lui indiquant (servo placé à 90) que l'angle se déplace de -35° ça ne fonctionne pas
Il faut bien indiquer des le départ -90 . 90 pour que ça fonctionne.
Bon bon bon......
Modifié par Oliver17, 20 janvier 2017 - 03:24 .
#26
Posté 20 janvier 2017 - 11:50
Sans schéma difficile de comprends tes histoires d'angles ???
Pour en revenir au matrice et bien qu'ayant trituré toutes ces jolies formules il y a plus de 20 ans je suis moi aussi maintenant déconnecté...Et dire que j'en ai bouffé des matrices, des torseurs, des équa. Diff.............Jamais utilisé dans ma vie professionnelle..............
Sinon pour en revenir à nos moutons je comprends bien comment calculer la rotation/translation d'un segment mais ensuite tous les autres segments des jambes doivent suivre et là ............................
#27
Posté 20 janvier 2017 - 11:56
Pour en revenir au matrice et bien qu'ayant trituré toutes ces jolies formules il y a plus de 20 ans je suis moi aussi maintenant déconnecté...Et dire que j'en ai bouffé des matrices, des torseurs, des équa. Diff.............Jamais utilisé dans ma vie professionnelle..............
+1
#28
Posté 21 janvier 2017 - 10:18
Sans schéma difficile de comprends tes histoires d'angles ???
Mes histoires de -90 . 90 et 0 . 180 ??
Ben il n'y a pas vraiment besoin de dessin, c'est juste pour placer le servo à ça position de départ.
Sois il part de 0 à 180 (articulation du coude ou du genoux par exemple), sois pouvoir le placer pour faire en sorte que sont 0 soit entre -90 0 90, comme ça, il peut allez dans le négatif et positif (articulation de l'épaule d'avant en arrière sur la rotation, comme l'articulation de la cuisse).
PS : déjà je me fais un montage de bras, on verra bien.
#29
Posté 21 janvier 2017 - 11:06
Pour mes jambes, position initiale du genou_G = 0, genou_D=180....Et tous les autres servo sont en position initiale à 90°....Mais en fonction du système et du débattement horaire/anti-horaire tu peux choisir d'autres positions initiales....
#30
Posté 21 janvier 2017 - 01:38
Ok, donc j'ai l'impression que je m'emmerde pour rien :'(
Je vais essayer de faire à ta façon, car là je viens de tester et un truc ne fonctionne bref, normal quoi la loi de LEM
Edit : Hum, bon ben j'ai positionné les servomoteurs et pour ceux qui doit être centré sur (entre 0 et 180) ils sont à 90 sur la position, reste plus qu'à gérer tous ça en prog pour pas que ça parte en live ^^
#31
Posté 22 janvier 2017 - 06:18
Ok........
Edit : Hum, bon ben j'ai positionné les servomoteurs et pour ceux qui doit être centré sur (entre 0 et 180) ils sont à 90 sur la position, reste plus qu'à gérer tous ça en prog pour pas que ça parte en live ^^
C'est effectivement au niveau de la programmation que cela est un peu plus compliqué....
Attention aussi quand tu as un membre gauche et droite car généralement les servomoteurs sont montés en opposè et par conséquent le calcul de l'angle ou du moins la conversion de l'angle du servo par rapport à sa position initiale est inversé
#32
Posté 22 janvier 2017 - 06:41
pour ce genre de chose il faut mapper différemment les servomoteurs... De sorte à simplifier les commande plutôt que de toujours devoir savoir qui est dans quel sens.
Exemple concret :
Pour des raisons que j'ignore ( surement une question de montage ) mon humanoïde a ses genoux qui sont pas pareil.
Pour que mon robot soit debout, je dois mettre l'angle du genoux droit à 0° et l'angle du genoux gauche à 180° ( bizarrement c'est exemple pris complètement au hazard me rappel quelque chose ... Vous avez dit bizarre ? )
En fait garder ça en l'état n'est super pas pratique ... il serait bien plus pratique que les deux soit tout les deux à 0° ou bien à 180° au choix, mais les deux pareille ...
On peut me dire, oui mais mon robot est moté comme ça mécaniquement c'est plus pratique je veux pas changer.
Et bien vous savez quoi ? Aucun problème =)
Il suffit simplement de faire l'équivalent de ce qu'on appel un changement de variable en mathématique
Comment on fait ? Il y a plusieurs méthode =) Mais le principe réside dans le fait d'ajouter des fonctions qui sont masqué au vu de l'utilisateur.
Arduino fait déjà ça pour vous quand vous écrivez sur un port ! =)
Quand vous faite digitalWrite(1, HIGH); savez vous combien y a t il de fonction qui sont caché derrière ? =) ( Je vous laisse creuser le sujet si vous êtes curieux )
Je vais néanmoins donner un exemple abstrait pour le genoux.
Imaginons que vous ayez une fonction ;
moveServo( ServoGenou_G, 180 ) ; // moveServo étant une fonction valable pour tout les servomoteurs
Eh bien vous pouvez par exemple créer n fonctions pour chaque servo qui sera par exemple :
moveServoGenou_G ( 0) ; avec moveServoGenou_G ( x ) = moveServo( ServoGenou_G, 180-x ) ;
Autre méthode, une fonction convertisseur :
moveServo ( ServoGenou_G, AngleServoGenou(0) ); avec AngleServoGenou(x) = return ( 180-x) ;
Et il y a encore deux trois astuces du styles qui sont encore envisageable ...
Mais au moins je pense que maintenant vous avez l'idée =)
L'important c'est de simplifier au maximum le contrôle. Moins vous y réfléchirez et plus facilement vous pourrez piloter votre robot
Si mon commentaire vous a plus laissez nous un avis !
Nouveau sur Robot Maker ?
Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope aux articles, à la boutique et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être !
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!
#33
Posté 22 janvier 2017 - 06:46
C'est un exemple hein....
If (membre = gauche) alors
{
angle = 180 - angle
}
else if (membre = droite) alors
{
angle = 90 + angle
}
#34
Posté 22 janvier 2017 - 10:51
Hum humm (mode boulet on) suis sur pyttthhhooonnnn (mode boulet off).
J'ai pas tout capter (suis réveillé depuis peu), perso (sur le final) tel que je le conçois, je me suis fais un fichier avec plusieurs fonction réunissant toutes les infos de chaque servomoteur, ce qui donne :
def epdroitey (self, degres): anglemin = -100 anglemax = 200 servomin = 98 servomax = 545 self.degres = degres servo = 5 result = int((self.degres -anglemin) * (servomax - servomin) / (anglemax - anglemin) + servomin) return servo, result
Sur cette fonction je renvoi les infos nécessaire pour faire fonctionner le servo visé avec toutes ces données.
Le bras est aligné le long du corps, se qui fait que si je fais appel à 0° le bras se retrouve le long du corps, si j'ai besoin d'effectuer un mouvement en arrière je suis dans le négatif (-100°) et donc en avant dans le positif avec sont maxi à (200°)
Mais comme on peut le constater c'est l'axe de l'épaule qui lui permet de basculer le bras d'avant en arrière de + telle position à - telle position. (ma fameuse histoire du -90 . 90)
Voilà comment je voyais la chose, mais je me suis aperçu que si j'essaye d'utiliser cette méthode avec le temps, ça ne fonctionne pas dans le négatif
Il est clair que je me plante quelque part, mais là....
Merci
#35
Posté 08 avril 2017 - 03:15
J'en reviens aux matrices et j'ai un énorme doute sur la représentation des repères liés à chacun des corps de mon robot......
Concernant donc le positionnement des repères X:Y:Z
Dans la vidéo suivante à 1:24:05:
Les deux hypothèses de D.H sont :
infos-vidéo.png 113,86 Ko
1 téléchargement(s)
Dans le document pdf : http://icube-avr.unistra.fr/fr/img_auth.php/7/78/Cours_rob_2_2012.pdf
Les deux hypothèses de D.H sont :
infos-PDF.png 398,55 Ko
2 téléchargement(s)
Et dans sous Wiki : https://fr.wikipedia...avit-Hartenberg
infos-wiki.jpg 55,56 Ko
2 téléchargement(s)
image-wiki.png 34,88 Ko
2 téléchargement(s)
Bon alors finalement c'est quoi les deux hypothèses ...Est ce que L'axe Zn-1 doit être par l'axe de la liaison reliant le corps Cn-1 au corps Cn. (Zn du corps Cn est donc porté par l'axe de la liaison reliant le corps Cn au corps Cn+1).....Et .....
Merci par avance....
++
#36
Posté 14 avril 2017 - 12:23
Me revoici Me revoilà tjrs avec ces histoires de matrices , de repères, ....
Avant de continuer à phosphorer pour rien je souhaiterais savoir si quelqu’un pourrait confirmer la position et les valeurs an, dn, αn, θn, des repères du schéma ci-dessous :
placement repère.PNG 158,57 Ko
52 téléchargement(s)
Même image mais en pdf :
placement repere.pdf 1,15 Mo
87 téléchargement(s)
Pour réaliser ce schéma je me suis basé sur la documentation répertoriée dans le fichier suivant :
documentation.pdf 215,83 Ko
147 téléchargement(s)
Après validation du schéma nous verrons pour les étapes suivantes ....
Merci par avance .
++
#37
Posté 14 avril 2017 - 05:05
De peur de dire une connerie, mais je me lance tout de même, vu que ton robot va marcher, j'aurais mis le "référentiel du monde" au sol comme l'explique le livre, qui eux bossent sur des humanoïdes et non des bras articuler, je pense que cela à une grande importance, surtout lorsque le pied ne touche plus le sol comme ça déjà tu sais à quel hauteur il peut être par rapport au référentiel.
Là (ce que je crois comprendre) cela me fait penser à une sorte de bras fixé sur un point (socle, mur ou autre).
Et tous t'on système de coordonnées local devrait être orienté de la même façon que le référentiel du monde.
Voilou j'ai dis ma connerie, c'est juste mon avis perso, mais je pense que les pros pourront beaucoup plus t'éclairer.
PS : c'est volontaire d'avoir placé x0 y0 z0 dans ce sens là ?
Perso je fais de sorte à avoir x pour le sens de marche, y latéral et z la hauteur.
xyz-2170076_960_720.png 72,48 Ko
2 téléchargement(s)
oups désolé pour la taille de l'image.
"HumaOne Powerrrr !!!!!"
#38
Posté 14 avril 2017 - 07:54
Pas de problème Olivier l'échange ne peut être que bénéfique
Ici il s'agit d'une jambe qui va se déplacer et il est vrais que j'ai choisi de placer mon repère R0 au niveau de l'articulation de la hanche....
Concernant l'orientation des repères j'ai appliqué les conditions de DH donc pas vraiment possible, sauf erreur, de l'orienter de la même façon qu'habituellement enfin c'est ce qu'il me semble avoir compris.....
Pour positionner les repères je me base sur la très rapide synthèse du fichier documentation.pdf
DH.JPG 63,36 Ko
0 téléchargement(s)
il faudrait comme tu l'indiques rajouter un repère au niveau du sol et de ce fait R0 deviendrait R1, .....ça me parait évident maintenant ....
#39
Posté 14 avril 2017 - 09:11
Me revoici Me revoilà tjrs avec ces histoires de matrices , de repères, ....
Avant de continuer à phosphorer pour rien je souhaiterais savoir si quelqu’un pourrait confirmer la position et les valeurs an, dn, αn, θn, des repères du schéma ci-dessous :
Même image mais en pdf :
placement repere.pdf
Pour réaliser ce schéma je me suis basé sur la documentation répertoriée dans le fichier suivant :
Après validation du schéma nous verrons pour les étapes suivantes ....
Merci par avance .
++
J'ai pas compris la question ...
Si mon commentaire vous a plus laissez nous un avis !
Nouveau sur Robot Maker ?
Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope aux articles, à la boutique et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être !
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!
#40
Posté 14 avril 2017 - 10:44
ha, et bien je souhaiterais savoir si les positions que je donne à mes différents repères sont conformes aux condition de D.H et si les calculs des valeurs an, dn, αn, θn sont justes ....
Désolé je ne vois pas pour le moment comment mieux définir ma question.....Si ce n'est tjrs pas clair j'essayerai de reformuler.
++
0 utilisateur(s) li(sen)t ce sujet
0 members, 0 guests, 0 anonymous users