p17vn3mf4l14s13eqstbtf63o54.pdf
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Capítulo 1 Modelado de Robots Manipuladores<br />
Centro Interdisciplinario de Posgrados<br />
Universidad Popular Autónoma del Estado de Puebla<br />
Posgrado en Ingeniería Mecatrónica<br />
Fernando Reyes Cortés<br />
Tópicos Especiales de Robótica MEC507<br />
Primavera 2013
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Parte II<br />
Introudcción<br />
Contenido<br />
Cinemáticas.<br />
Conceptos de cinemática:<br />
Cinemática directa<br />
Cinemática inversa<br />
Cinemática diferencial<br />
Cinemática diferencial inversa<br />
Singularidades<br />
Preliminares matemáticos de la cinemática directa<br />
Producto punto<br />
Matrices de rotación<br />
Matrices de traslación<br />
Matrices homogéneas<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 2 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Cinemática directa<br />
Cinemática es la parte de la física que estudia el movimiento de sistemas mecánicos, sin tomar en cuenta las fuerzas<br />
que lo originan. Por lo tanto, no involucra ecuaciones diferenciales como en el caso de modelos dinámicos.<br />
Al estudio de la cinemática aplicado a los sistemas mecánicos que forman robots manipuladores se le denomina<br />
cinemática directa; se refiere al estudio analítico del movimiento del robot con respecto a un sistema de referencia<br />
cartesiano fijo Σ0 x0, y0, z0 relacionando la dependencia que existe entre las coordenadas articulares o generalizadas<br />
q ∈ IR n con las coordenadas cartesianas x, y, z T ∈ IR 3 y la orientación θ, φ, ψ T ∈ IR 3 del extremo final del<br />
robot (donde habitualmente se coloca la herramienta de trabajo).<br />
Esta dependencia se realiza por medio de una función vectorial f R continua y diferenciable en la variable de estado<br />
articular q.<br />
Como parte de la estructura matemática de la cinemática directa intervienen los parámetros geométricos (longitudes<br />
del i-ésimo eslabón li); generalmente, esta función es no lineal.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 3 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Cinemática directa<br />
Cinemática directa es una función vectorial f R(li, q) que relaciona las coordenadas articulares q ∈ IR n y<br />
propiedades geométricas del sistema mecánico li con las coordenadas cartesianas x, y, z T ∈ IR 3 del robot y la<br />
orientación θ, φ, ψ T ∈ IR 3 de la herramienta de trabajo colocada en el extremo final.<br />
Es decir, la cinemática directa es un mapeo vectorial f R : IR n → IR m tal que:<br />
⎡ ⎤<br />
x<br />
⎢<br />
⎢y<br />
⎥<br />
⎢<br />
⎢z<br />
⎥<br />
⎢<br />
⎢θ<br />
⎥<br />
⎣φ⎦<br />
ψ<br />
= f R(li, q) (1)<br />
donde n indica el número de grados de libertad y la dimensión del vector de coordenadas articulares q, m es la<br />
dimensión conjunta de las coordenadas cartesianas y la orientación de la herramienta de trabajo.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 4 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Cinemática directa<br />
De manera general, el posicionamiento del extremo final del robot en el espacio tridimensional (pose) requiere<br />
de 6 coordenadas (m = 6): 3 coordenadas para la posición cartesiana y 3 coordenadas para la orientación de la<br />
herramienta de trabajo.<br />
Dependiendo de la aplicación del robot se pueden requerir menos coordenadas de posición y orientación. Por ejemplo,<br />
un robot para pintura de armaduras automotrices requiere las 6 coordenadas, en contraste con un robot que corta<br />
figuras de plástico sobre un plano requiere 2 coordenadas cartesianas de posición y ninguna de orientación.<br />
Cuando n > m se denomina robots redundantes. El empleo de la cinemática directa resulta de utilidad en la<br />
planificación de trayectorias y en el control cartesiano. El papel fundamental de la cinemática directa, es computar<br />
la posición y orientación del extremo final del robot manipulador como una función de las variables articulares.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 5 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Cinemática directa<br />
Un robot manipulador se considera como una serie de eslabones interconectados a través de articulaciones (servomotores)<br />
rotacionales o prismáticas en forma de cadena cinemática abierta, es decir el extremo final donde se coloca<br />
la herramienta no se encuentra conectada mecánicamente a la primera articulación (base) del robot. Desde el punto<br />
de vista topológico, la cadena cinemática se considera abierta cuando los dos extremos de la cadena no se tocan. De<br />
otra manera la cadena cinemática formaría un lazo si sus dos extremos están mecánicamente unidos.<br />
La estructura mecánica del robot manipulador se caracteriza por tener un número de grados de libertad, los cuales<br />
determinan en forma única su configuración. Típicamente, cada grado de libertad está asociado a una articulación<br />
(variable articular q).<br />
Figura:<br />
Figura 1: Cadena en cinemática abierta.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 6 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Cinemática inversa<br />
Dada la posición del extremo final del robot en coordenadas cartesianas [x, y, z] T y la orientación [ψ, θ, φ] T , con<br />
respecto a un sistema de referencia fijo Σ0(x0, y0, z0), así como los parámetros geométricos li, entonces surge la<br />
pregunta natural:<br />
¿Pueden obtenerse las coordenadas articulares del robot q para que el extremo final del robot se posicione en las<br />
coordenadas cartesianas solicitadas, con la orientación requerida?<br />
El problema planteado se conoce como cinemática inversa y representa un área de la robótica de mayor complejidad<br />
que la cinemática directa. Para un robot manipulador siempre es posible encontrar el modelo de cinemática<br />
directa, mientras que en la cinemática inversa pueden haber varias soluciones e inclusive no existir solución analítica;<br />
si este es el caso, entonces como posibles formas de solución pueden proponerse redes neuronales, métodos<br />
numéricos, iterativos, geométricos, etcétera.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 7 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Cinemática inversa<br />
La cinemática inversa es un problema no lineal que relaciona las coordenadas articulares q ∈ IR 3 en función de<br />
las coordenadas cartesianas y la orientación de la herramienta del extremo final del robot manipulador<br />
donde f −1<br />
R (x, y, z, li, θ, φ, ψ) es función inversa de la ecuación (1).<br />
q = f −1<br />
R (x, y, z, li, θ, φ, ψ) (2)<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 8 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Cinemática diferencial<br />
Cinemática diferencial directa es la derivada con respecto al tiempo de la cinemática directa:<br />
d <br />
x<br />
dt<br />
y z θ φ<br />
T ψ =<br />
<br />
v<br />
=<br />
w<br />
d<br />
dt f R(q) (3)<br />
= ∂f R(q)<br />
˙q = J (q) ˙q.<br />
∂q<br />
x, y, z T =<br />
La cinemática directa relaciona la velocidad articular ˙q ∈ IR n con la velocidad lineal v = d<br />
dt<br />
T 3 d<br />
T T ˙x, ˙y, ˙z ∈ IR y la velocidad angular ˙w = θ, φ, ψ = ˙θ, ˙<br />
dt<br />
φ, ψ˙ 3<br />
∈ IR , además el mapeo es descrito en<br />
términos de una matriz J (q) = ∂f R (q )<br />
∂q<br />
∈ IR6×n denominada jacobiano del robot o jacobiano analítico:<br />
J (q) =<br />
<br />
Jv (q)<br />
. (4)<br />
Jw (q)<br />
Jv (q) ∈ IR 3×n relaciona la velocidad articular ˙q ∈ IR n con la velocidad lineal v ∈ IR 3 , mientras que Jw (q) ∈<br />
IR 3×n relaciona la velocidad angular w ∈ IR 3 con la velocidad articular ˙q ∈ IR n , es decir:<br />
<br />
<br />
v<br />
Jv (q) ˙q<br />
= J (q) ˙q = . (5)<br />
w<br />
Jw (q) ˙q<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 9 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Cinemática diferencial<br />
El jacobiano del robot representa una importante herramienta en robótica que sirve para caracterizar a un robot manipulador,<br />
encontrar configuraciones singulares, analizar redundancia, determinar la cinemática diferencial inversa, así<br />
como describir la relación entre la fuerza aplicada y los pares o torques resultantes del extremo final. Es indispensable<br />
para el análisis y diseño de algoritmos de control cartesiano.<br />
Hay varias formas de seleccionar la orientación de la herramienta del robot manipulador:<br />
De manera particular dicha orientación puede ser representada usando los ángulos de Euler (un sistema de<br />
referencia asociado al extremo final del robot o a la herramienta de trabajo), entonces la velocidad angular<br />
w = ˙ θ, ˙ φ, ˙ ψ T ∈ IR 3 relaciona la matriz jacobiano analítico, como se encuentra descrita en la ecuación (3).<br />
Otra posible forma de modelar la orientación de la herramienta del robot es expresarla directamente en un<br />
sistema de referencia específico, por ejemplo al origen localizado en la base del robot, entonces a la matriz J (q)<br />
se le denomina jacobiano geométrico que depende de la configuración del robot manipulador.<br />
El jacobiano analítico difiere del jacobiano geométrico: básicamente la diferencia se encuentra en cómo modelar<br />
la orientación de la herramienta de trabajo del robot.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 10 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Cinemática diferencial inversa<br />
La cinemática diferencial inversa representa la relación entre la velocidad articular ˙q con la velocidad lineal de<br />
movimiento v y la velocidad angular w, expresada en términos de la matriz inversa del jacobiano del robot:<br />
˙q = J −1 <br />
v<br />
(q)<br />
w<br />
donde J −1 (q) ∈ IR 6×n es la matriz inversa del jacobiano del robot, la cual existe si es una matriz cuadrada y su<br />
determinante es diferente a cero.<br />
.<br />
Si el determinante del jacobiano del robot J (q) es cero, entonces se dice que no es de rango completo y se presentan<br />
problemas de singularidades<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 11 / 50<br />
(6)
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Singularidades<br />
Singularidad significa que no es posible indicarle un movimiento arbitrario al extremo final del robot, es decir<br />
para una velocidad lineal v y velocidad angular w finitas puede corresponder una velocidad articular ˙q infinita.<br />
Puede existir un conjunto infinito de soluciones para la cinemática directa.<br />
La cinemática inversa diferencial tiene un número infinito de soluciones.<br />
En control cartesiano la fuerza aplicada al robot puede provocar un par infinito a las articulaciones del robot.<br />
Dependiendo del tipo de robot, las singularidades pueden generar un número infinito de puntos de equilibrio<br />
en la ecuación en lazo cerrado, formada por la dinámica del robot y la estructura cartesiana de control.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 12 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Preliminares matemáticos de la cinemática directa<br />
El posicionamiento del extremo final del robot en el espacio tridimensional (pose) requiere de 6 coordenadas: 3<br />
coordenadas para la posición cartesiana y 3 coordenadas para la orientación de la herramienta de trabajo.<br />
A la relación que existe entre las coordenadas articulares del robot con las coordenadas cartesianas y la orientación<br />
de la herramienta de trabajo colocada en el extremo final del robot se le denomina cinemática directa.<br />
Como parte de la representación matemática de la cinemática directa de robots manipuladores se encuentra el<br />
uso de transformaciones homogéneas para representar orientación y traslación de la herramienta de trabajo, con<br />
respecto al sistema de referencia fijo Σ(x, y, z) ubicado generalmente en la base del robot.<br />
Como preámbulo al tema de matrices de transformación homogénea están los conceptos de producto punto o escalar<br />
entre vectores, así como matrices ortogonales (matrices de rotación).<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 13 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Preliminares matemáticos de la cinemática directa<br />
El producto punto permite utilizar proyecciones de ortogonalidad de los ejes principales de un sistema de<br />
referencia Σ1(x1, y1, z1) relativo a otro sistema de referencia Σ0(x0, y0, z0).<br />
Otro de los temas como prerrequisito es el correspondiente a matrices ortogonales para modelar la orientación<br />
y traslación de la herramienta de trabajo respecto al sistema fijo del robot Σ(x, y, z).<br />
Es necesario resaltar las propiedades matemáticas de las matrices ortogonales que facilitan el análisis y descripción<br />
de movimientos de rotación y traslación.<br />
En función de las propiedades matemáticas de las matrices ortogonales se generan diferentes reglas de rotación.<br />
Las matrices homogéneas incluyen estos conceptos para ofrecer una representación compacta de la matriz de rotación,<br />
que determina la orientación relativa de un sistema de referencia Σ1(x1, y1, z1) con respecto a un sistema de referencia<br />
fijo Σ0(x0, y0, z0) y del vector de coordenadas o de traslación x 0 = T x0, y0, z0 .<br />
Con la estructura matemática de las transformaciones homogéneas se desarrollan un conjunto de librerías para<br />
propósitos de simulación de cinemática directa de robots manipuladores.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 14 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Producto punto<br />
Modelar la orientación de la herramienta de trabajo del robot se encuentra el producto escalar o producto interno,<br />
también conocido como producto punto (dot product), el cual permite utilizar los conceptos de la geometría euclidiana<br />
tradicionales como longitudes, ángulos, proyecciones geométricas, ortogonalidad en dos y tres dimensiones de los<br />
sistemas de referencia asociados al robot y de la herramienta de trabajo.<br />
Al producto interno x · y es una operación definida sobre dos vectores x, y ∈ IR n de un espacio euclidiano cuyo<br />
resultado es un número o escalar.<br />
Considere los siguientes vectores x, y ∈ IR n , el producto interno vectorial se define como:<br />
x · y = x T y =<br />
n<br />
xiyi = x1y1 + x2y2 + · · · + xnyn. (7)<br />
i=1<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 15 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Producto punto<br />
El producto punto se le llama producto escalar debido a que también se puede realizar como: x · y = x T y.<br />
En un espacio euclidiano real, el producto interno (7) también acepta una definición geométrica dada por:<br />
x · y = xy cos(θ) (8)<br />
donde θ es el ángulo que forman los vectores x y y y las normas euclidianas se encuentran definidas por x =<br />
x 2 1 + x 2 2 + · · · + x 2 n, y = y 2 1 + y 2 2 + · · · + y 2 n, respectivamente.<br />
Figura:<br />
Figura 2: Producto interno vectorial x · y.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 16 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Producto punto<br />
Considere x, y, z ∈ IR n , y α ∈ IR; el producto interno tiene las siguientes propiedades:<br />
Conmutativa: x · y = y · x.<br />
Distributiva: z · (x + y) = z · x + z · y.<br />
Asociativa: αx · y = x · αy = x · yα.<br />
La expresión geométrica del producto escalar permite calcular el coseno del ángulo θ existente entre los<br />
vectores x y y de la siguiente manera:<br />
cos(θ) =<br />
x · y<br />
xy =<br />
x1y1 + x2y2 + · · · + xnyn<br />
<br />
2 x1 + x 2 2 + · · · + x 2 <br />
2<br />
n y1 + y 2 2 + · · · + y 2 .<br />
n<br />
Vectores ortogonales: x · y = 0 ⇒ x ⊥ y, θ = π rad (90 grados).<br />
2<br />
Vectores paralelos o con la misma dirección si el ángulo que forman es 0 rad (0 grados) o π rad (180 grados):<br />
x · y = xy.<br />
x · x = 0 ⇐⇒ x = 0 ∈ IR n .<br />
Si x = 0 ⇒ x · x > 0.<br />
La norma euclidiana de un vector x se puede expresar como:<br />
x = √ x · x = √ x T x = n<br />
i=1<br />
x 2<br />
i = x 2 1 + x 2 2 + · · · + x 2 n.<br />
MATLAB contiene la función dot(x,y) para realizar la operación producto interno x · y de los vectores x, y ∈ IR n ,<br />
con la siguiente estructura de sintaxis:<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 17 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Producto punto<br />
x · y= dot(x,y)<br />
x · y=dot(x,y,n)<br />
El producto punto x · y equivale a realizar la operación en MATLAB: x · y=x’*y.<br />
La norma euclidiana x de un vector x ∈ IR n , también conocida como norma 2, se puede calcular utilizando la<br />
función norm con la siguiente sintaxis: x=norm(x,2)<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 18 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Producto punto<br />
Example<br />
Sean x, y ∈ IR 2 con las siguientes componentes respectivamente:<br />
x =<br />
<br />
2<br />
4<br />
<br />
8<br />
y =<br />
−3<br />
obtener el producto punto x · y y el ángulo θ que forman entre los vectores x, y.<br />
Puesto que los vectores x, y ∈ IR 2 están formados por x = 2 4 T y y = 8 −3 T , y tomando en cuenta la<br />
definición del producto punto se obtiene lo siguiente:<br />
El ángulo que forman los vectores x y y se obtiene como:<br />
x · y = x1y1 + x2y2 = 2 (8) − 4 (3) = 16 − 12 = 4.<br />
cos(θ) =<br />
x · y<br />
xy =<br />
lo que significa que θ =1.465 rad (83.99 grados).<br />
Observe que evidentemente se cumple:<br />
=<br />
x1y1 + x2y2<br />
<br />
2 x1 + x 2 <br />
2<br />
2 y1 + y 2 2<br />
4<br />
√<br />
22 + 42 82 =<br />
+ (−3) 2<br />
4<br />
(4.4721)(8.544)<br />
= 0.1046<br />
x · y = xy cos(θ) = √ 20 √ 73 cos(1.465) = (4.472135)(8.544003)(0.1046) = 4.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 19 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Producto punto<br />
Código Fuente 1 crm prodot<br />
Control de Robots Manipuladores, primavera 2013<br />
Fernando Reyes Cortés. Posgrado en Automatización, Facultad de Ciencias de la Electrónica BUAP.<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
crm prodot.m MATLAB versión 2012a<br />
clc;<br />
clear all;<br />
close all;<br />
disp(’Producto interno o escalar de vectores’)<br />
x = [2; 4 ]; %vector columna de dos renglones x ∈ IR2 y = [8; -3]; %vector columna de dos renglones y ∈ IR2 xdoty=dot(x,y) %producto interno x · y usando la función dot<br />
xdoty m=x’*y %forma matemática del producto interno x · y<br />
theta=acos(x’*y/(norm(x,2)*norm(y,2))) %ángulo que forman los vectores x, y ∈ IR2 %forma geométrica del producto interno: x · y = xy cos(θ)<br />
xdoty geometrica=norm(x,2)*norm(y,2)*cos(theta)<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 20 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Matrices de rotación<br />
La figura 3muestra dos sistemas de referencia cartesianos, asociados a un cuerpo rígido, representados por <br />
Σ0 x0, y0, z0 y Σ1 x1, y1, z1 , ambos sistemas comparten el mismo origen. El sistema de referencia Σ1 x1, y1, z1<br />
<br />
mantiene una orientación relativa al sistema de referencia fijo Σ0 x0, y0, z0 .<br />
Figura:<br />
Figura 3: Sistemas de referencia fijo Σ0 y rotado Σ1.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 21 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Producto punto<br />
Figura:<br />
Figura 4: Sistemas de referencia fijo Σ0 y rotado Σ1.<br />
Considérese la figura 4:<br />
Sea un punto p sobre el cuerpo rígido de la figura<br />
4.<br />
<br />
Con respecto al sistema Σ0 x0y0z0 tiene coordenadas<br />
p0 = [x0, y0, z0] T .<br />
El mismo punto p se representa como p1 =<br />
[x1, y1, z1] T con respecto al sistema de referencia<br />
Σ1 x1, y1, z1 .<br />
El problema que se plantea consiste encontrar la relación<br />
que hay entre las coordenadas de un punto <br />
p1 en el sistema de referencia Σ1 x1, y1, z1 con<br />
el vector p0 definido en el sistema de referencia<br />
x0, y0, z0 .<br />
Σ0<br />
Considere vectores bases para cada sistema de referencia<br />
Σ0 y Σ1. Sean {i 0, j 0, k 0} vectores unitarios<br />
a lo largo de los ejes x0, y0, z0, respectivamente.<br />
Es decir, i 0 = 1, 0, 0 T , j 0 = 0, 1, 0 T ,<br />
k 0 = 0, 0, 1 T . Similarmente se definen los vectores <br />
unitarios {i 1, j 1, k 1} para el sistema Σ1 x1, y1, z1 .<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 22 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Matrices de rotación<br />
Un vector que va desde el origen común para ambos sistemas hasta el punto p, puede ser expresado en función de<br />
cualquiera de las dos bases de vectores unitarios de la siguiente forma:<br />
p 0 = p0xi0 + p0yj 0 + p0zk 0 con respecto al sistema Σ0 (9)<br />
p 1 = p1xi1 + p1yj 1 + p1zk 1 con respecto al sistema Σ1 (10)<br />
Los vectores p 0, p 1 representan al mismo punto p. Tomando en cuenta las ecuaciones (9) y (10) la relación que hay<br />
entre sus componentes adquiere la siguiente forma:<br />
p0x = p 0 · i 0 = p 1 · i 0<br />
= p1xi1 · i 0 + p1yj 1 · i 0 + p1zk 1 · i 0 (11)<br />
p0y = p 0 · j 0 = p 1 · j 0<br />
= p1xi1 · j 0 + p1yj 1 · j 0 + p1zk 1 · j 0 (12)<br />
p0z = p 0 · k 0 = p 1 · k 0<br />
= p1xi1 · k 0 + p1yj 1 · k 0 + p1zk 1 · k 0. (13)<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 23 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Matrices de rotación<br />
Estas ecuaciones pueden ser escritas de manera compacta como:<br />
p 0 = R 1 0p 1 (14)<br />
donde R1 0 representa la siguiente matriz<br />
R 1 ⎡<br />
⎤<br />
i 1 · i 0 j 1 · i 0 k 1 · i 0<br />
0 = ⎣i<br />
1 · j 0 j 1 · j 0 k 1 · j ⎦<br />
0 . (15)<br />
i 1 · k 0 j 1 · k 0 k 1 · k 0<br />
donde R1 0 ∈ IR 3×3 <br />
es la matriz de transformación de las coordenadas del punto p del sistema de referencia Σ1 x1, y1, z1<br />
<br />
hacia las coordenadas del sistema Σ0 x0, y0, z0 . En otras palabras, dado un punto p1 en el sistema Σ1 x1, y1, z1 ,<br />
entonces R1 <br />
0p 1 representa el mismo vector expresado con respecto al sistema de referencia Σ0 x0, y0, z0 .<br />
Obsérvese que las columnas de R1 0 son los cosenos directores de los ejes coordenados x1, y1, z1 respecto de los ejes<br />
coordenados x0, y0, z0. Por ejemplo, la primera columna [i1 · i0, i1 · j0, i1 · k0] T especifica la dirección del eje x1 relativa<br />
al sistema de referencia Σ0.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 24 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Matrices de rotación<br />
Similarmente se puede obtener el punto p 1 en función del punto p 0:<br />
p1x = p 1 · i 1 = p 0 · i 1<br />
= p0xi0 · i 1 + p0yj 0 · i 1 + p0zk 0 · i 1<br />
p1y = p 1 · j 1 = p 0 · j 1<br />
= p0xi1 · j 1 + p0yj 1 · j 1 + p0zk 1 · j 1<br />
p1z = p 1 · k 1 = p 0 · k 1<br />
= p0xi1 · k 1 + p0yj 1 · k 1 + p0zk 1 · k 1<br />
p1 = R 0 R<br />
1p 0 (16)<br />
0 1 =<br />
⎡<br />
i 0 · i 1<br />
⎣i<br />
0 · j 1<br />
i 0 · k 1<br />
j 0 · i 1<br />
j 0 · j 1<br />
j 0 · k 1<br />
⎤<br />
k 0 · i 1<br />
k 0 · j ⎦<br />
1 .<br />
k 0 · k 1<br />
(17)<br />
La matriz R0 1 ∈ IR 3×3 (17) representa la matriz inversa de la transformación R1 0 (15). Debido a que el producto interno<br />
de vectores unitarios cumple la propiedad conmutativa, entonces i 1 · j 1 = j 1 · i 1, i 0 · j 0 = j 0 · i 0, etc., por lo que<br />
resulta:<br />
R 0 1 = R 1−1 1 T<br />
0 = R0 La matriz R 1 0 cuya inversa es su transpuesta se denomina matriz ortogonal. La norma de los vectores columna de<br />
R 1 0 son de magnitud unitaria y mutuamente ortogonales, el determinante de R 1 0 es ±1. Si el sistema de referencia se<br />
selecciona de acuerdo con la regla de la mano derecha, entonces el determinante de R 1 0 es 1. La matriz R 1 0 se denomina<br />
matriz de rotación y pertenece a la clase de matrices ortogonales que se denotan como SO(3).<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 25 / 50<br />
(18)
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Matrices de rotación<br />
Notación<br />
La matriz R1 <br />
2<br />
0 representa la orientación del sistema Σ1 x1, y1, z1 respecto al sistema Σ0 x0, y0, z0<br />
. R1 representa la<br />
orientación del sistema Σ2 x2, y2, z2 respecto al sistema Σ1 x1, y1, z1 , y así sucesivamente. Mientras que la transformación<br />
inversa R0 <br />
1 significa la orientación del sistema de referencia Σ0 x0, y0, z0<br />
relativa al sistema de referen-<br />
1 cia Σ1 x1, y1, z1<br />
. De manera análoga, R2 es la transformación inversa de coordenadas del sistema de referencia<br />
Σ1 x1, y1, z1 hacia el sistema Σ2 x2, y2, z2 .<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 26 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Matriz de rotación alrededor del eje z0<br />
<br />
Considere que el sistema de referencia Σ1 z1, y1, z1 el cual se encuentra rotado un ángulo θ alrededor del eje z0 del<br />
1 sistema Σ0 z0, y0, z0 . Obtener la matriz resultante de transformación R0. Como se muestra en la figura 5, los ejes z0 y z1 son paralelos. El signo del ángulo θ está dado por la regla de la<br />
mano derecha. Por convención, un ángulo positivo es aquel cuyo sentido de rotación es contrario al movimiento de<br />
las manecillas del reloj.<br />
Figura:<br />
Figura 5: Rotación de un ángulo θ alrededor del eje z.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 27 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Matriz de rotación alrededor del eje z0<br />
De la figura 6 se obtienen las siguientes ecuaciones:<br />
Figura:<br />
Figura 6: Rotación de un ángulo θ alrededor del eje z.<br />
i 1 · i 0 = cos(θ) j 1 · i 0 = − sen(θ)<br />
j 1 · j 0 = cos(θ) i 1 · j 0 = sen(θ)<br />
k 0 · k 1 = 1<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 28 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Matriz de rotación alrededor del eje z0<br />
Todos los demás productos punto son cero, puesto que el ángulo que existe entre los vectores unitarios i 0, i 1, j 0,<br />
y j 1 con k 0 y k 1 es de 90 grados, excepto entre ellos mismos, puesto que k 0 y k 1 forman un ángulo de 0 grados:<br />
k 1 · i 0 = cos( π<br />
2 ) = 0, k 1 · j 0 = cos( π<br />
2 ), i 1 · k 0 = cos( π<br />
2 ) = 0, y j 1 · k 0 = cos( π)<br />
= 0. 2<br />
Notación<br />
La matriz (22) se conoce como matriz de rotación alrededor del eje z y es representada por Rz(θ).<br />
⎡<br />
cos(θ) − sen(θ)<br />
⎤<br />
0<br />
Rz(θ) = ⎣ sen(θ) cos(θ) 0⎦<br />
. (19)<br />
0 0 1<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 29 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Matriz de rotación alrededor del eje z0<br />
La matriz de rotación Rz(θ) se interpreta como una matriz que especifica la orientación del sistema de referencia<br />
x1, y1, z1 relativo al sistema de referencia Σ0 x0, y0, z0 .<br />
Σ1<br />
⎡<br />
cos(θ) − sen(θ)<br />
⎤<br />
0<br />
p0 = Rz(θ)p 1 = ⎣ sen(θ)<br />
0<br />
cos(θ)<br />
0<br />
0⎦<br />
p1. 1<br />
(20)<br />
Por convención considérese que el ángulo θ es positivo en el sentido contrario al movimiento de las manecillas del<br />
reloj.<br />
<br />
La relación inversa que determina la orientación del sistema Σ0 x0, y0, z0 con respecto al sistema Σ1 x1, y1, z1 está<br />
dada por:<br />
p 1 = R T z<br />
⎡<br />
⎤<br />
<br />
cos(θ) sen(θ) 0<br />
θ p0 = ⎣−<br />
sen(θ) cos(θ) 0⎦<br />
p0. (21)<br />
0 0 1<br />
<br />
Por lo tanto, un punto p0 en el sistema Σ0 x0, y0, z0 es transformado hacia un punto p1 en el sistema Σ1 x1, y1, z1<br />
incluyendo su orientación relativa.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 30 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Matriz de rotación alrededor del eje z0<br />
<br />
Otra forma de obtener la matriz Rz θ que relaciona la orientación θ del sistema de referencia Σ1 z1, y1, z1<br />
con<br />
respecto al eje z0 del sistema de referencia Σ0 z0, y0, z0 es por medio de una proyección geométrica, es decir,<br />
analizando la proyección de los ejes x1, y1 sobre los ejes x0, y0 como se ve en la figura 7.<br />
Los ejes z1 y z0 son paralelos entre sí, el plano x1 − y1 se encuentra rotado un ángulo θ con respecto al plano x0 − y0,<br />
entonces la proyección del punto p 1 = [p1x, p1y, p1z] T sobre los ejes del sistema Σ0 son:<br />
Figura:<br />
Figura 7: Rotación θ grados del plano x1 − y1 con respecto al plano x0 − y0.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 31 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Matriz de rotación alrededor del eje z0<br />
p0x = p1x cos(θ) − p1y sen(θ)<br />
p0y = p1x sen(θ) + p1y cos(θ)<br />
p0z = p1z<br />
⎡<br />
cos(θ) − sen(θ)<br />
⎤<br />
0<br />
p0 = Rz(θ)p 1 = ⎣ sen(θ)<br />
0<br />
cos(θ)<br />
0<br />
0⎦<br />
p1. 1<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 32 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Propiedades de la matriz de rotación Rz(θ)<br />
La matriz de rotación Rz(θ) tiene varias propiedades importantes que a continuación se presentan:<br />
3×3<br />
Rz 0 = I , I ∈ IR es la matriz identidad.<br />
<br />
Rz θ Rz β = Rz β Rz θ = Rz θ + β = Rz β + θ .<br />
−1 <br />
Rz θ = Rz −θ .<br />
Rz<br />
Rz<br />
T −1. θ = Rz θ<br />
T T <br />
θ Rz θ = Rz θ Rz θ = I .<br />
<br />
det[Rz θ ] = 1 si el sistema de referencia cartesiano Σ z, y, z es seleccionado por la regla de la mano derecha, en otro<br />
caso det[Rz θ ] = −1.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 33 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
<br />
Función matriz de rotación Rz θ<br />
<br />
La función matriz de rotación Rz θ<br />
tiene la siguiente sintaxis:<br />
<br />
Rz θ =<br />
⎡<br />
cos(θ) − sen(θ)<br />
⎤<br />
0<br />
⎣ sen(θ) cos(θ) 0⎦<br />
0 0 1<br />
R=Rz(θ)<br />
donde θ ∈ IR es el ángulo de rotación alrededor del eje z, y representa el argumento de entrada. Retorna la matriz<br />
de rotación R.<br />
Para expresiones matemáticas con variables simbólicas, la función simplify resulta importante para obtener un<br />
resultado matemático compacto, es decir factorizado y reducido.<br />
Cuando un programa se encuentra combinando cálculos numéricos con variables simbólicas, se recomienda usar la<br />
función vpa con una precisión de tres dígitos a través de digits(3).<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 34 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Matriz de rotación alrededor del eje z0<br />
Código Fuente 2 Función Rz(θ)<br />
Control de Robots Manipuladores, primavera 2013<br />
Fernando Reyes Cortés. Posgrado en Automatización, Facultad de Ciencias de la Electrónica BUAP.<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
Función Rz(θ).m MATLAB versión 2012a<br />
function R=Rz(theta)<br />
dato=whos(’theta’);<br />
if strcmp(dato.class, ’sym’) %para variables simbólicas then<br />
R=simplify([cos(theta), -sin(theta), 0;<br />
sin(theta), cos(theta), 0;<br />
0, 0, 1]);<br />
else %cálculos numéricos<br />
digits(3);<br />
R=simplify([ double(cos(theta)), double(-sin(theta)), 0;<br />
double(sin(theta)), double(cos(theta)), 0;<br />
0, 0, 1]);<br />
endif<br />
end<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 35 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Matriz de rotación alrededor del eje z0<br />
Figura:<br />
Figura 8: Rotación de un ángulo θ alrededor del eje z0.<br />
Notación<br />
La matriz R1 0 correspondiente de rotación <br />
θ alrededor del eje z0 se denota por Rz θ<br />
con la siguiente estructura matemática:<br />
⎡<br />
cos(θ) − sen(θ)<br />
⎤<br />
0<br />
Rz(θ) = ⎣ sen(θ) cos(θ) 0⎦<br />
.<br />
0 0 1<br />
Los ejes z0 y z1 coinciden entre sí, y el plano<br />
x1 − y1 se desplaza un ángulo θ de derecha<br />
a izquierda con respecto al plano x0 − y0.<br />
<br />
Propiedades de la matriz Rz θ :<br />
` ´<br />
Rz 0 = I , I ∈ IR 3×3 es la matriz identidad.<br />
` ´ ` ´ ` ´ ` ´ ` ´<br />
Rz θ Rz β = Rz β Rz θ = Rz θ + β =<br />
` ´<br />
Rz β + θ .<br />
` ´ −1 ` ´<br />
Rz θ = Rz −θ .<br />
` ´ T ` ´ −1.<br />
Rz θ = Rz θ<br />
` ´ ` ´ T ` ´ T ` ´<br />
Rz θ Rz θ = Rz θ Rz θ = I .<br />
` ´<br />
det[Rz θ ] = 1 si el sistema de referencia cartesiano<br />
Σ ` z, y, z ´ es seleccionado por la regla de la mano<br />
` ´<br />
derecha, en otro caso det[Rz θ ] = −1.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 36 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Matriz de rotación alrededor del eje x0<br />
Figura:<br />
Figura 9: Rotación de un ángulo θ alrededor del eje x0.<br />
Notación<br />
La matriz R1 0 correspondiente de rotación θ<br />
alrededor del eje x0 se denota por Rx θ con<br />
la siguiente estructura matemática:<br />
<br />
Rx θ =<br />
⎡<br />
1<br />
⎣0<br />
0<br />
cos(θ)<br />
⎤<br />
0<br />
− sen(θ) ⎦ .(22)<br />
0 sen(θ) cos(θ)<br />
Observe que los ejes x0 y x1 coinciden entre<br />
sí, y el plano z1 − y1 se desplaza un ángulo θ<br />
de derecha a izquierda con respecto al plano<br />
z0 − y0.<br />
Las propiedades de la matriz de rotación<br />
θ son las mismas para Rz θ .<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 37 / 50<br />
Rx
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Matriz de rotación alrededor del eje y0<br />
Figura:<br />
Figura 10: Rotación de un ángulo θ alrededor del eje y0.<br />
Notación<br />
La matriz de rotación R1 0 que describe la<br />
orientación relativa del sistema Σ1 z1, y1, z1<br />
con respecto al sistema de referencia fijo<br />
Σ0 z0, y0, z0 usando un ángulo de rotación<br />
alrededor del eje y0 se denota por:<br />
<br />
Ry θ =<br />
⎡<br />
⎣<br />
cos(θ)<br />
0<br />
0<br />
1<br />
⎤<br />
sen(θ)<br />
0 ⎦ (23)<br />
− sen(θ) 0 cos(θ)<br />
Los ejes y0 y y1 coinciden entre sí, y el plano<br />
z1 − x1 se desplaza un ángulo θ de derecha a<br />
izquierda con respecto al plano z0 − x0.<br />
Las propiedades de la matriz de rotación<br />
θ son las mismas para Rz θ .<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 38 / 50<br />
Ry
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Transformaciones de traslación<br />
Considere el sistema de referencia cartesiano fijo Σ0<br />
<br />
x0, y0, z0 y el sistema de referencia Σ1 x1, y1, z1 , donde sus<br />
respectivos orígenes son no coincidentes. El origen del sistema de referencia Σ1 se encuentra desplazado una distancia<br />
d 1<br />
0 con respecto al origen del sistema Σ0, como se muestra en la figura 11.<br />
Figura:<br />
Figura 11: Transformaciones de traslación y rotación del sistema Σ1 con respecto al sistema Σ0.<br />
El vector d 1<br />
0 está expresado en coordenadas del sistema Σ0: d 1<br />
0 = d 1 0x, d 1 0y, d 1 T 0z<br />
, entonces<br />
<br />
cualquier<br />
<br />
punto<br />
<br />
p tiene<br />
representación p0 y p1. La relación general entre los sistemas de referencia Σ0 x0, y0, z0 y Σ1 x1, y1, z1 incluyendo<br />
la matriz de rotación R1 0 y el vector de traslación d 1<br />
0 es:<br />
⎡ ⎤ ⎡ ⎤<br />
p0 = d 1<br />
0 + R 1 d<br />
0p 1 = ⎣<br />
1 0x<br />
d 1 0y<br />
d 1 ⎦ + R<br />
0z<br />
1 p1x<br />
⎣<br />
0 p1y⎦<br />
.<br />
p1z<br />
(24)<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 39 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Transformaciones de traslación (caso general)<br />
Figura:<br />
Figura 12: Traslación y rotación de Σ1 y Σ2 con respecto al sistema Σ0.<br />
p0 = d 1<br />
0 + R 1 0p 1<br />
p1 = d 2<br />
1 + R 2 1p 2<br />
p0 = d 1<br />
0 + R 1 0d 2<br />
1 + R 1 0R 2 1p 2<br />
p0 = d 2<br />
0 + R 2 0p 2<br />
R 2 0 = R 1 0R 2 1<br />
d 2<br />
0 = d 1<br />
0 + R 1 0d 2<br />
1<br />
Regla de transformación:<br />
p0 = d 2<br />
0 + R 2 0p 2<br />
R 2 0 = R 1 0R 2 1<br />
d 2<br />
0 = d 1<br />
0 + R 1 0d 2<br />
1<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 40 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Transformaciones homogéneas<br />
La notación más común para representar la transformación de traslación y rotación en forma compacta se conoce como<br />
transformación homogénea. Por ejemplo, para representar el caso de traslación y rotación del sistema Σ1(x1y1z1)<br />
con respecto al sistema Σ0(x0y0z0)<br />
Notación<br />
La matriz correspondiente de rotación θ alrededor<br />
del eje x0 se denota la transformación homogénea<br />
se realiza con la siguiente notación:<br />
H 1 <br />
1 R0 d<br />
0 =<br />
1<br />
0<br />
0T <br />
(25)<br />
1<br />
⎡<br />
⎤<br />
=<br />
⎢<br />
Matriz de<br />
⎢<br />
rotación<br />
⎣<br />
. Vector de<br />
· · · .<br />
traslación<br />
· · ·<br />
0T ⎥<br />
⎦<br />
1<br />
donde R 1 0 ∈ SO(3) y d 1<br />
0 ∈ IR 3 . Para propósitos<br />
de acoplamiento en dimensiones, el vector 0 T y el<br />
número 1 aparecen en el último renglón.<br />
p 0 = d 1<br />
0 + R 1 0p 1<br />
La representación inversa que relaciona el punto<br />
p 1 en función del punto p 0 adquiere la siguiente<br />
forma:<br />
p1 = −R 1T 1<br />
0 d 0 + R 1T 0 p0<br />
la transformación homogénea inversa está<br />
determinada por:<br />
H 1 <br />
1T 1T 1<br />
−1 R<br />
0 = 0 −R0 d 0<br />
0T <br />
1<br />
(26)<br />
Las matrices de rotación permiten modelar la<br />
orientación de la herramienta de trabajo colocada<br />
en el extremo final del robot, y junto con las transformaciones<br />
homogéneas dentro de una sola matriz<br />
incluye la orientación y posición de la herramienta<br />
de trabajo, formando la estructura del modelo cinemático<br />
directo.<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 41 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Librerías MATLAB de transformación homogénea de rotación (HRx, HRy, HRz)<br />
Las matrices de de transformación homogénea de rotación del sistema Σ1(x1y1z1) con respecto al sistema Σ0(x0y0z0)<br />
tienen la siguiente estructura:<br />
HRx(θ) =<br />
HRy(θ) =<br />
HRz(θ) =<br />
Notación<br />
⎡⎡<br />
⎤<br />
1 0 0<br />
⎢⎣<br />
⎢ 0 cos(θ) − sen(θ) ⎦<br />
⎣<br />
<br />
0 sen(θ) cos(θ)<br />
<br />
0 0 0<br />
⎡⎡<br />
⎤<br />
cos(θ) 0 sen(θ)<br />
⎢⎣<br />
⎢ 0 1 0 ⎦<br />
⎣<br />
<br />
− sen(θ) 0 cos(θ)<br />
<br />
0 0 0<br />
⎡⎡<br />
⎤<br />
cos(θ) − sen(θ) 0<br />
⎢⎣<br />
⎢ sen(θ) cos(θ) 0⎦<br />
⎣<br />
<br />
0 0 1<br />
<br />
0 0 0<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
⎡ ⎤⎤<br />
0<br />
⎣0⎦<br />
⎥<br />
0 ⎦<br />
1<br />
⎡ ⎤⎤<br />
0<br />
⎣0⎦<br />
⎥<br />
0 ⎦<br />
1<br />
⎡ ⎤⎤<br />
0<br />
⎣0⎦<br />
⎥<br />
0 ⎦<br />
1<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 42 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Librerías MATLAB de transformación homogénea de traslación (HTx, HTy, HTz)<br />
Las matrices de transformación homogénea de traslación con respecto a los ejes x, y, z respectivamente tienen la<br />
siguiente estructura:<br />
HTx(d) =<br />
HTy(d) =<br />
HTz(d) =<br />
Notación<br />
⎡⎡<br />
⎤<br />
1 0 0<br />
⎢⎣<br />
⎢ 0 1 0⎦<br />
⎣<br />
<br />
0 0 1<br />
<br />
0 0 0<br />
⎡⎡<br />
⎤<br />
1 0 0<br />
⎢⎣<br />
⎢ 0 1 0⎦<br />
⎣<br />
<br />
0 0 1<br />
<br />
0 0 0<br />
⎡⎡<br />
⎤<br />
1 0 0<br />
⎢⎣<br />
⎢ 0 1 0⎦<br />
⎣<br />
<br />
0 0 1<br />
<br />
0 0 0<br />
⎡<br />
dx<br />
⎤⎤<br />
⎣ 0 ⎦ ⎥<br />
0 ⎦<br />
1<br />
⎡ ⎤⎤<br />
0<br />
⎣dy⎦<br />
⎥<br />
0 ⎦<br />
1<br />
⎡ ⎤⎤<br />
0<br />
⎣ 0 ⎦ ⎥<br />
dz ⎦<br />
1<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 43 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Librerías MATLAB de transformación homogénea de rotación HRx<br />
RHx=HRx(theta)<br />
donde theta es el ángulo de rotación alrededor del eje x. Retorna la matriz de transformación homogénea RHx.<br />
Código Fuente 3 Función HRx(θ)<br />
Control de Robots Manipuladores, primavera 2013<br />
Fernando Reyes Cortés. Posgrado en Automatización, Facultad de Ciencias de la Electrónica BUAP.<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
Función HRx(θ).m MATLAB versión 2012a<br />
function RHx=HRx(theta)<br />
dato=whos(’theta’);<br />
if strcmp(dato.class, ’sym’) %variables simbólicas then<br />
RHx=[1, 0, 0, 0;<br />
0, cos(theta), -sin(theta), 0;<br />
0, sin(theta), cos(theta), 0;<br />
0, 0, 0, 1];<br />
else digits(3); %cálculos numéricos<br />
RHx=round([1, 0, 0, 0;<br />
0, vpa(cos(theta),3), vpa(-sin(theta),3), 0;<br />
0, vpa(sin(theta),3), vpa(cos(theta),3), 0;<br />
0, 0, 0, 1]);<br />
endif<br />
end<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 44 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Librerías MATLAB de transformación homogénea de rotación RHy<br />
RHy=HRy(theta)<br />
donde theta es el ángulo de rotación alrededor del eje y. Retorna la matriz de transformación homogénea RHy.<br />
Código Fuente 4 Función HRy(θ)<br />
Control de Robots Manipuladores, primavera 2013<br />
Fernando Reyes Cortés. Posgrado en Automatización, Facultad de Ciencias de la Electrónica BUAP.<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
Función HRy(θ).m MATLAB versión 2012a<br />
function RHy=HRy(theta)<br />
dato=whos(’theta’); if strcmp(dato.class, ’sym’) %variables simbólicas then<br />
RHy=[cos(theta), 0, sin(theta), 0;<br />
0, 1, 0, 0;<br />
-sin(theta), 0, cos(theta), 0;<br />
0, 0, 0, 1];<br />
else digits(3); %cálculos numéricos<br />
RHy=round([ vpa(cos(theta),3), 0, vpa(sin(theta),3), 0;<br />
0, 1, 0, 0;<br />
vpa(-sin(theta),3), 0, vpa(cos(theta),3), 0;<br />
0, 0, 0, 1]);<br />
endif<br />
end<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 45 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Librerías MATLAB de transformación homogénea de rotación HRz<br />
RHz=HRz(theta)<br />
donde theta es el ángulo de rotación alrededor del eje z. Retorna la matriz de transformación homogénea RHz.<br />
Código Fuente 5 Función HRz(θ)<br />
Control de Robots Manipuladores, primavera 2013<br />
Fernando Reyes Cortés. Posgrado en Automatización, Facultad de Ciencias de la Electrónica BUAP.<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
Función HRz(θ).m MATLAB versión 2012a<br />
function RHz=HRz(theta)<br />
dato=whos(’theta’);<br />
if strcmp(dato.class, ’sym’) %variables simbólicas then<br />
RHz=[cos(theta), -sin(theta), 0, 0;<br />
sin(theta), cos(theta), 0, 0;<br />
0, 0, 1, 0;<br />
0, 0, 0, 1];<br />
else digits(3); %cálculos numéricos<br />
RHz=round([ vpa(cos(theta),3), vpa(-sin(theta),3), 0, 0;<br />
vpa(sin(theta),3), vpa(cos(theta),3), 0, 0;<br />
0, 0, 1, 0;<br />
0, 0, 0, 1]);<br />
endif<br />
end<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 46 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Librerías MATLAB de transformación homogénea de traslación HTx<br />
HTx=HTx(d)<br />
donde d es el desplazamiento lineal sobre el eje x. Retorna la matriz de transformación homogénea Tx.<br />
Código Fuente 6 Función HTx(d)<br />
Control de Robots Manipuladores, primavera 2013<br />
Fernando Reyes Cortés. Posgrado en Automatización, Facultad de Ciencias de la Electrónica BUAP.<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
Función HTx(d).m MATLAB versión 2012a<br />
function Tx=HTx(d)<br />
Tx=[ 1 0 0 d;<br />
0 1 0 0;<br />
0 0 1 0;<br />
0 0 0 1];<br />
end<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 47 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Librerías MATLAB de transformación homogénea de traslación HTy<br />
HTy=HTy(d)<br />
donde d es el desplazamiento lineal sobre el eje y. Retorna la matriz de transformación homogénea Ty.<br />
Código Fuente 7 Función HTy(d)<br />
Control de Robots Manipuladores, primavera 2013<br />
Fernando Reyes Cortés. Posgrado en Automatización, Facultad de Ciencias de la Electrónica BUAP.<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
Función HTy(d).m MATLAB versión 2012a<br />
function Tz=HTy(d)<br />
Tz=[ 1 0 0 0;<br />
0 1 0 d;<br />
0 0 1 0;<br />
0 0 0 1];<br />
end<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 48 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Librerías MATLAB de transformación homogénea de traslación HTz<br />
HTz=HTz(d)<br />
donde d es el desplazamiento lineal sobre el eje z. Retorna la matriz de transformación homogénea Tz.<br />
Código Fuente 8 Función HTz(d)<br />
Control de Robots Manipuladores, primavera 2013<br />
Fernando Reyes Cortés. Posgrado en Automatización, Facultad de Ciencias de la Electrónica BUAP.<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
Función HTz(d).m MATLAB versión 2012a<br />
function Tz=HTz(d)<br />
Tz=[ 1 0 0 0;<br />
0 1 0 0;<br />
0 0 1 d;<br />
0 0 0 1];<br />
end<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 49 / 50
Cinemática directa Cinemática inversa Cinemática diferencial Cinemática diferencial inversa Singularidades Preliminares matemáticos de la cinemática directa Matrices de rotación<br />
Librerías MATLAB de transformación homogénea DH<br />
La función H_DH(H) extrae de la matriz de transformación homogénea H la matriz de rotación y el vector de coordenadas<br />
cartesianas:<br />
[R vect_d vect_cero c]=H_DH(H)<br />
donde H es la variable de entrada y representa la matriz de transformación homogénea. Retorna la matriz de rotación<br />
R , el vector de coordenadas cartesianas vect_d, el vector vect_cero=[0, 0, 0] T y la constante unitaria c=1.<br />
Código Fuente 9 Función H DH<br />
Control de Robots Manipuladores, primavera 2013<br />
Fernando Reyes Cortés. Posgrado en Automatización, Facultad de Ciencias de la Electrónica BUAP.<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
Función H DH.m MATLAB versión 2012a<br />
function [R vect d vect cero c]=H DH(H)<br />
for i=1:3 do<br />
for j=1:3 do<br />
R(i,j)=H(i,j);<br />
endfor<br />
endfor<br />
%estructura de la matriz de transformación homogénea<br />
vect d=[H(1,4); H(2,4); H(3,4)];<br />
vect cero=[0;0;0]’;<br />
c=1;<br />
end<br />
Fernando Reyes Cortés Posgrado en Ingeniería Mecatrónica<br />
Capítulo 1 Modelado de Robots Manipuladores Tópicos Especiales de Robótica MEC507 50 / 50