Calcul de la matrice jacobienne pour la cinématique inverse

19

Lors du calcul analytique de la matrice jacobienne pour résoudre une cinématique inverse, j'ai lu à de nombreux endroits que je pouvais utiliser cette formule pour créer chacune des colonnes d'un joint dans la matrice jacobienne:

Ji=eϕi=[[ai×(eposri)]T[ai]T]

Tels que a est l'axe de rotation dans l'espace mondial, r est le point de pivot dans l'espace mondial et epos est la position de l'effecteur terminal dans l'espace mondial.

Cependant, je ne comprends pas comment cela peut fonctionner lorsque les articulations ont plus d'un DOF. Prenons l'exemple suivant:

entrez la description de l'image ici

Les θ sont le DOF rotatif, le e est l'effecteur terminal, le g est le but de l'effecteur terminal, les P1 , P2 et P3 sont les articulations.

Premièrement, si je calculais la matrice jacobienne sur la base de la formule ci-dessus pour le diagramme, j'obtiendrais quelque chose comme ceci:

J=[((0,0,1)×e)x((0,0,1)×(eP1))x((0,0,1)×(eP2))x((0,0,1)×e)y((0,0,1)×(eP1))y((0,0,1)×(eP2))y((0,0,1)×e)z((0,0,1)×(eP1))z((0,0,1)×(eP2))z000000111]

Ceci est supposé que tous les axes de rotation sont (0,0,1) et tous n'ont qu'un seul DOF rotatif. Donc, je crois que chaque colonne est pour un DOF, dans ce cas, le θ# .

Maintenant, voici le problème: que faire si toutes les articulations ont 6 DOF complets? Disons maintenant que pour chaque joint, j'ai des DOF ​​rotatifs dans tous les axes, θx , θy et θz , ainsi que des DOF ​​translationnels dans tous les axes, tx , ty et tz .

Pour rendre ma question plus claire, supposons que si j'appliquais "avec force" la formule ci-dessus à tous les DOF ​​de toutes les articulations, alors j'obtiendrai probablement une matrice jacobienne comme ceci:

entrez la description de l'image ici

(cliquez pour agrandir)

Mais c'est incroyablement bizarre car les 6 colonnes du DOF pour chaque joint répètent la même chose.

Comment puis-je utiliser la même formule pour construire la matrice jacobienne avec tous les DOF? À quoi ressemblerait la matrice jacobienne dans ce cas?

xénon
la source
En fait, je ne sais pas si j'aurais dû poster cette question ici, en mathématiques, dans GamesDev ou en physique. J'ai le sentiment d'avoir posté cette question au mauvais endroit.
xenon
Je pense que votre erreur est que vous n'avez pas changé le a 'pour chaque DOF, c'est pourquoi ils se ressemblent tous.

Réponses:

11

Je dois admettre que je n'ai pas vu cette formule spécifique très souvent, mais je suppose que dans le cas de plusieurs DOF, vous l'évalueriez pour chaque joint dans chaque colonne, puis (peut-être?) Multiplieriez ces résultats dans chaque colonne.

Mais permettez-moi de suggérer une approche plus simple pour les Jacobiens dans le contexte de nombreux DOF arbitraires: Fondamentalement, le Jacobien vous indique jusqu'où chaque joint se déplace, si vous déplacez le cadre effecteur final dans une direction choisie arbitrairement. Soit soit la cinématique avant, où θ = [ thetav 1 , . . . , θ n ] sont les articulations, f pos est la partie positionnelle de la cinématique avant et f rot la partie rotationnelle. Ensuite, vous pouvez obtenir le jacobien en différenciant la cinématique avant par rapport aux variables communes: f(θ)θ=[θ1,...,θn]fposfrot est le jacobien de votre manipulateur. L'inverser vous donnerait la cinématique inverse en respectant lesvitesses. Cela peut néanmoins être utile si vous voulez savoir jusqu'où chaque articulation doit se déplacer si vous voulez déplacer votre effecteur terminal d'unepetitequantitéΔxdans n'importe quelle direction (car au niveau de la position, ce serait effectivement une linéarisation): Δθ=J-1Δx

J=fθ=[fposθ1,fposθ2...,fposθnfrotθ1,frotθ2...,frotθn]
Δx
Δθ=J1Δx

J'espère que cela vous aidera.

Daniel Eberts
la source
Merci d'avoir répondu! Mais cela signifierait que je devrai calculer les valeurs numériquement? En fait, j'ai vu cet exemple analytique de graphics.cs.cmu.edu/nsp/course/15-464/Fall09/handouts/IK.pdf de la diapositive 19 et graphics.ucsd.edu/courses/cse169_w05/CSE169_13.ppt sur la diapositive 78. D'après les diapositives, il me semble que je n'aurai peut-être pas à passer par les méthodes numériques. Dans les situations où je n'ai pas les fonctions réelles pour différencier, je peux utiliser cette formule. Mais le problème est ce qui se passe lorsque j'ai plus de DOF pour chaque articulation.
xenon
Si je comprends bien les diapositives, vous géreriez le cas de nombreux DOF arbitraires en déterminant les vecteurs pour chacune de ces articulations, où P i est la position de l'articulation. Donc, si vous avez, disons 46 articulations, vous obtiendrez en effet un jacobien avec 46 colonnes et 6 lignes (ou 3, si vous négligez l'orientation de l'effecteur terminal). Pour faire court: vous pouvez appliquer cette formule à n'importe quel nombre d'articulations et ne pas avoir à la "combiner" avec d'autres articulations. (eiPi)Pi
Daniel Eberts
Mais que se passe-t-il si un joint a de nombreux DOF comme , θ y , θ z et des DOF ​​de traduction comme t x , t y , t z ? Maintenant, chaque joint a 6 DOF. D'après ma compréhension du fonctionnement de la matrice jacobienne pour IK, les 6 premières colonnes seront les dérivées de l'effecteur terminal par rapport aux 6 DOF différents, et ces 6 premières colonnes doivent décrire la première articulation. Les 6 colonnes suivantes décrivent le second joint par rapport aux 6 DOF et ainsi de suite. Utilisation de l'équation ( e i - P i )θxθyθztxtytz(eiPi), cela signifie-t-il que les 6 colonnes de chaque joint sont automatiquement regroupées dans une seule colonne?
xenon
3
Ah, je vois. Non, dans ce cas, la formule ne fonctionnerait pas car elle a été conçue pour les joints de rotation avec un axe de rotation. Si vous voulez traiter par exemple des articulations sphériques, vous aurez besoin d'une formule différente qui traite ce type d'articulation spécifique ou vous avez besoin d'une forme fermée de la cinématique avant du robot. Si vous avez cela, vous pouvez le différencier des articulations et obtenir le jacobien. θ
Daniel Eberts
Merci! :) Juste curieux cependant, la diapositive 58 dans graphics.ucsd.edu/courses/cse169_w05/CSE169_13.ppt laisse-t-elle entendre qu'il est possible d'utiliser la formule pour les rotations avec 3 DOF? Ce qui signifie que si un joint n'a pas de DOF de translation et a seulement 3 DOF de rotation, c'est toujours possible? Bien que je ne sais pas pourquoi il faut pour se multiplier avec différentes rotations pour obtenir les différents DOF. (1,0,0,0)
xénon
2

Votre formule pour un joint 6 dof suppose que tous les 6 joints ont l'axe dans le cadre mondial et que tous les joints sont révolutionnaires. Puisque les 6 articulations sont donc identiques, leurs colonnes en jacobien sont également identiques.(0,0,1)

En recommençant, supposons qu'une articulation a un axe passant par un point r . Soit e la position de l'effecteur terminal. Les coordonnées de a , r et e sont toutes données dans le cadre du monde et sont mises à jour au fur et à mesure du déplacement du robot. L'axe a a une longueur de 1 .arearea1

Si l'articulation est révolutionnaire, la colonne du jacobien pour l'articulation est

Jθ(une,r)=[une×(e-r)une]

Si le joint est prismatique, la colonne est

Jp(une)=[une0]

Supposons que nous ayons un joint à 6 ddl qui est non seulement sphérique, mais qui peut également se traduire dans l'espace. Supposons que les axes du joint soient , a y et a z et que chaque joint tournant et prismatique partage un axe, de sorte que le jacobien du joint devienneuneXuneyunez

J=[Jp(uneX)Jp(uney)Jp(unez)Jθ(uneX,r)Jθ(uney,r)Jθ(unez,r)]

uneXuneyunezk

Fk=je=1kLjeTje

LjeTjeRc(q)Pc(q)qcXyz

Δq=(ΔpX,Δpy,Δpz,ΔθX,Δθy,Δθz)jeΔT=PX(ΔpX)Py(Δpy)Pz(Δpz)RX(ΔθX)Ry(Δθy)Rz(Δθz)

TjeTjeΔT

uneXuneyunezjeFjerFje

antonakos
la source
0

Pour autant que je comprends votre question que vous voulez la matrice jacobienne pour le joint 6 DOF.

Permettez-moi de commencer par les bases de la robotique. Vous êtes dans la phase initiale variable de l'apprentissage de la robotique. Vous devez comprendre que chaque joint représente un seul DOF, qu'il s'agisse d'un joint révolutionnaire ou prismatique.

En ce qui concerne l'articulation sphérique, elle peut être convertie en 3 articulations tournantes avec trois axes mutuellement perpendiculaires. Alors maintenant, vous avez simplifié votre articulation sphérique.

Passons à la matrice jacobienne. Il contient 6 lignes. Les 3 premières lignes représentent l'orientation et les 3 dernières lignes indiquent la position en référence à un système de coordonnées particulier. Chaque colonne de la matrice indique un seul joint. Donc, le nombre de joint / DOF que vous avez la même colonne de nombre que vous avez dans la matrice jacobienne.

Voici la vue la plus claire de votre question: un seul joint ne remplit jamais plus d'un DOF, car cela complique le joint et un contrôle précis ne sera jamais réalisé. Même si nous considérons hypothétiquement un joint avec plus d'un DOF, vous devez convertir ce joint en plusieurs joints avec 1 DOF chacun pour simplifier les mathématiques et la solution.

Idéalement, le robot 6 DOF avec 6 articulations tournantes fonctionne pour la majorité sur les vrais problèmes. Mais selon votre question, vous avez envisagé un robot à 6 articulations, chaque articulation ayant 3 DOF, ce qui fait 18 robots DOF. Cela donnera une DOF redondante (c'est-à-dire 18-6 = 12 DOF redondants). Ainsi, pour atteindre l'effecteur terminal du robot à n'importe quel endroit avec n'importe quelle orientation, vous aurez des solutions infinies différentes (la solution signifie la rotation de chaque articulation). Donc, pour résoudre ce type de problème de cinématique inverse, vous aurez besoin d'une méthode itérative de cinématique inverse.

J'espère que j'ai répondu plus clairement à votre question. Pour apprendre la robotique de base, vous pouvez consulter John J. Craig - Introduction to Robotics Mechanics and Control -Pearson Education, Inc.

Cordialement, Manan Kalasariya

manan kalsariya
la source