Al calcular la matriz jacobiana para resolver una cinemática inversa analíticamente, leí en muchos lugares que podría usar esta fórmula para crear cada una de las columnas de una articulación en la matriz jacobiana:
De modo que es el eje de rotación en el espacio mundial, es el punto de pivote en el espacio mundial, y es la posición del efector final en el espacio mundial.
Sin embargo, no entiendo cómo puede funcionar esto cuando las articulaciones tienen más de un DOF. Tome lo siguiente como ejemplo:
El es el DOF rotacional, el es el efector final, el es el objetivo del efector final, el , y son las articulaciones.
Primero, si tuviera que calcular la matriz jacobiana basada en la fórmula anterior para el diagrama, obtendría algo como esto:
Se supone que todos los ejes de rotación son y todos ellos solo tienen un DOF rotacional. Entonces, creo que cada columna es para un DOF, en este caso, el .
Ahora, aquí está el problema: ¿Qué pasa si todas las articulaciones tienen 6 DOF completos? Digamos ahora, para cada articulación, tengo DOF rotacionales en todos los ejes, , y , y también DOF traslacionales en todos los ejes, , y .
Para aclarar mi pregunta, supongamos que si aplicara "con fuerza" la fórmula anterior a todos los DOF de todas las articulaciones, entonces probablemente obtendré una matriz jacobiana como esta:
(haga clic para tamaño completo)
Pero esto es increíblemente extraño porque las 6 columnas del DOF para cada articulación repiten lo mismo.
¿Cómo puedo usar la misma fórmula para construir la matriz jacobiana con todos los DOF? ¿Cómo sería la matriz jacobiana en este caso?
Respuestas:
Tengo que admitir que no he visto esa fórmula específica muy a menudo, pero supongo que en el caso de más de un DOF, la evaluaría para cada articulación en cada columna y luego (¿tal vez?) Multiplicaría esos resultados en cada columna
Pero permítanme sugerir un enfoque más simple a los jacobianos en el contexto de muchos DOF arbitrarios: Básicamente, el jacobiano le dice qué tan lejos se mueve cada articulación, si mueve el marco efector final en una dirección elegida arbitrariamente. Deje que sea la cinemática directa, donde θ = [ theta 1 , . . . , θ n ] son las articulaciones, f pos es la parte posicional de la cinemática delantera y f rot la parte rotacional. Entonces puedes obtener el jacobiano diferenciando la cinemática delantera J = ∂f(θ) θ=[θ1,...,θn] fpos frot con respecto a las variables conjuntas:
es el jacobiano de tu manipulador. Invertirlo le daría la cinemática inversa con respecto a lasvelocidades. Sin embargo, aún puede ser útil si desea saber qué tan lejos debe moverse cada articulación si desea mover su efector final en unapequeñacantidadΔxen cualquier dirección (porque en el nivel de posición, esto sería efectivamente una linealización):
Δθ=J-1Δx
Espero que esto ayude.
fuente
Si la articulación es revoluta, la columna del jacobiano para la articulación es
Si la articulación es prismática, la columna es
The axesax , ay , and az depend on the forward kinematics of the robot. To illustrate, let the transformation of the k th joint in the world frame be given by
where the transformationsLi are constants, and the transformations Ti depend on the joint variables. Let Rc(q) and Pc(q) be the transformations that rotate and translate by q about the coordinate axis named c (either x , y , or z ).
LetΔq=(Δpx,Δpy,Δpz,Δθx,Δθy,Δθz) be a displacement, computed by help of the Jacobian, for the i th joint. Let ΔT=Px(Δpx)Py(Δpy)Pz(Δpz)Rx(Δθx)Ry(Δθy)Rz(Δθz) and update the local transformation of the joint by:
In this formulation of the forward kinematics, the axesax , ay , and az of joint i are exactly the columns of the rotation matrix of Fi . Also the position r is the translation vector of Fi .
fuente
As far as I understand your question that you want the Jacobian matrix for the 6 DOF joint.
Let me start with very basics of robotics. You are in the vary initial phase of robotics learning. You need to understand that each joint represent a single DOF either it would be revolute or prismatic joint.
As far as spherical joint is concern, it can be converted in to 3 revolute joint with three mutually perpendicular axis. So, now you have simplified your spherical joint.
Moving forward to Jacobian matrix. It contain 6 rows. First 3 rows represents orientation and last 3 rows indicated position with reference to a particular coordinate system. Each column in matrix indicate a single joint. So the number of joint/DOF you have the same number column you have in Jacobian matrix.
Here is the more clear view to your question: A single joint never fulfil more than one DOF, because it complicates the joint and precise control will never achieve. Even if we consider hypothetically a joint with more than one DOF, you need to convert that joint into multiple joints with 1 DOF each to simplify the mathematics and solution.
Ideally 6 DOF robot with 6 revolute joint works for majority on the real problems. But as per your question you considered 6 joint robot with each joint having 3 DOF that makes 18 DOF robot. This will give redundant DOF (i.e. 18-6= 12 redundant DOF). So, to reach robot end-effector to any location with any orientation you will have infinite different solutions (solution means rotation of each joint). So solve this kind of inverse kinematics problem you will require iterative method of inverse kinematics.
Hope, I have answered your question more clearly. To learn basic robotics you can refer John J. Craig - Introduction to Robotics Mechanics and Control -Pearson Education, Inc.
Regards, Manan Kalasariya
fuente