Vous êtes sur la page 1sur 15

UNIVERSIDAD TECNOLGICA DE LA MIXTECA

INSTITUTO DE ELECTRNICA Y MECATRNICA


INGENIERA EN MECATRNICA

ROBTICA I.
EXAMEN FINAL

Generador de ngulos para el Robot PowerCube de 6 grados


de libertad.
Manual de usuario para el Software
PROFESOR:
Dr. Vitaliy Ribak.
PRESENTA:
Gmez Merln Emanuel

Huajuapan de Len, Oaxaca, Mxico, 23 de Septiembre del 2015.

NDICE.
Introduccin

Objetivo

Desarrollo del algoritmo para la obtencin de los ngulos

.3

Procedimiento de ejecucin del Software

Ingreso de datos en el Software

Ubicacin de parmetros constantes en el cdigo

Ejemplo

10

INTRODUCCIN
En este manual de usuario se presenta la aplicacin de los conocimientos de Cinemtica
inversa, la construccin del esquema cinemtico y construccin de trayectorias aplicados al
robot PowerCube de 6 grados de libertad con el fin de aplicar una metodologa que nos
permita generar trayectorias por medio de la solucin del problema de cinemtica inversa.
OBJETIVO
Aplicar los conocimientos vistos en la materia ROBOTICA I que se adquirieron a lo largo
del curso de manera prctica a fin de comprender de mejor manera las tcnicas y conceptos
que se aprendieron y aplicarlos directamente sobre el robot Powercube del laboratorio.
DESARROLLO DEL ALGORITMO PARA LA OBTENCIN DE LOS NGULOS.
Antes de desarrollar el algoritmo pertinente, es necesario fijar los lmites a los que se
restringir el movimiento del brazo robtico, es decir, las dimensiones mximas y mnimas
en donde se efectuar el movimiento para el trazado de las letras, as como los sistemas de
coordenadas fijo y los sistemas de coordenadas de la mesa. Dichos parmetros se muestran
a continuacin:
[

(1)
(2)
(3)

Dnde:
es la altura de la mesa y

es la altura del lpiz.

Figura 1. rea de trabajo sobre el plano de la hoja con respecto al sistema de


coordenadas fijo.

Es importante mencionar que los 720mm define la distancia que existe entre el origen de
coordenadas fijo (origen del manipulador) hasta el origen de coordenadas de la mesa. De tal
modo que cada cuadrante de la mesa tiene las siguientes dimensiones 85mm sobre el eje X
por 221mm sobre el eje Y del manipulador.
Una vez que se tiene claro los sistemas de coordenadas con los que se estar trabajando se
procede a disear la figura que se desea trazar con el manipulador, en este caso se
generarn letras del alfabeto.
Para la realizacin de este trabajo se consider un rea de 40mm de largo x 40mm de alto
para delimitar el tamao de la letra W y M, mientras que se tom un rea de 30mm de largo
x 40mm de alto para todas las dems letras tomando como origen la esquina inferior
izquierda. A continuacin se muestran los puntos para generar la letra M.

Figura 2. Diseo de la letra M con 17 puntos.

Punto

Punto
[mm]

[mm]

[mm]

[mm]

10

25

10

10

11

30

20

20

12

35

30

30

13

40

40

40

14

40

30

6
5
30
15
40
20
7
10
20
16
40
10
8
15
10
17
40
0
9
20
0
Tabla 1.1 Coordenadas de cada uno de los puntos que conforman la letra M
respecto al sistema de coordenadas de la letra.

Punto

Punto
[mm]

[mm]

[mm]

[mm]

10
720

20

745

10

750

755

-10

760

-20

760
760
760
760

-10
0
10
20

11
720

10

720

720

-10

12

13

14
720
725
730
735

-20
-10
0
10

6
15
7
16
8
17
9
740
20
Tabla 1.1 Coordenadas de cada uno de los puntos que conforman la letra M
respecto al sistema de coordenadas de fijo.

De este modo es posible capturar infinidad de puntos dentro del plano cartesiano a fin de
generar un trazo ms suave y uniforme de la figura deseada. Una vez que se tiene la
sucesin de puntos que debe visitar el efector final del manipulador se procede a obtener las
matrices
con ayuda de las ecuaciones que se mostrarn a continuacin.
Por cada coordenada en el plano (x,y) se generar una matriz de transformacin homognea
, de tal modo que si una letra como la S posee 32 puntos a lo largo de su trayectoria,
entonces se necesitara calcular 32 matrices de transformacin homognea, debido a que
para cada punto en el plano se necesitar que cada una de las articulaciones del robot
cambien de posicin y esto generar nuevos ngulos.
A continuacin se muestran las frmulas para hallar las matrices de transformacin
homognea de cada uno.
(4)

(5)

(6)
Donde:
(7)
(8)
Donde
es la distancia del origen de la hoja hacia el punto lateral donde se quiera
posicionar la letra.
(9)
Estos puntos obtenidos son las coordenadas del efector final con respecto al eje de
coordenadas fijo (cuarta columna de la matriz
). Ahora, a partir del ngulo
se
podrn obtener los puntos X, Y y Z que estarn con respecto al eje de coordenadas rotado.

representados con respecto al sistema de


Los vectores de coordenadas
coordenadas bsico se muestran a continuacin.

[ ]

[ ]

(10)

A continuacin se muestra la matriz de rotacin con respecto al eje ZOAR:

La ecuacin de rotacin indica el giro con

(11)

grados respecto al eje ZOAR.

Posteriormente se realizan las siguientes operaciones trigonomtricas para hallar la


orientacin con respecto al sistema de coordenadas fijo.

] [ ]=[ ]

][

][ ]

(12)

(13)

(14)

La matriz de transformacin ser de la siguiente manera:


[

(15)

(16)

Al obtener las matrices


de cada punto los cuales generan la una trayectoria, en este
caso la letra, es posible obtener los ngulos (
) que deber tomar el sistema para
posicionarse en el punto indicado, esto mediante la aplicacin de la cinemtica inversa. A
fin de reducir tiempos en la insercin de datos al programa se desarroll un programa para
la obtencin de las matrices a partir de los puntos indicados en el diseo de cada una de las
letras y posteriormente, haciendo uso del programa que resuelve el problema de cinemtica
inversa se obtienen los ngulos para cada grado de libertad del robot manipulador
PowerCube.
Una vez que encuentran los ngulos para cada punto se procede a ejecutar el cdigo del
ANEXO A, en el cual se recibe la secuencia de ngulos para el movimiento del efector
final.

PROCEDIMIENTO DE EJECUCIN DEL SOFTWARE


El programa que se encarga de generar la matriz de transformacin homognea para cada
coordenada (x,y) fue creado en el lenguaje C dentro del entorno de programacin de DevCpp 5.9.2. Para ejecutar el programa es necesario abrir el cdigo con el compilador de DevCpp el cual lleva por nombre MatrizOrientacion.cpp que se encuentra en este mismo y
ah mismo hacer unos ligeros cambios (vase INGERESO DE DATOS EN EL SOFTWARE) y presionar
la tecla F11.
De igual modo para generar el arreglo de ngulos de cada coordenada (x,y) se debe abrir el
cdigo que lleva por nombre cinematica inversa_FINAL.cpp en el cual se deber ingresar
en una parte del cdigo la matriz de transformacin homognea a la que se desea hallar sus
ngulos.
INGRESO DE DATOS EN EL SOFTWARE
Primeramente se debe calcular la matriz de transformacin homognea para cada
coordenada (x,y) que conforma una letra esto se hace con ayuda del programa Matriz
Orientacion.cpp. En el cual se debe de modificar la lnea de cdigo #26, la cual contiene el
nombre del archivo que deber leer el programa para ir extrayendo cada coordenada (x,y)
sin necesidad de ingresarlas manualmente.

Figura3.-Muestra la lnea de cdigo que deber ser modificada

El archivo que se us en este trabajo era un formato con extensin .txt y se bede guardar
dentro de la carpeta donde se encuentra el programa MatrizOrientacion.cpp. Ah mismo
el programa arrojar un nuevo archivo con extensin .txt con el nombre Genera0T6.txt
(este nombre se lo puedes cambiar si deseas), este nuevo archivo contiene las matrices de
transformacin homognea que se usarn en el siguiente programa.
Una vez que se tiene el conjunto de matrices de transformacin homogneas 0T6 para cada
coordenada que conforma una letra, entonces se procede a ejecutar el segundo cdigo,
llamado cinematica inversa_FINAL.cpp. Para realizar exitosamente la ejecucin de dicho
programa se debe copiar los valores de cada matriz
contenidas en el archivo
Genera0T6.txt.

Figura 4 Lnea de cdigo donde se ingresan los datos de la matriz

Cabe mencionar que este procedimiento es tedioso, debido a que en el segundo programa
no se implement de manera correcta la utilizacin de archivos para evitar estar ingresando
manualmente cada matriz 0T6 a causa de errores de programacin que no se pudieron
corregir a tiempo. Este programa generar una o dos soluciones, dependiendo del tipo, de
tal modo que el usuario deber elegir el arreglo de ngulos que permitan tener el brazo del
robot en una posicin tal que no interfiera con el movimiento fluido del mismo sobre la
mesa.

UBICACIN DE PARMETROS CONSTANTES EN EL CDIGO


Despus de agregar las libreras usadas en el cdigo se establecieron los valores constantes
de los parmetros que tiene el PowerCube. A continuacin se muestra la parte del cdigo en
donde se consideran dichos valores.

Figura 5 Ubicacin de los parmetros constantes en el cdigo

Como se aprecia en la Figura4 la constante dirZ delimitar en todo momento la posicin


del lpiz sobre el eje z contante (110 es la altura en z para que el lpiz toque el papel sobre
la mesa), dirY delimita que tan a la izquierda o derecha del centro de coordenadas del eje
rotado se empezar a escribir y la constante pb delimita el rengln donde se escribir, es
decir, ms arriba o ms abajo dentro de los lmites establecidos para la mesa.
EJEMPLO
Dada las coordenadas de un punto sobre un plano (x,y) para 0 x30mm y 0y40mm
generar los ngulos para cada uno de los 6 grados de libertad del robot PowerCube tales
que generen una trayectoria a fin de dibujar la letra M.

Figura 6 lista de coordenadas para generar la letra M.

RESPUESTA:
Se guardan estas coordenadas en un archivo, en este caso se llamar, M.txt y se guarda
dentro de la carpeta donde se ubica este mismo programa, posteriormente se modifica el
cdigo del programa que lleva por nombre MatrizOrientacion.cpp para poder ingresar los
datos del archivo M.txt (vase el apartado INGRESO DE DATOS EN EL SOFTWARE)

10

este programa generar las matrices


de cada punto, se almacenar en un archivo
llamado Genera0T6.txtdentro de la misma carpeta donde se encuentra este programa.

Figura 7 Modificacin del primer programa para el ejemplo con la letra M.

Nota: El archivoGenera0T6.txt reescribir su contenido en el caso de que este no se


cambie de nombre y se vulva a generar una nueva matriz para otra letra.

Figura 8 Pantalla emergente una vez que se gener las matrices 0T6.

11

Figura 9 Archivo Genera0T6.txt que contiene las matrices 0T6.

En la Figura 8 se aprecia que cada cuatro renglones representa una matriz de


transformacin homognea 0T6 para una coordenada que conforma la letra M.
Posteriormente se abre el cdigo del segundo programa que lleva por nombre cinematica
inversa_FINAL.cpp y se ingresan los datos de la matriz a la cual se desea calcular su
12

arreglo de ngulos. Este programa arrojar en pantalla el arreglo de ngulos para la matriz
0T6 ingresada, de donde el usuario tomara la mejor de las dos soluciones y manualmente se
copiar dicho arreglo en otro archivo como se muestra a continuacin.

Figura 10 arreglo de ngulos para cada grado de libertad del robot.

Este archivo es l se recibir que recibir el algoritmo para el movimiento asncrono (vase
ANEXO A) el cual ser el encargado de interpretar los ngulos de cada grado de libertad y
activar los motores para que dichas articulaciones comiencen a moverse y formen la letra
M deseada sobre el plano de la mesa.

13

ANEXO A
Angulos es una matriz que contiene la secuencia de ngulos que reciben las tetas para el
movimiento
Num_Ang indica el nmero de los puntos a visitar
Num_Theta indica el nmero de tetas del manipulador (nmero de grados de libertad)
DeltaT indica el tiempo delta ha usarse para los clculos
Vel indica la velocidad usada por el manipulador
Acc la aceleracin usada por el manipulador

Procedimiento (Angulos, Num_Ang, Num_Theta, DeltaT, Vel, Acc,)


Variables:
Entero i<-0, j<-0;
Real Tiempo1<-Vel/Acc;
Real Tiempo2;
Matriz Real Tiempos;
Matriz Real Deltas;
Arreglo Entero Pos_Matriz;
Arreglo Entero Tiempo_Act;
Lgico Bandera;
Para i<-0 Hasta Num_Thetha-1 Hacer
Deltas0 , i<-Angulos0 , i;
Fin Para
Para i<-1 Hasta Num_Ang-1 Hacer
Para j<-0 Hasta Num_Theta-1 Hacer
Deltasi-1 , j<-Deltasi-1 , j - Angulosi , j;
Fin Para
Fin Para
Para i<-0 Hasta Num_Ang-2 Hacer
Para j<-0 Hasta Num_Theta-1 Hacer
Tiempo2<-( Deltasi , j - Acc * Tiempo1 * Tiempo1 ) / Vel;
Tiemposi , j<-Tiempo2 + 2 * Tiempo1 DeltaT;
Fin Para
Fin Para
Para i<-0 Hasta Num_Thetha-1 Hacer
Pos_Matrizi<-0;
Fin Para
Para i<-0 Hasta Num_Thetha-1 Hacer
14

Mover_Thetai<- Deltas0 , i;
Tiempo_Acti<- Tiempo actual;
Fin Para
Repetir
Bandera<- Falso;
Para i<-0 Hasta Num_Theta-1 Hacer
Si Tiempo actual Tiempo_Acti TiemposPos_Matriz , i
Si Pos_Matrizi < Num_Ang-2
Mover_Thetai<- DeltasPos_Matriz , i;
Pos_Matrizi<- Pos_Matrizi + 1;
Tiempo_Acti<- Tiempo actual;
Bandera<- Verdadero;
Fin Si
Fin Si
Fin Para
Hasta Que Bandera = Falso;
Fin Procedimiento
i

i+1

15

Vous aimerez peut-être aussi