Universidad Politécnica de Puebla

Ingeniería Mecatrónica

Proyecto: Programa para el posicionamiento de un robot paralelo de dos grados de libertad

Alumno: David Badillo González

Asesor del proyecto: M.C. Carlos García Meneses

Puebla, Pue., Abril de 2010

Abstract:

The present work has as main objective to develop a computer program to control the actuators of a parallel robot with two degrees of freedom using the software Matlab, in order to build a physical robot in coming years. It is very important to have a program which control’s the position and the lengths of the actuators of the robot, since of this way will be achieved manipulate fully the robot from a computer. Even though the completion of a program of this kind requires a significant investment of time and effort the work will be divided into several stages, beginning with to know the environment of software, define the variables to monitor and control, investigate the format of input data, perform the program and finally it will be necessary to test the program finished.

Índice

I. II. III. IV. V. VI. VII. VIII.

Introducción .......................................................................................... 1 Antecedentes ......................................................................................... 1 Planteamiento del problema ................................................................ 3 Objetivos: general y específicos.......................................................... 4 Justificación .......................................................................................... 4 Metodología ........................................................................................... 5 Cronograma ........................................................................................... 6 Desarrollo .............................................................................................. 7 Manipulador paralelo de 2GDL ................................................................ 7 Modelo dinámico...................................................................................... 9 Ecuaciones de energía .......................................................................... 10 Ecuación de Lagrange .......................................................................... 11 Desarrollo del programa ....................................................................... 14

IX. X. XI. XII.

Resultados y discusión de resultados .............................................. 21 Conclusiones ....................................................................................... 21 Fuentes de referencias ....................................................................... 22 Anexos ................................................................................................. 23 A.1 MATLAB Serial port interface ......................................................... 23 A.2 Serial port object properties ............................................................ 28 A.3 Serial port I/O functions .................................................................. 30 A.4 Programa del modelo dinámico del robot ....................................... 31 A.5 Programa para solucionar el modelo dinámico ............................... 33 A.6 Programa para el posicionamiento del robot .................................. 33

las cuales controlaran los motores de la estructura mecánica. cuando los primeros geómetras franceses e ingleses realizaron sus estudios sobre los poliedros y sus aplicaciones. Antecedentes Los primeros trabajos teóricos relacionados con las estructuras mecánicas paralelas aparecieron ya hace siglos.789. la ley de control y la trayectoria de seguimiento del robot.I. en resumen. así como el desarrollo de un control proporcional-diferencial no lineal. Gwinnett. el primer mecanismo paralelo fue patentado en el año 1931 (US Patent N° 1. antes de que se empezara a hablar de robots. Ya en la época actual. Introducción Este proyecto forma parte de un trabajo que tendrá como objetivo construir un robot paralelo de dos grados de libertad. que posteriormente serán enviados elemento por elemento mediante los puertos seriales a las tarjetas electrónicas. Desgraciadamente el mecanismo diseñado por este ilustre visionario no fue nunca construido. II. El programa. Se trataba de una plataforma de movimiento destinada a la industria del entretenimiento diseñada por James E. Este trabajo se ha venido desarrollando con anterioridad abarcando los estudios cinemáticos y dinámicos.680). 1 . 1931). al inicializarlo generara los vectores de posición. La finalidad de este proyecto es la de realizar un programa de computadora para poder posicionar el robot paralelo de dos grados de libertad. este programa debe contener el modelo dinámico. (Gwinnett.

Gough diseño un octaedro hexápodo con lados de longitud variable como plataforma para la comprobación del comportamiento de los neumáticos de la casa Dunlop (para la cual trabajaba) bajo cargas aplicadas en diferentes ejes. y construyo varias de sus invenciones. Mr. el ingeniero Klaus Cappel realizaba en el Franklin Institute Research Laboratory numerosas investigaciones con plataformas paralelas de 6 grados de libertad. fue el Dr. Paralelamente. Ya en 1965.286. El artículo de Stewart tuvo y tiene una gran influencia en el mundo académico y se considera como uno de los primeros trabajos de análisis de plataformas paralelas. 1965) presento un articulo en el que describía una plata forma de movimiento de 6 grados de libertad destinada a trabajar como simulador de vuelo. El Dr. En 1940. En 1967 Mr. Sin embargo. En la actualidad existen multitud de plataformas basadas en este diseño en numerosas empresas. Pollard presentaba un ingenioso robot de 5 grados de libertad destinado a operaciones de pintura con spray. Eric Gough quien en 1947 invento la plataforma paralela más popular de todas. De esta forma. 2 . tan solo diecinueve años después de que Karel Kapek acuñara el término “robot”. Stewart. Cappel (Cappel. Willard L.Y no hubo que esperar mucho mas para que el primer diseño de robot industrial paralelo apareciera (US Patent N° 2. El robot consistía en tres brazos de dos eslabones cada uno. (Stewart. Por estricto orden temporal. han sido otros mecanismos paralelos los que han logrado un mayor reconocimiento general y han contribuido a la aparición de un mayor número de publicaciones sobre la robótica paralela.V.571). 1967) patentaba un simulador de movimiento basado en un hexápodo. Los tres actuadores de la base comandaban la posición de la herramienta. Los eslabones estaban unidos mediante juntas universales. y se conocen bajo el nombre de MAST (Multi-Axis Simulation Table). el mecanismo de Stewart es diferente al presentado por Gough. mientras que la orientación era proporcionada por otros dos actuadores situados en la base y que transmitían el movimiento a la herramienta mediante la rotación proporcionada a unos cables flexibles. intentaba simular el proceso de aterrizaje de un avión. Contrariamente a la creencia general.

1979) fueron los primeros que propusieron usar la plataforma de Stewart como un manipulador paralelo para una célula de ensambla je robotizada. por lo que se opto por solucionar esta problemática mediante proyectos de investigación tanto para profesores y alumnos de la carrera. III. Planteamiento del problema Actualmente la carrera de Ingeniería Mecatrónica no cuenta con laboratorios del área de robótica tanto para fines didácticos como de investigación. Además de la excelente relación carga admisible/peso propio.Mas tarde en 1978. Hunt (Hunt. La gran rigidez asegura que las deformaciones de los actuadores sean mínimas y esta característica contribuye en gran manera a la precisión en el posicionamiento del manipulador [6]. el proyecto se secciona de la siguiente manera: 1. En 1979. La primera acción que se ha tomado es la de construir un robot paralelo de dos grados de libertad. Con esto se pretende ir subsanando esta deficiencia ya con bases previamente fundamentadas y solidas. Programa para el posicionamiento de un robot paralelo de 2 grados de libertad 3 . para esto el trabajo se dividió en varias etapas según el origen tecnológico del mismo. es decir. fundamentalmente porque la posición del efector final es mucho menos sensible a los errores que los sensores articulares de los robots en serie. como robots manipuladores y destaco que los manipuladores paralelos requerían de un estudio mas detallado en el contexto de las aplicaciones robóticas a la vista de las ventajas en cuanto rigidez y precisión respecto a los robots serie convencionales. los robots paralelos presentan otras características interesantes. 1978) sugirió que se usaran los mecanismos actuados de forma paralela de los simuladores de vuelo. McCallion y Pham (McCallion and Pham.

Objetivos: general y específicos Objetivo general: Desarrollar un programa para posicionar un robot paralelo de dos grados de libertad. Comparar la posición real con la deseada para que de esta forma exista una realimentación si así se requiere. Control de motor de CD por tarjeta PIC servo 5. IV. Enviar los datos de las posiciones deseadas mediante los puertos seriales. Diseño y construcción de una tarjeta electrónica para controlar un motor de CD a 24V (Driver para robot paralelo de 2 grados de libertad) 4. Objetivos específicos. Generar los vectores de posición deseados tanto en “x” como en “y”.      El programa debe hacer uso de los puertos seriales debido a que las tarjetas que controlan a los motores utilizan este tipo de interfaz. 4 .2. El programa debe resolver el modelo dinámico del robot. Diseño y construcción de un encoder para servomotor Hoy en día ya se ha comenzado a trabajar con los puntos 1 y 3 del proyecto. con lo que se pretende que un futuro no mayor a dos años se tenga el trabajo terminado. Diseño de la estructura mecánica para el robot paralelo de 2 grados de libertad 3.

debido a que este contendrá instrucciones que lograran que las demás partes que lo integran lleguen a un fin común. por ejemplo que el efector final se desplace de un punto a otro o que el efector cumpla con una trayectoria previamente establecida. En la última etapa de la construcción del programa. Debido a que su lenguaje de programación es más manejable y simple a comparación con otros. llegar al objetivo de manera satisfactoria. Metodología Para poder llegar al objetivo de diseñar el programa para el modelo cinemático de un robot paralelo de dos grados de libertad se comienza por realizar un estudio cinemático y dinámico del manipulador. utilizando el método de Euler-Lagrange. como por ejemplo la estructura mecánica. Conociendo todo esto se procede a realizar el programa con la ayuda de Matlab. Justificación Es muy importante tener un programa con el cual posicionar un robot. Sin el programa las demás partes del robot solo serian funcionales para objetivos dispersos o inclusive no cumplirían alguna función en específico. es necesario realizar las pruebas convenientes para corregir aquellos errores que pudieran surgir. 5 . y de esta forma. que es un programa matemático que ofrece un entorno de desarrollo integrado con un lenguaje de programación propio. En la Figura 1 se muestra el mapa conceptual de la metodología utilizada. VI. Investigar la forma en que serán introducidos los datos al programa en base a las variables a controlar.V.

Cronograma Tabla 1.Figura 1. Cronograma de actividades 6 . Mapa conceptual de la metodología VII.

θ1(t) y θ2(t) son los ángulos formados entre los pistones y la barra fija de longitud D. en la figura 2 se muestra la estructura geométrica de un manipulador paralelo de dos grados de libertad. Desarrollo Manipulador paralelo de 2 GDL La estructura esta constituida por dos pistones eléctricos de masas Mv y dos longitudes totales de extremo a extremo l1(t) y l2(t). para esto primero se procede a encontrar las ecuaciones de energía cinética y potencial asociados con el manipulador paralelo de dos grados de libertad. Los otros dos extremos de los pistones se encuentran fijos a dos ejes paralelos cuya distancia de separación fija es D (longitud de la base de la plataforma). el eje x yace sobre la base de la plataforma. 7 . Para obtener el modelo dinámico del manipulador descrito en la figura 2. y el eje y apunta perpendicularmente a la base de la plataforma. A partir de estas consideraciones se hace uso de las ecuaciones de EulerLagrange [1] con el objeto de encontrar propiedades relacionadas con la función de energía del sistema. se definen las coordenadas cartesianas asignando dos variables independientes x(t) y y(t).VIII. Para analizar el modelo se va a definir el siguiente sistema de coordenadas. unidos en un extremo por una carga móvil de masa Mp que es afectada por la fuerza gravitacional g. ver figura 2.El pistón izquierdo puede moverse alrededor de un eje fijo P1 y el pistón derecho puede moverse alrededor del eje fijo P2.

Manipulador paralelo de 2 grados de libertad  Se considera que: 𝑥 = 𝑥 𝑡 𝑥 = 𝑥(𝑡) 𝑦 = 𝑦(𝑡) 𝑦 = 𝑦(𝑡) (1) 𝑆𝑖 = 𝑆𝑖 𝑡 = sin 𝜃𝑖 (𝑡) 𝐶𝑖 = 𝐶𝑖 𝑡 = 𝑐𝑜𝑠𝜃𝑖 (𝑡) donde i =1.Mpg Figura 2. 2 (2)  Sabemos que por trigonometría: 𝐶1 = 𝑙 𝑥 1 (𝑡) 𝑆1 = 𝑙 𝑦 1 (𝑡) 𝐶2 = 𝑙 𝐷−𝑥 2 (𝑡) 𝑆2 = 𝑙 𝑦 2 (𝑡) (3) donde: 𝑙1 𝑡 = 𝑥 2 + 𝑦 2 𝑙2 𝑡 = (𝐷 − 𝑥)2 + 𝑦 2 (4) 8 .

2). Sea 𝑟𝑖 (𝑡) el vector que va del origen de coordenadas al centro de gravedad de cada i-actuador y sea 𝑟𝐿 (𝑡) el vector que va del origen de coordenadas a la carga móvil de masa Mp. Expresando cada vector 𝑟𝑖 (𝑡) (i = 1. 2 1 𝑟 𝑟 𝑆 2 1 𝑟 𝑟2 𝑡 = 𝐷 − 2 𝐶2 . se expresan las velocidades [2] angulares de cada actuador 𝜃𝑖 𝑡 (i = 1. Para esto. 𝑟𝐿 𝑡 = 𝑥. 𝐶1 𝑆2 . 𝐶2 (6) 𝑟2 𝑡 = 𝑟𝜃2 (𝑡) 2 𝑟𝐿 𝑡 = 𝑥. se calcula la posición y la velocidad de cada actuador de masa Mv. se obtiene: 𝑟𝜃1 (𝑡) 2 𝑟1 𝑡 = −𝑆1 . 𝑦 𝑆 2 2 (5) Después. se toma en cuenta la geometría de la Figura 1. en coordenadas rectangulares. 𝑦 Ahora. así como de la carga [1] mecánica de masa Mp.Modelo dinámico Primeramente. se obtiene: 𝑟1 𝑡 = 𝑟 𝐶 . tenemos: 𝑥 = 𝑙1 (𝑡)𝐶1 𝑦 = 𝑙1 𝑡 𝑆1 𝜃1 𝑡 = 𝐶1 𝑦 −𝑆1 𝑥 𝑙 1 (𝑡) 𝐷 − 𝑥 = 𝑙2 𝑡 𝐶2 𝑦 = 𝑙2 (𝑡)𝑆2 𝜃2 𝑡 = 𝐶2 𝑦 −𝑆2 𝑥 𝑙 2 (𝑡) (7) (8) (9) 9 .2) y 𝑟𝐿 (𝑡) en coordenadas rectangulares. se derivan las expresiones anteriores para obtener las velocidades de cada elemento.

se tiene que: 𝜃1 𝑡 = 𝑥𝑦 −𝑦𝑥 𝑥 2 +𝑦 2 𝜃2 𝑡 = (𝐷−𝑥)𝑦 −𝑦𝑥 𝐷−𝑥 2 +𝑦 2 (10) Ecuaciones de Energía Ya obtenidas las expresiones para la posición y la velocidad.Sustituyendo (3) y (4) en (9). y) tenemos: 𝐸𝑐 𝑡 = 𝐽 2 𝑥𝑦 −𝑦𝑥 2 𝑥 2 +𝑦 2 (12) + 𝐽 2 (𝐷−𝑥)𝑦 −𝑦𝑥 2 (𝐷−𝑥)2 +𝑦 2 + 𝑀𝑃 2 𝑥 2 + 𝑦 2 (13) Después. la energía [2] potencial de los actuadores y de la MP se definen como: 𝑃1 𝑡 = 1 𝑀 𝑔𝑟𝑆1 2 𝑉 1 𝑃2 𝑡 = 2 𝑀𝑉 𝑔𝑟𝑆2 𝑃𝑀𝑃 𝑡 = 𝑀𝑃 𝑔𝑦 La energía potencial total del sistema es: 𝐸𝑃 𝑡 = 𝑃1 𝑡 + 𝑃2 𝑡 + 𝑃𝑀𝑃 (𝑡) (14) (15) 10 . La energía cinética total [2] del sistema es: 𝐸𝑐 𝑡 = 𝐾1 𝑡 + 𝐾2 𝑡 + 𝐾𝑀𝑃 𝑡 expresándolo en términos de las coordenadas rectangulares(x. La energía cinética para cada actuador y la carga Mp se define como: 𝐾1 𝑡 = 1 𝐽𝜃 (𝑡) 2 1 1 𝐾2 𝑡 = 2 𝐽𝜃2 (𝑡) 𝐾𝑀𝑃 𝑡 = 2 𝑀𝑝 (𝑥 2 + 𝑦 2 ) donde. se procede a obtener las ecuaciones de energía [3]. 𝐽 = 𝑀𝑣 𝑟 2 2 1 (11) es el momento de inercia de los actuadores.

F= (fx. de la Figura 3 se obtiene: 𝑓 = 𝑓1 𝐶1 − 𝑓2 𝐶2 𝑥 𝑓 = 𝑓1 𝑆1 + 𝑓2 𝑠2 𝑦 (18) Figura 3. en donde se aplican dos fuerzas que actúan en la dirección de las coordenadas generalizadas q=(x. Diagrama de fuerzas Sabiendo que el [1] Lagrangiano es: 𝐿 = 𝐸𝐶 𝑡 − 𝐸𝑃 (𝑡) (19) 11 . y). y) se tiene: 𝐸𝑃 𝑡 = 𝑀𝑉 𝑔𝑟𝑦 2 𝑥 2 +𝑦 2 + 𝑀𝑉 𝑔𝑟𝑦 2 (𝐷−𝑥)2 +𝑦 2 + 𝑀𝑃 𝑔𝑦 (16) Ecuación de Lagrange Se considera un sistema no conservativo. fy) es el vector de fuerzas que actúa sobre el punto OP. La ecuación de [1] Euler-Lagrange se escribe: 𝑑 𝜕𝐿 𝑑𝑡 𝜕𝑞 𝑖 − 𝜕𝑞 − 𝐹𝑖 = 0 𝑖 𝜕𝐿 (17) donde.en términos de las coordenadas (x.

para la fuerza fx: 𝑓 = 𝑀𝑃 + 𝐽 𝑥 +𝐽 2 𝑆2 2 𝑙 2 2 𝑆1 2 𝑙 1 𝑥𝑥 +𝑦𝑦 𝑥 2 +𝑦 2 (27) (28) −(𝐷−𝑥)𝑥 +𝑦𝑦 (𝐷−𝑥)2 +𝑦 2 + 2 𝑆2 2 𝑙 2 𝑥 + 𝐽 𝑆2 𝐶2 2 𝑙 2 𝐶2 𝑆2 2 𝑙 2 − 𝐶1 𝑆1 2 𝑙 1 𝑦 (29) 𝛿2 + 2 2 𝑆1 2 𝑙 1 𝛿1 𝑥 + 𝐽 −𝑥𝑦 𝑥 2 +𝑦 2 3/2 𝛿2 − 𝐷−𝑥 𝑦 𝐶1 𝑆1 2 𝑙 1 𝛿1 𝑦 + 𝑀𝑉 𝑔𝑟 + 𝑥 2 +𝑦 2 3/2 12 .sustituyendo (13) y (16) en (19) se obtiene: 𝐿 = 2 𝐽 𝑥𝑦 −𝑦𝑥 2 𝑥 2 +𝑦 2 +2 𝐽 (𝐷−𝑥)𝑦 −𝑦𝑥 2 (𝐷−𝑥)2 +𝑦 2 + 𝑀𝑃 2 𝑥 2 + 𝑦 2 − 𝑀𝑉 𝑔𝑟𝑦 2 𝑥 2 +𝑦 2 − 𝑀𝑉 𝑔𝑟𝑦 2 (𝐷−𝑥)2 +𝑦 2 − 𝑀𝑃 𝑔𝑦 (20) considerando que q=(x. y). la ecuación de Lagrange (17) se puede escribir para cada una de las coordenadas x y y de la siguiente forma: 𝑑 𝜕𝐿 𝑑𝑡 𝜕𝑥 𝑑 𝜕𝐿 − 𝜕𝑥 = 𝑓𝑥 − 𝜕𝑦 = 𝑓 𝑦 𝜕𝐿 𝜕𝐿 (21) (22) 𝑑𝑡 𝜕𝑦 Derivando la expresión de L de la ecuación (12) según lo solicitado en las dos ecuaciones anteriores y para simplificar las expresiones resultantes se hacen las siguientes igualdades: 𝛼1 = 𝛼2 = 𝑥 𝑦 2 −𝑦 𝑦𝑥 𝑥 2 +𝑦 2 2 + − 2 𝑥𝑦 𝑦 −𝑦 2 𝑥 𝑥 2 +𝑦 2 2 𝛿1 𝛿2 (23) (24) (25) 𝛿2 (26) 𝑥 𝑦 2 −𝑦 𝑦 𝐷−𝑥 𝐷−𝑥 2 +𝑦 2 2 2 (𝐷−𝑥)𝑦 𝑦 −𝑦 2 𝑥 𝐷−𝑥 2 +𝑦 2 2 𝛽1 = 𝛽2 = con 𝑦 𝑥 2 −𝑥 𝑦𝑥 𝑥 2 +𝑦 2 2 − − 2 𝑥 2 𝑦 −𝑦𝑥 𝑥 𝑥 2 +𝑦 2 2 𝛿1 𝑦 (𝐷−𝑥)2 +𝑥 (𝐷−𝑥)𝑦 𝑥 2 +𝑦 2 2 2 (𝐷−𝑥)2 𝑦 +𝑦(𝐷−𝑥)𝑥 𝑥 2 +𝑦 2 2 𝛿1 = 𝛿2 = se obtiene.

a saber: 𝑀 𝑞 𝑞 + Φ 𝑞. para nuestro es igual a: 𝑀𝑃 + 𝐽 𝐽 𝑆2 𝐶2 2 𝑙 2 2 𝑆1 2 𝑙 1 𝑀 𝑞 = + 2 𝑙 1 2 𝑆2 2 𝑙 2 𝐽 𝐶2 𝑆2 2 𝑙 2 − 𝐶1 𝑆1 2 𝑙 1 − 𝐶1 𝑆1 𝑀𝑃 + 𝐽 2 𝐶1 2 𝑙 1 + 2 𝐶2 2 𝑙 2 (33) 13 . M(q) es la matriz de inercia simétrica. 𝑞 𝑞 + 𝐺 𝑞 = 𝑓 𝑞 (32) en donde.y para la fuerza fy: 𝑓 = 𝐽 𝑦 +𝐽 2 𝑙 2 𝑆2 𝐶2 2 𝑙 2 − 𝐶1 𝑆1 2 𝑙 1 𝑥 + 𝑀𝑃 + 𝐽 2 𝐶1 2 𝑙 1 2 𝐶1 2 𝑙 1 + 2 𝐶2 2 𝑙 2 2 𝐶2 2 𝑙 2 𝑦 𝑆2 𝐶2 𝛿2 − 𝐶1 𝑆1 2 𝑙 1 𝛿1 𝑥 + 𝐽 𝑥 2 𝛿1 + 𝛿2 𝑦 (30) + 𝑀𝑃 𝑔 + 𝑀𝑉 𝑔𝑟 2 𝑥 2 +𝑦 2 + 3/2 𝐷−𝑥 2 (𝐷−𝑥)2 +𝑦 2 3/2 Escribiendo los resultados anteriores en forma matricial. se obtiene: 1 2 𝑀𝑃 + 𝐽 𝑙 2 + 𝑙 2 𝑓 𝑥 1 2 = 𝑓 𝑆 𝐶 𝐶 𝑆 𝑦 𝐽 22 2 − 12 1 𝑙 𝑙 2 1 2 𝑆2 2 𝑆1 2 𝑙 1 𝑆 2 𝑆 2 𝐽 𝐶2 𝑆2 2 𝑙 2 − 𝐶1 𝑆1 2 𝑙 1 𝑀𝑃 + 𝐽 𝑆2 𝐶2 2 𝑙 2 2 𝐶1 2 𝑙 1 2 𝐶1 2 𝑙 1 + 𝛿1 2 𝐶2 2 𝑙 2 𝑥 𝑦 +𝐽 2 𝑙 2 𝛿2 + 𝛿2 − 𝑀𝑉 𝑔𝑟 2 𝛿1 𝛿1 −𝑥𝑦 𝛿2 − 𝛿1 + 𝐶1 𝑆1 2 𝑙 1 2 𝐶2 2 𝑙 2 𝑆2 𝐶2 2 𝑙 2 𝐶1 𝑆1 2 𝑙 1 𝛿2 𝑥 𝑦 + 𝑥 2 +𝑦 2 3/2 𝑥 2 𝑥 2 +𝑦 2 2 + 𝐷−𝑥 𝑦 𝑥 2 +𝑦 2 3/2 𝐷−𝑥 2 (𝐷−𝑥)2 +𝑦 2 3/2 𝑀𝑃 𝑔 + 𝑀𝑉 𝑔𝑟 3/2 + (31) La ecuación matricial (31) tiene la forma generalizada para el modelo dinámico de un robot.

para finalmente cumplirla (figura 4). 14 .5) se genera una grafica que muestra la trayectoria a seguir y el desplazamiento del robot al tratar de seguirla. igual a: 𝑀𝑉 𝑔𝑟 −𝑥𝑦 𝑥 2 +𝑦 2 3/2 𝑥 2 𝑥 2 +𝑦 2 2 2 𝐺 𝑞 𝑡 = + 𝐷−𝑥 𝑦 𝑥 2 +𝑦 2 3/2 𝐷−𝑥 2 (𝐷−𝑥)2 +𝑦 2 3/2 𝑀𝑃 𝑔 + 𝑀𝑉 𝑔𝑟 + 3/2 (35) La ecuación (31) representa a un sistema compacto de ecuaciones de movimiento que describe en forma detallada el comportamiento del manipulador paralelo de dos grados de libertad. 𝑞 = 𝐽 2 𝑙 2 𝛿2 + 𝛿2 − 2 𝑆1 2 𝑙 1 𝛿1 𝛿1 𝑆2 𝐶2 2 𝑙 2 2 𝐶1 2 𝑙 1 𝛿2 − 𝛿1 + 𝐶1 𝑆1 2 𝑙 1 2 𝐶2 2 𝑙 2 𝛿1 (34) 𝑆2 𝐶2 2 𝑙 2 𝐶1 𝑆1 2 𝑙 1 𝛿2 y G(q) es el vector de gravedad. y es igual a: 2 𝑆2 Φ 𝑞. 𝑞 es la matriz de Coriolis.Φ 𝑞.4 y A. Otro punto que se debe de incluir en el desarrollo del programa. es el hacer uso de los programas previamente realizados.1). se procedió a investigar el funcionamiento de los puertos seriales (ver anexo A. Desarrollo del programa Habiendo establecido previamente el programa con el que se va a trabajar (MATLAB) y el tipo de interfaz a manejar. programa del modelo dinámico del robot y el programa para solucionar el modelo dinámico (ver anexos A. Al correr el programa para solucionar el modelo dinámico (anexo A.5).

2). Seguimiento de la trayectoria Una vez conocido el funcionamiento de estos programas se procede a realizar las modificaciones requeridas para la solución de este problema. pero debido a que en este caso se requiere manipular tanto las coordenadas en “x” como en “y” es necesario hacer uso de dos puertos seriales (nombrados SerPIC y SerPIC1) y tomando en cuenta que en la comunicación serial solo se puede enviar un dato a la vez. Pero antes de entrar al ciclo se mandan a abrir los puertos por los cuales se enviaran los datos con el comando “fopen”. Ya creados y configurados los puertos se crea un ciclo con el comando “while”. 15 . cabe mencionar que los datos se pueden enviar en diferentes formatos. anexo A.Figura 4. Se comienza por crear y configurar el puerto serial a utilizar (Communications properties. como se muestra en la tabla 2. el cual tiene la función de enviar cada determinado tiempo la posición que debe de adoptar el robot para así seguir la trayectoria definida mediante la función “fprintf”.

para esto se opta por generar un banco de datos con un cierto margen de error. a remover y a limpiar los puertos que se han utilizado para enviar los datos. Tipos de formatos de los datos salida Una vez que se finaliza el ciclo en el programa se mandan a deshabilitar. Para realizar las pruebas se hace uso del programa Virtual Serial Port Driver.Tabla 2. el cual tiene la función de crear pares de puertos seriales virtuales. para que de esta manera al momento de enviar la posición deseada que debe de adoptar el robot se realice una comparación con una segunda posición que en este caso seria la posición real y de esta forma realizar una realimentación para tratar de minimizar el error. Debido a que es necesario realizar pruebas como se estableció en el cronograma de actividades. se realizan unas modificaciones al programa que se ha desarrollado. y de esta forma trabajar con ellos sin necesidad de que la computadora con la que se este trabajando cuente con ellos de forma física. 16 . ver figura 5.

en el cual son colocados en la pantalla de trabajo dos puertos COM y dos terminales virtuales. es el programa ISIS de Proteus. los cuales servirán para visualizar el envió de datos. Figura 6. ver figura 6. Diagrama del circuito para visualización de datos 17 . con los cuales uno de ellos puede enviar los datos y el otro recibirlos. En este caso el programa a utilizar para visualizar el envió de datos que realiza MATLAB.Figura 5. Virtual Serial Port Driver Habiendo creado los puertos virtuales es posible trabajar con distintos programas al mismo tiempo.

ahora es posible realizar la simulación ejecutando primeramente ISIS y consecuentemente MATLAB.Antes de correr los programas es necesario configurar las mismas propiedades de comunicación en los puertos tanto en MATLAB (figura 7) como en ISIS (figura 8) de la misma forma. Figura 7. Configuración de los puertos que reciben (ISIS) Realizadas las previas configuraciones de los puertos. Configuración de los puertos que envían (MATLAB) Figura 8. 18 . recordando que uno es el que envía y el otro el que recibe.

figura 10. y la comparación entre la posición deseada a la posición real que adoptara el robot. Ventana de dialogo Figura 9. ver figura 9. la cual confirmara que la transmisión de los datos ha comenzado junto con una grafica. la comparación entre esta misma y el seguimiento de la trayectoria que realiza el robot. Figura 9.Al ejecutar MATLAB se generara una ventana de dialogo. la cual contendrá la trayectoria deseada. Graficas de trayectorias 19 .

al inicio se visualizará el dato de la posición deseada.Al ejecutar ISIS se desplegaran dos pantallas en donde se visualizaran los datos. figura 11. Posición deseada y compensación 20 . Posición deseada Figura 11. Figura 10. y después de determinado tiempo se visualizará el error. figura 10.

También se piensa que este tipo de proyectos fomentan un mayor interés por la ciencia. que en este caso representaba la posición real con determinado margen de error. para así comprobar la funcionalidad del programa. como son el poder construir robots paralelos de seis grados de libertad.IX. 21 . Resultados y discusión de resultados. Los resultados obtenidos en la realización de este proyecto han cubierto de manera satisfactoria todos los objetivos planteados. Ya que al ejecutar el programa al inicio resuelve el modelo dinámico. pues ayudan a conocer y a descubrir las nuevas tecnologías que actualmente están siendo usadas y desarrolladas en torno a la Mecatrónica. ya que actualmente no se cuenta con la infraestructura para su implementación. Este proyecto servirá como base de proyectos a futuro. Cabe mencionar que los resultados cumplieron con las expectativas. Conclusiones Con este proyecto se contribuirá a la causa de poder construir un robot en la Universidad Politécnica de Puebla en próximos años. X. para así generar los vectores de las posiciones deseadas a partir de una trayectoria a seguir. Pero debido a la problemática de no contar con la estructura mecánica del robot y su parte sensórica se optó por generar un banco de datos.

“Mecánica vectorial para ingenieros: Dinámica”. Wells.. [7] Isidro Zabalza. [8] [9] Carlos A. Jara. Reinoso. McGraw-Hill. [4] Ferdinand P. McGraw-Hill. 8° Congreso Iberoamericano de ingeniería mecánica. McGraw-Hill. J. “Control visual de un robot paralelo: análisis y diseño de la plataforma robotenis”. Ma. “Análisis del espacio de trabajo de un robot paralelo 3RRR”. [10] Rafael Aracil. Raúl Bermejo S. “Desarrollo de un robot paralelo para manufactura ágil”. “Física Volumen I: Mecánica”. Russell Johnston Jr. “Aplicaciones actuales de los robots paralelos”. Beer. Colombia (1972). (2006). Sabater Maquinas con un pasado para una y O. “Control implícito para una cadena cinemática cerrada de dos grados de libertad” [2] Dare A. [11] Mauricio C. Scarano R. [3] Marcelo Alonso y Edward J. Saltarén. E. Russell Johnston Jr. México (1998) [6] Aracil. “Teoría y problemas de Dinámica de Lagrange”. Roque Saltaren.. Finn. R. Méndez. México (1970).XI. 22 . “Robots paralelos: robótica del futuro”. María A. “Mecánica vectorial para ingenieros: Estática”. The Anáhuac Journal. R. Fuentes de referencia [1] Carlos Fernando Aguilar Ibáñez. Revista Iberoamericana de Automática e Informática Industrial. “Estudio del comportamiento de un robot paralelo trepador para labores de supervisión”. R. E. Saltarén. Fondo educativo interamericano. México (1998) [5] Ferdinand P. Beer. Javier Ros.

XII.1 MATLAB Serial port interface 23 . Anexos A.

24 .

25 .

26 .

27 .

2 Serial port object properties 28 .A.

29 .

A.3 Serial port I/O functions 30 .

%derivada de y1=velocidad en y% t2=atan(y1/(L-x1)).81. %derivada de x1=velocidad en x% y2=x(4).02.yd]. qd=[xd. %Constantes de la ley de control k0=10. L=0.x) l2=sqrt((x1-L)^2+y1^2). beta=6. %Vector de gravedad g11=(Mv*g*r/2)*(-x1*y1/l1^3+(L-x1)*y1/l2^3). %Matriz de inercia global m11 m12 m22 M m11=Mp+J*(S1^2/l1^2+S2^2/l2^2). vyd=radio*cos(t). %Matriz de Coriolis d1=(x2*x1+y2*y1)/(x1^2+y1^2). m12=J*(C2*S2/l2^2-C1*S1/l1^2). d2=(-x2*(L-x1)+y2*y1)/((L-x1)^2+y1^2). Mv=1.A. %coordenada x% y1=x(2).4 Programa del modelo dinámico del robot %ROBOT PARALELO DE DOS GRADOS DE LIBERTAD %Programa del modelo dinámico del robot %Seguimiento de trayectoria %Ley de control P-D no lineal axd=-radio*cos(t). S2=y1/l2. J=0.1. O12=d2*C2*S2/l2^2-d1*C1*S1/l1^2. r=0.2. function dx=trayectoria(t. C1=x1/l1. radio=0. %coordenada y% x2=x(3). %variables de estado x1=x(1).m12 m22]. 31 . M=[m11 m12.14. alfa=0.1.O12 O22]. xd=h+radio*cos(t). g=9. k=0. S1=y1/l1. C2=(L-x1)/l2. O22=d2*C2^2/l2^2+d1*C1^2/l1^2.25. m22=Mp+J*(C1^2/l1^2+C2^2/l2^2). vxd=-radio*sin(t). vqd=[vxd. yd=k+radio*sin(t). %-----------------------------------------------%Geometria del robot l1=sqrt(x1^2+y1^2). ayd=-radio*sin(t). %------------------------------------------------%SEGUIMIENTO DE TRAYECTORIA %Trayectoria deseada: circunferencia con centro %en el punto (h. O11=d2*S2^2/l2^2+d1*S1^2/l1^2.vyd]. k1=10. O=[O11 O12.01225.k) y radio (radio) h=0. t1=atan(y1/x1).18. %Parametros del robot Mp=5.

fy=-(u*(k0*ey+k1*evy)*delta^2)/div+gy.ey]. evx=x2-vxd. %------------------------------------------------%Matriz de control con seguimiento de trayectoria %Definicion del error ex=x1-xd. Kf1=0. Ac=inv(M)*fuerza. deltae=(u*(k0*norv4+k1*norv5)+Kfi*(norv5)^2+Kf1*no rv5)/mup. Kfo=0. G=[g11. e=[ex. u=2*Mp+4*J/r^2.g22=Mp*g+(Mv*g*r/2)*(x1^2/l1^3+(L-x1)^2/l2^3).y2]. gx=(Mv*g*r/2)*(-xd*yd/l1d^3+(L-xd)*yd/l2d^3). norv4=sqrt(ex^2+ey^2). norv1=sqrt(xd^2+yd^2). l2d=sqrt((L-xd)^2+yd^2). Kfi=2*(sqrt(2))*J/r^2. deltad=(Kfi*(norv2)^2+Kf1*norv2+u*norv6)/mup.evy]. %aceleracion en x y %Propiedades mecanicas global mup u KG Kfi fuerza=F-G-O*[x2.fy]. div=delta*norv3+beta*exp(-alfa*t). ev=[evx.ay]. mup=Mp. Kc=(Kfo+KG)/u. norv3=sqrt((k0*ex+k1*evx)^2+(k0*ey+k1*evy)^2). l1d=sqrt(xd^2+yd^2). ay=Ac(2). 32 . ax=Ac(1). gy=Mp*g+(Mv*g*r/2)*(xd^2/l1d^3+(L-xd)^2/l2d^3). evy=y2-vyd. KG=(Mp+2*Mv)*g. delta=Kc+deltad+deltae. fx=-(u*(k0*ex+k1*evx)*delta^2)/div+gx.ax. ey=y1-yd. norv6=sqrt(axd^2+ayd^2). F=[fx. norv2=sqrt(vxd^2+vyd^2). norv5=sqrt(evx^2+evy^2).y2. %Archivo de derivadas %Terminos no lineales dx=[x2.g22].

1.X]=ode23(@trayectoria. yd=X(:.A.'FontSize'.1.1).tyd). plot(txd.X]=ode23(@trayectoria.001].[0.02. radio=0.[0. txd=h+radio*cos(T).0. txd=h+radio*cos(T).0]. %Posiciones reales subplot(2.'Trayectoria deseada') axis('equal') [T.'r') title('TRAYECTORIA DESEADA'.2).k=0. axis('equal') yr=[].0.1).2.X(:.txd. %Posiciones deseadas xd=X(:.1). grid grid 33 .1. global h k radio. tyd=k+radio*sin(T).0.0. legend('Seguimiento de la trayectoria'.[0 15].1. h=0.6 Programa para el posicionamiento del robot clc %ROBOT PARALELO DE DOS GRADOS DE LIBERTAD %Programa para el posicionamiento del robot %posiciones iniciales (0.02. 0.18. xr=[].0.1).k=0.[0 15].2. axis('equal') grid A. h=0.18) subplot(2.txd.2).1).plot(X(:.X(:.18. global h k radio. tyd=k+radio*sin(T). radio=0.2). 0.tyd). plot(X(:.[1 3]).5 Programa para solucionar el modelo dinámico %ROBOT PARALELO DE DOS GRADOS DE LIBERTAD %Solución del modelo dinámico %El archivo con el modelo dinámico se llama "trayectoria" [T.0].18.18.1.2).12) xr=[xr xd-0.tyd.

'%d'. set(SerPIC1.'%d'.'k') legend('Posición deseada'.1). set(SerPIC1. 34 .1). %Cierre de los puertos seriales %Apertura de los puertos seriales fopen(SerPIC). %Envio de datos n=1..'DataBits'.'BaudRate'. set(SerPIC1. set(SerPIC.2400). fopen(SerPIC1).plot(xd.001) ex=XD-xr(n.001) %Configuracion de los puertos SerPIC=serial('COM2'). ey=YD-yr(n. fprintf(SerPIC1.1). SerPIC1=serial('COM5').YD). fclose(SerPIC1).8). YD=yd(n.'%d'. delete(SerPIC).ex). set(SerPIC.'none').'Parity'.'FlowControl'.yr=[yr yd-0.'BaudRate'.. pause(0. msgbox('Enviando. m=length(xd).'none').yr. fclose(SerPIC).'Posición real') axis('equal') grid fprintf(SerPIC.'StopBits'.'none').001]. set(SerPIC. set(SerPIC.'Parity'.'m'.XD).001) end fprintf(SerPIC1. %pause(0.ey). %pause(0.') while n<=m %Grafica de la posicion real con la deseada subplot(2. set(SerPIC1. disp('BEGIN') clear SerPIC clear SerPIC1 disp('STOP') n=n+1.2.'%d'. set(SerPIC.'none').1).4).1).1). XD=xd(n.8).xr.'FlowControl'. delete(SerPIC1).'DataBits'.'StopBits'. fprintf(SerPIC.yd. set(SerPIC1.2400).

Sign up to vote on this title
UsefulNot useful