17.07.2013 Views

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!