UNIDAD 1 HERRAMIENTAS MATEMÁTICAS Y RECURSOS COMPUTACIONALES CAPÍTULO 1: HERRAMIENTAS MATEMÁTICAS PARA LA LOCALIZACIÓN ESPACIAL INTRODUCCIÓN Una de las tareas básicas de un robot y por lo demás habitual, consiste en la manipulación de piezas, lo cual se hace posible, mediante el movimiento espacial de sus dispositivos extremos. La manipulación robótica, nos indica que tanto partes como herramientas, se mueven alrededor del espacio por algún tipo de mecanismo. Cuando estudiamos la robótica, ineludiblemente nos interesamos con los detalles de la localización de objetos en dos y tres dimensiones. Estos objetos son los acoples del manipulador, las partes y herramientas con las cuales él trata, y otros objetos en el entorno del manipulador. En esta dirección, conviene mencionar, que la información de la posición, al igual que la posible orientación de ésta con respecto a la base del robot, es factor determinante para que éste adquiera la habilidad propia que le permita maniobrar de manera indistinta con las piezas. Todo lo anterior nos invita a buscar y apropiarnos de un conjunto de instrumentos y herramientas matemáticas, enfocadas a determinar de manera específica tanto la posición como la orientación en el entorno espacial de piezas, rios y, en general, de cualquier objeto. Los recursos matemáticos que trataremos, deben ofrecer la potencialidad mínima que nos garantice llegar de manera sencilla a las relaciones espaciales entre los diferentes objetos, y en especial, entre éstos y el manipulador.
Nos dedicaremos a abordar los diferentes métodos clásicos que representan la posición y orientación espacial de un cuerpo rígido. Iniciamos con la representación en dos dimensiones, pasando posteriormente al análisis correspondiente a tres, en sus diferentes modalidades, sin omitir el aporte de los ángulos de Euler cuando se trata de la orientación. Seguidamente, ingresamos en el ámbito del concepto de la matriz de transformación homogénea, con lo cual activamos la representación articulada de la posición y orientación, agrupando propiedades y aplicaciones. Finalizamos, tratando la representación de la orientación, mediante pares de rotación, conocidos también como cuaternios.
LECCIÓN 1: REPRESENTACIÓN DE LA POSICIÓN Para definir y manipular cantidades matemáticas con las cuales podemos representar la posición, nosotros debemos definir sistemas de coordenadas y establecer las convenciones propias para la representación respectiva. Es por esto que nos apoyamos en la concepción, de que en cualquier parte existe un sistema de coordenadas, para lo cual todo lo emprendido puede ser referenciado. Trataremos el posicionamiento en un plano y en el espacio de tres dimensiones. El primero cuenta con dos grados de libertad, en donde la posición debida a un punto, se define por dos componentes independientes. Para el caso tridimensional, se requiere usar tres componentes. Comenzaremos con las coordenadas cartesianas, y seguidamente, presentaremos los otros métodos de uso cotidiano, como son, las coordenadas polares para dos dimensiones, y las cilíndricas y esféricas dirigidas a implementar el espacio de tres dimensiones.
REPRESENTACIÓN DE LA POSICIÓN EN COORDENADAS CARTESIANAS En un plano: Sistema coordenado OXY de referencia, para el cual el punto a se expresa por las componentes (x, y). A este punto le corresponde un vector p(x, y). En el espacio de tres dimensiones: El vector p está definido por las respectivas componentes cartesianas (x, y, z).
REPRESENTACIÓN DE LA POSICIÓN EN COORDENADAS POLARES Y CILÍNDRICAS En un plano: la localización de un punto, es decir, el vector p, se expresa como p (r, ߠ ) en coordenadas polares. En esta representación, r es la distancia desde el origen O hasta extremo del vector p; en tanto que ߠ es el ángulo formado por el vector p con el eje OX. En tres dimensiones: el vector p, queda expresado como p (r, ߠ, Z) mediante las coordenadas cilíndricas.
REPRESENTACIÓN DE LA POSICIÓN EN COORDENADAS ESFÉRICAS En este caso, el vector p posee como coordenadas esféricas (r,ߠ, ߮ ), en donde la componente r es la distancia que va desde el origen O hasta el extremo del vector p; la componente ߠ es el ángulo formado por la proyección del vector p sobre el plano OXY con el eje OX; y la componente ߮ es el ángulo formado por el vector p con el eje OZ.
LECCIÓN 2: REPRESENTACIÓN DE LA ORIENTACIÓN Cuando necesitamos definir un punto en el espacio, es suficiente a través de los datos correspondientes a su posición. Pero, para el caso de un sólido, se precisa adicionalmente contar con su orientación respecto a un sistema de referencia. Para el caso que nos ocupa, es decir, el de un robot, además de especificar la posición de extremo, también se requiere indicar su orientación. Una orientación referida al espacio tridimensional, la podemos definir mediante tres grados de libertad, lo que se traduce como tres componentes linealmente independientes. La orientación de un objeto respecto a un sistema de referencia, se intenta de manera habitual y relativamente cómoda, asignando al objeto un nuevo sistema, y luego se estudia la relación espacial que existe entre estos dos sistemas, cuya versión es la de coordenadas rectangulares. Casi siempre, esta relación se presenta mediante la posición y orientación del sistema, asociado al objeto respecto al de referencia. Para poder ejecutar el análisis de los diferentes métodos con los cuales se representan las orientaciones, se consideran que ambos coinciden en el origen, y que por consiguiente no se registra cambio de posición entre ellos. El sistema de coordenadas que esta fijo en el espacio tridimensional, se considera que es el sistema de referencia. El otro sistema de coordenadas está girando con respecto al sistema de referencia. Físicamente, podemos considerar que este sistema de coordenadas, es un sistema de coordenadas ligado al cuerpo. Es decir, se encuentra permanente y convenientemente unido al cuerpo rígido (por ejemplo, un elemento del brazo del robot) y se mueve junto con él. Un punto p en el espacio se puede representar por sus coordenadas con respecto a ambos sistemas de coordenadas. Una forma que facilita el análisis, consiste en considerar al punto en reposo y fijo con respecto al sistema que representa el giro. De esta manera, el punto p
se puede representar por sus coordenadas, con respecto a ambos sistemas de coordenadas. Para definir y manipular cantidades matemáticas con las cuales podemos representar la orientación, nosotros debemos definir sistemas de coordenadas y establecer las convenciones propias para la representación respectiva.
MATRICES DE ROTACIÓN En el espacio del algebra matricial, encontramos el nicho adecuado que contiene todos los ingredientes esenciales, los cuales hacen posible que podamos adentrarnos en la tarea de la descripción de las orientaciones. Los dos sistemas de referencia arriba mencionados son: OXY y OUV. El sistema OXY es el de referencia fija, y el sistema OUV es el móvil solidario al objeto. Los vectores unitarios del sistema OXY son ݅௫ ǡ ݆௬ en tanto que los del sistema OUV son ݅௨ ǡ ݆௩ . La representación en ambos sistemas del vector p en el plano, se registra de la siguiente manera:
்
ܲ௫௬ ൌ ൣ௫ ǡ ௬ ൧ ൌ ௫ ݅ כ௫ ௬ ݆ כ௬
ܲ௨௩ ൌ ሾ௨ ǡ ௩ ሿ் ൌ ௨ ݅ כ௨ ௩ ݆ כ௩
Podemos encontrar algunas equivalencias, después de realizar una serie de transformaciones: ௫ ௨ ቂ ቃ ൌ ܴ ቂ ቃ ௬ ௩ En donde ݅௫ ݅௨ ݅௫ ݆௩ R = ݆ ݅ ݆ ݆ ൨ ௬ ௨
௬ ௩
es denominada matriz de rotación. Esta matriz es la encargada de definir la orientación del sistema OUV respecto al otro sistema OXY, la cual se emplea para transformar las coordenadas de un vector expresado en un sistema, en las del otro. Por ser una matriz ortonormal, cumple la condición ܴିଵ ൌ ்ܴ , también se le conoce como matriz de cosenos directores. Para el caso de dos dimensiones, la posición relativa al sistema OUV girado un ángulo a sobre el sistema OXY, la matriz R será de la forma: ܿ ߙݏെ ߙ݊݁ݏ ܴൌቂ ቃ ߙݏܿߙ݊݁ݏ
RESUMIENDO: MATRICES DE ROTACIÓN 2D
En un espacio tridimensional: Los vectores unitarios del sistema OXY ݅௫ ǡ ݆௬ ǡ ݇௭ , mientras que los del sistema OUVW son ݅௨ ǡ ݆௩ ǡ ݇௪ . La correspondiente representación del vector p queda así: ܲ௨௩௪ ൌ ሾܲ௨ ǡ ܲ௩ ǡ ܲ௪ ሿ் ൌ ܲ௨ ݅௨ ܲ௩ ݆௩ ܲ௪ ݇௪ ்
ܲ௫௬௭ ൌ ൣܲ௫ ǡ ܲ௬ ǡ ܲ௭ ൧ ൌ ܲ௫ ݅௫ ܲ௬ ݆௬ ܲ௭ ݇௭ En este caso, también se obtiene la equivalencia siguiente: ܲ௫ ܲ௨ ܲ௬ ൌ ܴ ܲ௩ ൩ ܲ௪ ܲ௭ En donde,
݅௫ ݅௨ ݅௫ ݆௩ ݅௫ ݇௪ ܴ ൌ ݆௬ ݅௨ ݆௬ ݆௩ ݆௬ ݇௪ ݇௭ ݅௨ ݇௭ ݆௩ ݇௭ ݇௪
Que, como en el caso anterior, representa la matriz de rotación, mediante la cual definimos la orientación del sistema OUVW con respecto al sistema OXYZ Ahora, cuando el eje OU coincide con el eje OX, la orientación del sistema OUVW queda representada por la matriz:
ͳͲͲ ܴሺݔǡ ߙሻ ൌ Ͳܿ ߙݏെ ߙ݊݁ݏ൩ Ͳߙݏܿߙ݊݁ݏ De igual manera, podemos representar la orientación del sistema OUVW, cuando el eje OV coincide con el OY,
En cuyo caso estará representada mediante la correspondiente matriz:
ܿ߮݊݁ݏͲ߮ݏ ܴ ሺݕǡ ߮ሻ= ͲͳͲ ൩ െ߮ݏܿͲ߮݊݁ݏ Ahora, se considera la orientación del sistema OUVW, cuando el eje OW coincide con el eje OZ, en cuyo caso, la representación grafica y la correspondiente matriz, son:
ܿ ߠݏെ Ͳߠ݊݁ݏ ܴ ሺݖǡ ߠሻ= Ͳߠݏܿߠ݊݁ݏ൩ ͲͲͳ
RESUMIENDO: MATRICES DE ROTACIÓN 3D
REPRESENTACIÓN DE LA ORIENTACIÓN. COMPOSICIÓN DE ROTACIONES Algunos movimientos efectuados por un robot, o algunas de sus piezas, son el resultado de la aplicación continua y combinada de varias rotaciones. La respectiva definición y manipulación de las cantidades matemáticas asociadas, se resuelve mediante la operación llamada composición de matrices de rotación. Consideremos la situación siguiente: al sistema OUVW tratado anteriormente se le aplica una rotación con ángulo ߙ sobre OX, la cual es seguida de una rotación de ángulo ߮ sobre OY, más la rotación de ángulo ߠ sobre OZ. La rotación resultante global requerida por el movimiento especifico, la podemos resumir de la manera siguiente: 1. Rotación sobre OX. 2. Rotación sobre OY. 3. Rotación sobre OZ. Y representarla mediante la expresión:
ߠܥ ܶ ൌ ܴሺݖǡ ߠሻܴሺݕǡ ߮ሻܴሺݔǡ ߙሻ ൌ ܵߠ Ͳ ߮ܥߠܥ ൌ ܵߠ߮ܥ െܵ߮
െܵߠ ߠܥ Ͳ
Ͳ ߮ܥ Ͳ൩ Ͳ ͳ െܵ߮
െܵߠ ߙܥ ߙܵ߮ܵߠܥ ߙܥߠܥ ܵߠܵ߮ܵߙ ߙܵ߮ܥ
Ͳ ܵ߮ ͳ Ͳ ͳ Ͳ ൩ Ͳ ߙܥ Ͳ ߙܵ Ͳ ߮ܥ
Ͳ െܵߙ ൩ ߙܥ
ܵߠܵߙܵ ߙܥ߮ܵߠܥ െ ߙܵߠܥ ܵߠܵ߮ ߙܥ൩ ߙܥ߮ܥ
NOTA: El producto de matrices no es conmutativo, por lo que hay que tomar en cuenta el orden o secuencia en que se realizan las rotaciones.
LECCIÓN 3: ÁNGULOS DE EULER La representación matricial empleada para la orientación de un cuerpo rígido en el espacio tridimensional, aporta múltiples ventajas, ya que permite la simplificación de muchas operaciones, pero de igual manera, para su implantación, es menester emplear nueve elementos que hacen posible la descripción completa de la rotación de un cuerpo rígido. En este tipo de representación, en lugar de efectuar tres rotaciones consecutivas alrededor de los ejes del sistema de referencia, las rotaciones se efectúan alrededor de los ejes del sistema solidario del cuerpo. Cuando tratamos de describir la orientación de un sistema OUVW solidario al cuerpo, lo hacemos respecto al sistema OXYZ, para lo cual hacemos uso de tres ángulos: ߙ, ߮, ߠ, denominados ángulos de Euler. El problema nos plantea obtener el sistema OUVW partiendo del sistema OXYZ. El modo de operación lo podemos resumir de la manera siguiente: Se gira de manera sucesiva los valores de ߙ, ߮, ߠ, en el sistema OXYZ sobre unos ejes determinados. Por tanto, debemos tener conocimiento de los valores de los ángulos. Se requiere tener la información de los ejes sobre los que se realizan los giros. Los ángulos de Euler mencionados anteriormente, nos definen la orientación mediante tres giros consecutivos en los tres ejes de coordenadas. Realizando de forma diferente los giros, se obtienen otras representaciones. Entre estas posibilidades, presentamos las siguientes.
ÁNGULOS DE EULER ZXZ Esta representación la podemos describir así: Los sistemas de partida OXYZ y OUVW son inicialmente coincidentes. El sistema OUVW lo podemos colocar en cualquier orientación, lo cual es posible siguiendo estos pasos:
1. El sistema OUVW se hace girar un ángulo ߮ con respecto al eje OZ, transformándose de esta manera en el sistema OU’V’W’. 2. Ahora, se hace girar el sistema OU’V’W’ un ángulo ߙ con respecto al eje OU’, transformándose de esta manera en el sistema OU’’V’’W’’. 3. Finalmente, el sistema OU’’V’’W’’ lo giramos un ángulo ߠ con respecto al eje OW’, transformándose de esta manera en el sistema OU’’’V’’’W’’’. La correspondiente ilustración grafica es:
ÁNGULOS DE EULER ZYZ Esta otra representación habitualmente utilizada, se diferencia solamente de la anterior, en lo referente a la elección del eje sobre el que se realiza el segundo giro.
Como en el anterior caso, esta representación la podemos describir así: Los sistemas de partida OXYZ y OUVW son inicialmente coincidentes. El sistema OUVW lo podemos colocar en cualquier orientación, lo cual es posible siguiendo estos pasos: 1. El sistema OUVW se hace girar un ángulo ߙ con respecto al eje OZ, transformándose de esta manera en el sistema OU’V’W’. 2. Ahora, se hace girar el sistema OU’V’W’ un ángulo ߠ con respecto al eje OV’, transformándose de esta manera en el sistema OU’’V’’W’’. 3. Finalmente, el sistema OU’’V’’W’’ lo giramos un ángulo ߮ con respecto al eje OW’, transformándose de esta manera en el sistema OU’’’V’’’W’’’. La correspondiente ilustración grafica es:
LECCIÓN 4: MATRICES DE TRANSFORMACIÓN HOMOGÉNEA Hasta ahora hemos estudiado diferentes métodos o técnicas encaminadas a representar de manera aislada, ya sea la posición, o la orientación, de un sólido en el espacio. Estos métodos resultan bastante incómodos, cuando tratamos de analizar un manipulador con muchas articulaciones. En estas circunstancias, la complejidad de movimientos se manifiesta por la estrecha combinación de operaciones simultáneas. Los métodos acometidos no están en condiciones de responder a las exigencias mencionadas. Específicamente, llegamos a enfrentar movimientos que requieren de una representación conjunta de la posición y de la orientación. Para solucionar este interesante problema, tenemos que acudir al empleo de las denominadas coordenadas homogéneas.
COORDENADAS Y MATRICES HOMOGÉNEAS El concepto de una representación en coordenadas homogéneas en un espacio euclideo tridimensional, es útil para desarrollar transformaciones matriciales que incluyan: rotación, traslación, escalado y transformación en perspectiva. En general, la representación de un vector de posición de n componentes por un vector de (n+1) componentes se llama representación en coordenadas homogéneas. Es decir, un vector ܲሺݔǡ ݕǡ ݖሻ queda representado por ܲሺݔݓǡ ݕݓǡ ݖݓǡ ݓሻ donde w posee un valor arbitrario y representa un factor de escala. Comenzando a precisar, definimos como matriz de transformación homogénea T a una matriz de dimensión 4 x 4, encargada de transformar a un vector de coordenadas homogéneas de un sistema de coordenadas a otro.
ܴ ܶ ൌ ଷ௫ଷ ݂ଵ௫ଷ
ܲଷ௫ଵ ܴ݊×݅ܿܽݐ ൨ൌ ܲ݁ܽݒ݅ݐܿ݁ݏݎ ݓଵ௫ଵ
ܶ݊×݈݅ܿܽݏܽݎ ൨ ݈݀ܽܽܿݏܧ
Podemos comentar, que la matriz T está compuesta por cuatro sub-matrices de órdenes diferentes: x x x x
Una matriz de rotación, la sub-matriz ܴଷ௫ଷ . Vector de traslación, la sub-matriz ܲଷ௫ଵ . Una transformación de perspectiva, la sub-matriz ݂ଵ௫ଷ . Un escalado global, la sub-matriz ݓଵ௫ଵ .
APLICACIÓN DE LAS MATRICES DE TRANSFORMACIÓN HOMOGÉNEA
ܶൌቂ
ܴଷ௫ଷ Ͳ
ܲଷ௫ଵ ܴ݊×݅ܿܽݐ ቃൌቂ Ͳ ͳ
ܶ݊×݈݅ܿܽݏܽݎ ቃ ͳ
TRASLACIÓN CON MATRICES HOMOGÉNEAS Corresponde considerar que en el sistema O’UVW solo esta trasladado un vector ܲ ൌ ܲ௫ ݅ ܲ௬ ݆ ܲ௭ ݇ respecto al sistema OXYZ. La matriz homogénea de traslación T, es:
ͳͲͲܲ௫ ͲͳͲܲ௬ ܶሺܲሻ ൌ ൦ ൪ ͲͲͳܲ௭ ͲͲͲͳ Las componentes del vector r con respecto al sistema OXYZ, representado en el sistema O’UVW, son:
ݎ௫ ͳͲͲܲ௫ ݎ௨ ݎ௨ ܲ௫ ݎ ͲͳͲܲ௬ ݎ௩ ݎ ܲ௬ ௬ ൌ ൦ ൪ ൌ ൦ ௩ ൪ ݎ௭ ݎ௪ ܲ௭ ͲͲͳܲ௭ ݎ௪ ͳ ͲͲͲͳ ͳ ͳ De igual manera, un vector r(x, y, z) al ser desplazado según la traslación T, tendrá como componentes r'(x’, y’, z').
ݎԢ௫ ͳͲͲܲ௫ ݎ௫ ݎ௫ ܲ௫ ͲͳͲܲ௬ ݎ௬ ݎ ܲ௬ ݎԢ ൪ ൦ ௬൪ ൌ ൦ ൪ ൌ ൦ ௬ ݎ ݎ ܲ ͲͲͳܲ ௭ ݎԢ௭ ௭ ௭ ௭ ͳ ͲͲͲͳ ͳ ͳ ROTACIÓN Las rotaciones de un vector alrededor de cada uno de los tres ejes en un ángulo ‘a’, se pueden realizar por las transformaciones de rotación. En términos precisos, para entrar en operación, definimos tres matrices básicas de rotación, las cuales adoptamos de acuerdo a la rotación elegida por alguno de los tres ejes coordenados: OX, OY y OZ del sistema de referencia OXYZ.
Matrices de rotación básicas: Alrededor del eje x, la transformación de rotación es:
ͳͲͲͲ Ͳ ߙݏܥെ Ͳߙ݊݁ݏ ൪ ܶሺݔǡ ߙ ሻ ൌ ൦ ͲͲߙݏܿߙ݊݁ݏ ͲͲͲͳ
Alrededor del eje y: ܿͲ߮݊݁ݏͲ߮ݏ ͲͳͲͲ ܶሺݕǡ ߮ሻ ൌ ൦ ൪ െͲ߮ݏܿͲ߮݊݁ݏ ͲͲͲͳ Alrededor del eje z: ܿ ߠݏെ ͲͲߠ݊݁ݏ ͲͲߠݏܿߠ݊݁ݏ ܶሺݖǡ ߠሻ ൌ ൦ ൪ ͲͲͳͲ ͲͲͲͳ
Cambio de sistema de coordenadas: Las componentes del vector ݎሺݎ௫ ǡ ݎ௬ ǡ ݎ௭ ሻ en el sistema OXYZ, representado en el sistema girado O’UVW, son:
ݎ௫ ݎ௨ ݎ ݎ ௬ ൌ ܶ ௩ ݎ௪ ݎ௭ ͳ ͳ De igual manera, un vector ݎ௫ǡ௬ǡ௭ después de ser rotado de acuerdo a la transformación T, queda expresado por ݎԢ௫ǡ௬ǡ௭ así:
ݎԢ௫ ݎ௫ ݎ ݎԢ ൦ ௬൪ ൌ ܶ ௬ ݎ௭ ݎԢ௭ ͳ ͳ
TRASLACIÓN ACOMPAÑADA CON ROTACIÓN Como se menciono anteriormente, las matrices homogéneas poseen la debida garantía para representar de manera conjunta, las operaciones de posición y orientación. Según esto, la ejecución contempla la debida representación que incluye, el vector de traslación ܲଷ௫ଵ y la matriz de rotación ܴଷ௫ଷ de manera simultánea, mediante el empleo de la misma transformación homogénea.
Este tipo de transformaciones, se efectúan en relación a un sistema de referencia. Resulta oportuno comentar, que la traslación y la rotación son transformaciones espaciales no conmutativas, lo cual se demuestra en la figura. OBSERVACIONES FINALES: Es posible combinar rotaciones y traslaciones básicas multiplicando las matrices correspondientes. El producto no es conmutativo: Rotar y trasladar ് trasladar y rotar
ROTACIÓN SEGUIDA DE TRASLACIÓN Nos estamos refiriendo a la situación, en la que se ha de realizar una rotación alrededor de uno de los ejes coordenados del sistema OXYZ, a la cual le sigue una traslación. Comenzamos ilustrando la rotación de un ángulo ߙ alrededor del eje OX, al cual le sigue una traslación del vector ܲ௫ǡ௬ǡ௭ :
ͳͲͲܲ௫ Ͳ ߙݏܥെ ܲߙ݊݁ݏ௬ ܶሺሺݔǡ ߙ ሻǡ ܲሻ ൌ ൦ ൪ Ͳܲߙݏܿߙ݊݁ݏ௭ ͲͲͲͳ Ahora procedemos a ilustrar la rotación de un ángulo ߮ alrededor del eje OY, al cual le sigue una traslación del vector ܲ௫ǡ௬ǡ௭ .
ܿܲ߮݊݁ݏͲ߮ݏ௫ ͲͳͲܲ௬ ܶሺሺݕǡ ߮ሻǡ ܲሻ ൌ ൦ ൪ െܲ߮ݏܿͲ߮݊݁ݏ௭ ͲͲͲͳ Finalmente, presentamos la rotación de un ángulo ߠ alrededor del eje OZ, al cual le sigue una traslación del vector ܲ௫ǡ௬ǡ௭ .
ܿ ߠݏെ ܲͲߠ݊݁ݏ௫ ܲͲߠݏܿߠ݊݁ݏ௬ ൪ ܶሺሺݖǡ ߠሻǡ ܲሻ ൌ ൦ ͲͲͳܲ௭ ͲͲͲͳ
TRASLACIÓN SEGUIDA DE ROTACIÓN Nos toca ahora tratar el caso, en el que se efectúa primero una traslación, a la cual le sigue una rotación alrededor de uno de los ejes coordenados del sistema OXYZ, en donde las matrices homogéneas resultante son las siguientes: Una vez trasladado el vector ܲ௫ǡ௬ǡ௭ se continúa con la rotación de un ángulo α alrededor del eje OX.
ͳͲͲܲ௫ Ͳ ߙݏܥെ ܲߙ݊݁ݏ௬ ߙݏܥെ ܲ௭ ߙ݊݁ݏ ൪ ܶሺܲǡ ሺݔǡ ߙ ሻሻ ൌ ൦ Ͳܲߙݏܿߙ݊݁ݏ௬ ߙ݊݁ݏ ܲ௭ ܿߙݏ ͲͲͲͳ Ahora se trata de considerar la traslación del vector ܲ௫ǡ௬ǡ௭ al cual le sigue la rotación de un ángulo ߮ alrededor del eje OY.
ܿܲ߮݊݁ݏͲ߮ݏ௫ ܿ ߮ݏ ܲ௭ ܿ߮ݏ ͲͳͲܲ௬ ܶሺܲǡ ሺݕǡ ߮ሻሻ ൌ ൦ ൪ െܲ߮ݏܿͲ߮݊݁ݏ௭ ܿ ߮ݏെ ܲ௫ ܿ߮ݏ ͲͲͲͳ Finalmente, a la traslación del vector ܲ௫ǡ௬ǡ௭ le sigue la rotación de un ángulo θ alrededor del eje OZ.
ܿ ߠݏെ ܲͲߠ݊݁ݏ௫ ܿ ߠݏെ ܲ௬ ߠ݊݁ݏ ܲͲߠݏܿߠ݊݁ݏ௫ ߠ݊݁ݏ ܲ௬ ܿߠݏ ܶሺܲǡ ሺݖǡ ߠሻሻ ൌ ൦ ൪ ͲͲͳܲ௭ ͲͲͲͳ
COMPOSICIÓN DE MATRICES HOMOGÉNEAS Es habitual contemplar movimientos de traslación y giros realizados sobre un sistema de referencia, lo cual como ya hemos tratado es posible representarlos por una matriz de transformación homogénea. Existen movimientos generalizados que requieren de diferentes giros y traslaciones que deben obrar de manera consecutiva sobre un sistema de referencia establecido. Sintetizando, podemos codificar los giros básicos y las traslaciones, como una transformación compleja, siempre y cuando esta pueda descomponerse en la aplicación consecutiva de los mencionados eventos (transformaciones simples).
ILUSTRACIÓN MATRICES DE ROTACIÓN BÁSICAS ͳͲͲͲ Ͳ ߙݏܥെ Ͳߙ݊݁ݏ ൪ ܶሺݔǡ ߙሻ ൌ ൦ ͲͲߙݏܿߙ݊݁ݏ ͲͲͲͳ ܿͲ߮݊݁ݏͲ߮ݏ ͲͳͲͲ ܶሺݕǡ ߮ሻ ൌ ൦ ൪ െͲ߮ݏܿͲ߮݊݁ݏ ͲͲͲͳ ܿ ߠݏെ ͲͲߠ݊݁ݏ ͲͲߠݏܿߠ݊݁ݏ ൪ ܶሺݖǡ ߠሻ ൌ ൦ ͲͲͳͲ ͲͲͲͳ
INTERPRETACIÓN: EJEMPLO 1. Giro de un ángulo θ sobre el eje OZ 2. Giro de un ángulo φ sobre el eje OY 3. Giro de un ángulo α sobre el eje OX La matriz que representa el giro resultante, la obtenemos mediante la composición de las matrices básicas de rotación, y resulta ser:
ͲͲͲͳ Ͳ߮ܵͲ߮ܥ ߠܥെ ܵߠͲͲ ܵߠͲͲߠܥ ͲͳͲͲ Ͳ ߙܥെ ܵߙͲ ܶ ൌ ܶሺݖǡ ߠሻܶሺݕǡ ߮ሻܶሺݔǡ ߙሻ ൌ ൦ ൪ ൦ ൪= ൪൦ െܵ߮ͲͲߙܥߙܵͲ Ͳ߮ܥ ͲͲͳͲ ͲͲͲͳ ͲͲͲͳ ͲͲͲͳ ߠܥ߮ܥെ ܵߠ ߙܥ ߙܵߠܵߙܵ߮ܵߠܥ Ͳߙܥ߮ܵߠܥ ܵߠ ߙܥߠܥ߮ܥ ܵߠܵ߮ܵߙ െ ߙܵߠܥ ܵߠܵ߮Ͳߙܥ ൌ൦ ൪ െܵ߮Ͳ߮ܥߙܥߙܵ߮ܥ ͲͲͲͳ
NOTA: es preciso comentar, que el producto de matrices no es conmutativo, por lo que tampoco lo es la operación de composición de transformaciones. Para el caso en el que la situación obedezca a la inversión en el orden de aplicación de las transformaciones, el resultado obtenido es necesariamente distinto:
ͳͲͲͲ ߠܥ Ͳ߮ܵͲ߮ܥെ ܵߠͲͲ Ͳ ߙܥെ ܵߙͲ ͲͳͲͲ ܵߠͲͲߠܥ ൪= ܶ ൌ ܶሺݔǡ ߙሻܶሺݕǡ ߮ሻܶሺݖǡ ߠሻ ൌ ൦ ൪൦ ൪൦ Ͳܵߙ Ͳߙܥെܵ߮ͲͲͳͲͲ Ͳ߮ܥ ͲͲͲͳ ͲͲͲͳ ͲͲͲͳ ߠܥ߮ܥ െ Ͳ߮ܵߠܵ߮ܥ ۍ ې ൌ ߠܥ߮ܵߙܵ ێ ߠܵߙܥെ ܵߙܵ߮ܵߠ ߠܥߙܥെ ܵߙۑ Ͳ߮ܥ ێെ ߠܥ߮ܵߙܥ ܵߙܵߠ ߠܵ߮ܵߙܥ ܵߙۑͲ߮ܥߙܥߠܥ ے ͳͲͲͲ ۏ
Las anteriores ilustraciones, nos impulsa a informar que los ejes sobre los que recaían las operaciones correspondían al sistema de referencia fijo OXYZ. Esto no impide la posibilidad de organizar un conjunto de matrices de transformación, que activen operaciones dirigidas de manera permanente al sistema que este moviéndose. Esto se logra enlazando matrices de manera inversa. Cuando se presenta una tarea robótica que impone la aplicación del recurso de la composición de varias transformaciones, en las que hay que apelar al uso de matrices homogéneas, se cuenta con algunas normas, ó los siguientes criterios: Si el sistema fijo (OXYZ) y el transformado (0’UVW) concuerdan, la matriz homogénea de transformación resulta ser la matriz identidad. (Matriz de orden 4) ܫସ . Cuando el sistema transformado resulta de traslaciones y rotaciones definidas con respecto al sistema fijo, la matriz homogénea representativa de cada transformación, deberá pre-multiplicarse sobre las matrices de las respectivas transformaciones previas. Cuando el sistema transformado resulta de traslaciones y rotaciones definidas con respecto al sistema móvil, la matriz homogénea representativa de cada transformación, deberá post-multiplicarse sobre las matrices de las respectivas transformaciones previas. Las orientaciones mencionadas nos permiten argumentar, que para cualquier operación que incluya composición de matrices homogéneas, podemos tratarla como si se efectuara cada transformación con respecto al sistema de referencia fijo, o con respecto al sistema de referencia móvil. Finalmente, presentamos una ilustración grafica de un ejemplo de transformaciones diversas para localizar un objeto.
LECCIÓN 5: CUATERNIOS La variedad de movimientos contemplados en cualquier faena habitual de los robots, engloba eventos compuestos por giros y cambios de orientación de naturaleza diversa y compleja. Esto hace que tengamos que disponer de recursos y herramientas matemáticas versátiles, que sean capaces de responder a las exigencias propias de las características mencionadas. Los cuaternios se constituyen en los dispositivos creados para tal fin, pudiendo ser empleados como herramienta analítica de gran efectividad y flexibilidad computacional, para tratar y ocuparse de los giros y orientaciones. Un cuaternio Q está constituido por cuatro componentes ሺݍଵ ǡ ݍଶ ǡ ݍଷ ǡ ݍସ ሻ los cuales representan las coordenadas propias de cuaternio en la base {e, i, j, k}.
Se denomina a la componente en e:ݍ , la parte escalar del cuaternio, y parte vectorial, al resto de componentes. De tal manera, que un cuaternio lo podemos representar así: ܳ ൌ ݍ ݁ ݍଵ ݅ ݍଶ ݆ ݍଷ ݇ ൌ ሺݏǡ ݒሻ
En donde representamos por s a la parte escalar, y con v a la parte vectorial. Para aplicar los cuaternios como metodología de representación de orientaciones, asociamos el giro de un ángulo θ sobre el vector K al cuaternio y lo definimos como: ఏ
ఏ
ܳ ൌ ܴݐሺܭǡ ߠሻ ൌ ቀܿ ݏଶ ǡ݇ ݊݁ݏଶ ቁ Resumiendo, un cuaternio es un método compacto que nos permite representar una rotación en 3D, presentando ventajas computacionales, entre las cuales destacamos la velocidad y la robustez numérica.
IMPLEMENTACIÓN COMPUTACIONAL: DESCRIPCIÓN PRELIMINAR Para implementar un cuaternio, establecemos su respectivo objeto, el cual tiene en Matlab un constructor, llamado quaternión. El empleo esta matizado por tres formas, a saber: la primera nos retorna un nuevo objeto con el mismo valor de su argumento. La segunda forma inicializa el cuaternio para una rotación del ángulo (theta) alrededor del vector v. La tercera forma establece los cuatro elementos del cuaternio de manera directa, para una rotación equivalente de la matriz de rotación 3x3, o la sub-matriz de rotación de una transformación homogénea 4x4.
RESEÑA DE LOS OPERADORES COMUNES q1*q2: retorna el producto del cuaternio o su composición. q*v: retorna el producto vectorial del cuaternio, es decir, el vector v es rotado por el cuaternio. En este caso, ves un vector 3x3. inv (q): retorna la inversa del cuaternio. q1 / q2: retorna q1 * inv q2 norm (q): retorna la magnitud del cuaternio. plot (q): despliega una grafica de 3D q = quaternión ([s v1 v2 v3]): de 4 elementos. q = quaternión (v, theta): de un vector con su ángulo. q= quaternión (R): de una matriz 3x3 ó 4x4. q = quaternión (q): para otro cuaternio.
CAPÍTULO II: OPERACIONES MATEMÁTICAS EN EL ENTORNO DE TRABAJO COMPUTACIONAL. LECCIÓN 1: OPERACIONES GENERALES SOBRE VECTORES. En MATLAB los vectores son variables que tienen nombres. EJERCICIOS ILUSTRATIVOS: DEFINICION DE UN VECTOR FILA Y VECTOR COLUMNA X= [15 25 35] % Vector fila X= 15 25 35
Y= [15; 28; 26] % Vector columna. Y= 15 28 26 length(X) % Longitud del vector X. ans = 3 length (Y) % Longitud del vector Y ans = 3 X+Y % MATLAB TIENE EN CUENTA LA DIFERENCIA ENTRE VECTORES FILA Y COLUMNA ??? Error using ==> plus Matrix dimensions must agree. X+Y' % LA DIFICULTAD DESAPARECE SI SE SUMA X CON EL VECTOR TRASPUESTO DE Y ans = 30 -3 61 % OPERADOR DOS PUNTOS (:) a=1:10 % DEFINICION DEL VECTOR a a = 1 2 3 4 5 6 7 8 9 10
b=1:3:12 b= 1 4 7 10 c=1:1.5:12 c= 1.0000 2.5000 d=8:1:1 d= 8 7 6
5
4
4.0000
3
2
5.5000
7.0000
8.5000
10.0000
1
% FORMACION DE UNA TABLA DE FUNCIONES C= [0.0:pi/2:2*pi]'; F=sin(C); G=cos(C); [C F G] ans = 0 0 1.0000 1.5708 1.0000 0.0000 3.1416 0.0000 1.0000 4.7124 1.0000 0.0000 6.2832 0.0000 1.0000 % OPERACIONES ELEMENTALES Y DIVERSAS A=magic (4) A= 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1A (2,3) % a los elementos de la matriz mediante los índices de fila y columna. ans =
10 A(3,1:4) % Extrae los 4 primeros elementos de la tercera fila ans = 9 7 6 12 A(2,:) % Extrae los elementos de la segunda fila ans = 5 11 10 8 A(end,:) % Se extrae la cuarta fila ans = 4 14 15 1 A (2:4,:) % Extrae los elementos de las filas 2, 3 y 4 ans = 5 11 10 8 9 7 6 12 4 14 15 1 % OPERADORES DE DIVISION: Para un sistema de ecuaciones lineales Ax=b, en donde x y b son vectores columna, y A es una matriz cuadrada invertible. % x= inv(A)*b % x= A\b % EJERCICIOS ILUSTRATIVOS % 1) A=[2 4],b=[4] A=[2 4],b=[4] A= 2 4 b= 4
x=A.\b x= 2 1 % 2) A=[2 4;2 0;0 2], b=[4 0 0]' A=[2 4;2 0;0 2], b=[4 0 0]' A= 2 4 2 0 0 2 b= 4 0 0 x=A\b, resto=A*x-b x= 0.3333 0.6667 resto = 0.6667 0.6667 1.3333 % OPERADORES MATRICIALES (*, ^, \ y /) APLICAR ELEMENTO A ELEMENTO. [1 2 3 4 5]^2 ??? Error using ==> mpower Matrix must be square.
[1 2 3 4 5]^2 ans = 1 4 9 16 [1
2 3
25
4 5]*[1 -1 1 -1 2]
??? Error using ==> mtimes Inner matrix dimensions must agree. [1 2 3 4 5]*[1 -1 1 -1 2] ans = 1 -2 3 -4 10 % DIRECCIONAMIENTO DE VECTORES A PARTIR DE VECTORES % LOS ELEMENTOS DE UN VECTOR SE PUEDEN DIRECCIONAR A PARTIR DE LOS DE OTRO VECTOR. v=[1 4 5] v= 1 4 5 Z=rand(1,) Z= 0.9501 0.2311
0.6068
Z(v) ans = 0.9501
0.8913
0.4860
0.4860
0.8913
0.7621
0.4565
% INVERSION DEL ORDEN DE LOS ELEMENTOS DE UN VECTOR. Y=rand (1,7) Y = 0.0185
0.8214
0.4447
0.6154
0.7919
0.9218
0.7382
J=Y(6:1:1) J= 0.9218 0.7919
0.6154
0.4447
0.8214
0.0185
% ALGUNAS OPERACIONES CON VECTORES % Sean los vectores a=[1
1.5
3];b=[2
a=[1 1.5 3];b=[2 2.5 2]; c=6; a+c ans = 7.0000 7.5000 9.0000 a*c ans = 6 9
18
a.*b ans = 2.0000
3.7500
6.0000
a.^b ans = 1.0000
2.7557
0.1111
a.\b ans = 2.0000
1.6667
0.6667
c.^a ans = 6.0000
14.6969
216.0000
2.5
2]; c=6;
PRODUCTOS ESCALAR Y VECTORIAL a=[4;6;4; 2]; b=[6;16; 14;8]; c=dot(a,b) % PRODUCTO ESCALAR c= -112 a'*b ans = -112 A1=[18;12;26]; B1=[54; 22;24]; cross(A1,B1) % PRODUCTO VECTORIAL ans = -284 -1836 -1044 diary off
LECCIÓN 2: OPERACIONES GENERALES SOBRE MATRICES. % En MATLAB las matrices son variables que tienen nombres. % DEFINICION DE MATRICES A=[1 2 3;4 5 6;7 8 9] A= 1 2 3 4 5 6 7 8 9
% A partir de este momento la matriz A esta disponible para hacer cualquier tipo de operación con ella. % OPERACIONES INTRODUCTORIAS: EJERCICIOS ILUSTRATIVOS. % A’ A’ ans = 1 4 2 5 3 6
7 8 9
B=A' B= 1 4 2 5 3 6
7 8 9
B*A % Producto de matrices ans = 66 78 90 78 93 108 90 108 126 % DIRECCIONAMIENTO DE UNA MATRIZ g=[2 4];d=[1 3]; B=magic(5) B= 17 24 1 8 23 5 7 14 4 6 13 20 10 12 19 21 11 18 25 2 B(g,d)
15 16 22 3 9
ans = 23 7 10 19 g=[1 3 5 g= 1 3 5 7
7]
B(g),B(3),B(5) ans = 17 4 11 5 ans = 4 ans = 11
% INVERSION DEL ORDEN DE LOS ELEMENTOS DE UNA MATRIZ L=magic(5) L= 17 24 1 23 5 7 4 6 13 10 12 19 11 18 25 L(:,4:-1: 2) ans = 8 1 24 14 7 5 20 13 6 21 19 12 2 25 18
8 14 20 21 2
15 16 22 3 9
% L(:) Representa un vector columna con las columnas de L una detrás de otra.
% fliplr(L);INVIERTE EL ORDEN DE LAS COLUMNAS fliplr(L) 15 8 1 24 17 16 14 7 5 23 22 20 13 6 4 3 21 19 12 10 9 2 25 18 11 % OPERACIONES BASICAS CON MATRICES: EJERCICIOS ILUSTRATIVOS A=[4 6 3;5 10 0];B=[3 13 8;9 7 3];C=[3 6; 5 7; 8 7]; H=[2 5;4 9];p=2; A+B ans = 1 7 14 17
11 3
A-B ans = 7 -19 5 -4 3 -3 B-A ans = -7 19 5 4 -3 3 A*C ans = -42 39 65 -100
C*A ans = -18 -78 9 -15 -100 15 3 118 -24 C*B ans = -63 -3 6 -78 16 19 87 -55 -43 B*C ans = -8 -17 38 -82 A/B ans = -0.3645 0.2265
0.2523 0.6839
A\B ans = 0.3429 0.7286 0
2.4571 -0.5286 0
B\A ans = 0.2681 0.3696 0
1.2464 -0.1739 0
1.4000 -0.4000 0
-0.1522 0.1957 0
H^p ans = 4 25 16 81 p.^H ans = 4 32 16 512 H^p ans = 24 55 44 101 p^H ans = 1.0e+003 * 0.4455 1.0202 0.8162 1.8738
% OTRAS OPERACIONES CON MATRICES: EJERCICIOS ILUSTRATIVOS K=[1 K= 1 4 7
2 3;4 5 6;7 8 9] 2 3 5 6 8 9
diag(K), inv(K), K', det(K),rank(K), trace(K), norm(K); size (K) ans = 1 5 9
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.541976e-018. ans = 1.0e+016 * -0.4504 0.9007 0.9007 -1.8014 -0.4504 0.9007
-0.4504 0.9007 -0.4504
ans = 1 4 7 2 5 8 3 6 9 ans = 0 ans = 2 ans = 15 ans = 3
3
% ALGUNAS MATRICES ESPECIALES
ones(2,3) ans = 1 1 1 1
1 1
ones(4) ans = 1 1 1 1 1 1 1 1
1 1 1 1
1 1 1 1
zeros(2,3) ans = 0 0 0 0 0 0 zeros(3) ans = 0 0 0 0 0 0 0 0 0 eye(5) ans = 1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
eye(2,3) ans = 1 0 0 0 1 0 diary off
0 0 0 1 0
0 0 0 0 1
LECCIÓN 3: MATRICES DE TRANSFORMACIÓN HOMOGÉNEA: POSICIÓN Mediante las coordenadas homogéneas podemos representar de manera conjunta la posición y la orientación (localización). Partiendo de las coordenadas homogéneas, ingresamos al concepto de matriz de transformación homogénea. TRASLACION: Se trata de representar la posición y orientación de un sistema girado y trasladado O'UVW con respecto a un sistema fijo de referencia OXYZ.
Un vector trasladado es de la forma ܲ ൌ ܲ௫ ܲ௬ ܲ௭ . La matriz homogénea de traslación es: T(p)= [1 0 0 px;0 1 0 py;0 0 1 pz;0 0 0 1],la cual se denomina matriz básica de traslación.
Un vector cualquiera r, representado en el sistema O'UVW, tendrá como componentes del vector con respecto al sistema OXYZ: [rx ry rz 1]'=[1 0 0 px;0 1 0 py;0 0 1 pz;0 0 0 1]*[ru rv rw 1]'= [ru+px;rv+py;rw+pz+1] (1) Y a su vez, un vector rx, y, z desplazado según T tendrá como componentes r'x, y, z: [r'x r'y r'z 1]'=[1 0 0 px;0 1 0 py;0 0 1 pz;0 0 0 1]* [rx ry rz 1]=[rx+px;ry+py;rz+pz;1] (2)
EJERCICIOS ILUSTRATIVOS 1. Según la figura, en el sistema O'UVW esta trasladado un vector p (6, 3,8) con respecto al sistema OXYZ. Calcular las coordenadas (rx, ry, rz) del vector r cuyas coordenadas con respecto al sistema O'UVW son ruvw (2, 7,3).
Solución: Procedemos a ingresar los valores y aplicamos la ecuación (I) Tp=[1 0 0 6;0 1 0 3; 0 0 1 8;0 0 0 1]; ruvw=[-2 7 3 1]'; rxyz=Tp*ruvw rxyz = 4 4 11 1 2. Calcular el vector r'xyz resultante de trasladar al vector rxyz(4,4,11)según la transformación T(p) con % p(6,3,8) (ver figura adjunta).
Solución: Procedemos a ingresar los valores y aplicamos la ecuación (II) Tp=[1 0 0 6;0 1 0 3; 0 0 1 8;0 0 0 1]; rxyz=[4 4 11 1]'; r1xyz=Tp*rxyz r1xyz = 10 1 19 1 diary off
LECCION 4: MATRICES DE TRANSFORMACION HOMOGENEA: ROTACION En esta situación corresponde definir tres matrices homogéneas básicas según se realice ésta de acuerdo a cada uno de los tres ejes coordenados OX, OY y OZ del sistema de referencia OXYZ: % T(x,a)=[1 0 0 0;0 cosa -sena 0;0 sena cosa 0;0 0 0 1], (I) % T(y,b)=[cosb 0 senb 0;0 1 0 0;-senb 0 cosb 0;0 0 0 1], (II) % T(z,c)=[cosc -senc 0 0;senc cosc 0 0;0 0 1 0;0 0 0 1], (III) Un vector cualquiera r, representado en el sistema girado O'UVW por ruvw, tendrá como componentes (rx, ry, rz) en el sistema OXYZ las siguientes: [rx ry rz 1]'=T[ru rv rw 1]' (IV) Y a su vez un vector rxyz rotado según T vendrá expresado por r'x,y,z según: [r'x r'y r'z 1]'=T[rx ry rz 1]' (V)
TRASLACIÓN JUNTO CON ROTACIÓN La traslación y la rotación son transformaciones que se realizan en relación a un sistema de referencia.
ROTACIÓN SEGUIDA DE TRASLACIÓN Se trata de realizar primero una rotación sobre uno de los ejes del sistema OXYZ seguida de una traslación, las matrices homogéneas serán las que a continuación se expresan: Rotación de un ángulo a sobre el eje OX seguido de una traslación de vector pxyz:
% T((x,a),p)= [1 0 0 px;0 cosa sena py;0 sena cosa pz;0 0 0 1] (VI) % T((y,b),p)= [cosb 0 senb px;0 1 0 py;senb 0 cosb pz;0 0 0 1] (VII) % T((z,c),p)= [cosc senc 0 px;senc cosc 0 py;0 0 1 pz;0 0 0 1] (VII)
EJERCICIOS ILUSTRATIVOS 1. Según la figura adjunta, el sistema 0UVW se encuentra girado -90 grados alrededor del eje OZ con respecto al sistema OXYZ. Calcular las coordenadas del vector rxyz si ruvw=[4,8,12]'
Solución: Procedemos a ingresar los valores inicialmente para construir la matriz T(z,c), ecuación (III). Tzc=[0 1 0 0;1 0 0 0;0 0 1 0;0 0 0 1], y luego construimos la matriz ruvw utilizando la información entregada [ru rv rw 1]'= ruvw=[4,8,12,1]'. Luego aplicamos [rx ry rz 1]'=T[ru rv rw 1]' , ecuacion (IV) Tzc=[0 Tzc = 0 1 0 0
1 0 0;1 0 0 0;0 0 1 0;0 0 0 1] 1 0 0 0
0 0 1 0
0 0 0 1
% [rx ry rz 1]'=T[ru rv rw 1]' % [ru rv rw 1]'=[4,8,12,1]' ruvw=[4,8,12,1]' ruvw = 4 8 12 1 rxyz=Tzc*ruvw rxyz = 8 4 12 1
EMPLEANDO COMANDOS ESPECIALES t1=rotz(-pi/2) t1 = 0.0000 -1.0000 0 0 ruvw=[4 8 12 1]' ruvw = 4 8 12 1
1.0000 0.0000 0 0
0 0 1.0000 0
0 0 0 1.0000
rxyz=t1*ruvw rxyz = 8.0000 - 4.0000 12.0000 1.0000 2. Un sistema OUVW ha sido girado 90 grados alrededor del eje OX y posteriormente trasladado un vector p(8,-4,12) con respecto al sistema OXYZ (figura adjunta). Calcular las coordenadas (rx,ry,rz) del vector r con coordenadas ruvw(-3,4,-11).
Solución: Procedemos a ingresar los valores inicialmente para construir la matriz T(z,c),ecuación (III). Procedemos a utilizar la ecuación [rx ry rz 1]'=T[ru rv rw 1]' ecuación (IV). En donde, la matriz de transformación, T((x,a),p)= [1 0 0 px;0 cosa –sena py;0 sena cosa pz;0 0 0 1] (VI)
Queda así: Txa=[1 0 0 8;0 0 -1 -4;0 1 0 12;0 0 0 1] Txa = 1 0 0 8 0 0 1 4 0 1 0 12 0 0 0 1 [ru rv rw 1]'= ruvw=[-3,4, -11,1]' % Ahora ya podemos aplicar [rx ry rz 1]'=T[ru rv rw 1]' , ecuación (IV). Txa=[1 Txa = 1 0 0 0
0
0 8;0
0 0 1 0
0 8 1 4 0 12 0 1
ruvw=[3,4,11,1]' ruvw = 3 4 11 1 rxyz=Txa*ruvw rxyz = 5 7 16 1 diary off
0 -1 -4; 0
1
0
12;0
0
0
1]
LECCIÓN 5: MATRICES DE TRANSFORMACIÓN HOMOGÉNEA: TRASLACIÓN SEGUIDA DE ROTACIÓN Se trata de realizar primero una traslación seguida de una rotación sobre los ejes coordenados del sistema OXYZ. Las matrices homogéneas resultantes son las siguientes: Traslación del vector px, y, z seguida de rotación de un ángulo a sobre el eje OX. T(p,(x,a))= [1 0 0 px;0 cosa pysena+pzcosa;0 0 0 1] (I)
sena
pycosapzsena;0
sena
cosa
Traslación del vector px, y, z seguida de rotación de un ángulo b sobre el eje OY. T(p,(y,b))= [cosb 0 senb pxcosb+pzsenb;0 pzcosbpxsenb;0 0 0 1] (II).
1
0
py;senb
0
cosb
Traslación del vector px, y, z seguida de rotación de un ángulo c sobre el eje OZ. T(p,(z,c))=[cosc senc 0 1 pz;0 0 0 1] (III).
pxcosysenc;senc
cosc
0 pxsenc+pycosc;0
0
PERSPECTIVA Y ESCALADO Cuando en las componentes de un vector es posible la realización de un escalado, podemos aplicar las matrices homogéneas. Para lograr esto, es suficiente emplear una matriz del tipo: T=[a 0 0 0;0 b 0 0;0 0 c 0; 0 0 0 1]. El caso típico es transformar el vector r(x, y, z) en el vector r (ax, by, cz). Si se trata de hacer un escalado global de las tres componentes, tenemos el recurso apropiado con la matriz T=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 s].
EJERCICIOS ILUSTRATIVOS 1. Un sistema OUVW ha sido trasladado un vector p(8,-12,-4) con respecto al sistema OXYZ y girado 90 grados alrededor del eje OX (figura adjunta). Calcular las coordenadas (rx,ry,rz)del vector r de coordenadas ruvw (3,4,11).
Solución: Procedemos a ingresar los valores inicialmente para construir la matriz T(p,(x,a)),ecuación (I). Tpxa=[1 0 0 8;0 0 -1 -12; 0 1 0 -4; 0 0 0 1] Y luego construimos la matriz [ru rv rw 1]'= ruvw=[3,4, 11,1]' Ahora ya podemos aplicar [rx ry rz 1]'=T[ru rv rw 1]' Tpxa=[1 0 0 8;0 0 1 12; 0 1 0 4; 0 0 0 1]
Tpxa = 1 0 0 0
0 0 1 0
0 8 1 12 0 4 0 1
ruvw=[3,4,11,1]' ruvw = 3 4 11 1 rxyz=Tpxa*ruvw rxyz = 5 1 0 1 2. Composición de matrices homogéneas: Se quiere obtener la matriz de transformación que representa al sistema O'UVW obtenido a partir del sistema OXYZ mediante un giro de ángulo de -90 grados alrededor del eje OX, de una traslación de vector p(x, y, z) , (5,5,10) y un giro de 90 grados sobre el eje OZ. Solución: Procedemos a ingresar los valores de la matriz T(p): Tp=[1 0 0 5;0 1 0 5;0 0 1 1 0;0 0 0 1] Y empleando comandos especiales de ejecución directa: Tp=[1 0 0 5;0 1 0 5;0 0 1 10;0 0 0 1]
Tp = 1 0 0 0
0 1 0 0
0 5 0 5 1 10 0 1
rotz(pi/2),rotx(-pi/2) ans = 0.0000 -1.0000 1.0000 0.0000 0 0 0 0
0 0 1.0000 0
0 0 0 1.0000
0 1.0000 0.0000 0
0 0 0 1.0000
ans = 1.0000 0 0 0
0 0.0000 -1.0000 0
% Ahora se procede a aplicar T=T(z,90 grados)T(p)T(x,-90 grados) T=rotz(pi/2)*Tp*rotx(pi/2) T= 0.0000 -0.0000 -1.0000 1.0000 0.0000 0.0000 0 -1.0000 0.0000 0 0 0 diary off
-5.0000 5.0000 10.0000 1.0000