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

Desgraciadamente el mecanismo diseñado por este ilustre visionario no fue nunca construido. 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. este programa debe contener el modelo dinámico. 1931).I.789.680). El programa. II. La finalidad de este proyecto es la de realizar un programa de computadora para poder posicionar el robot paralelo de dos grados de libertad. las cuales controlaran los motores de la estructura mecánica. Introducción Este proyecto forma parte de un trabajo que tendrá como objetivo construir un robot paralelo de dos grados de libertad. antes de que se empezara a hablar de robots. 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. que posteriormente serán enviados elemento por elemento mediante los puertos seriales a las tarjetas electrónicas. (Gwinnett. la ley de control y la trayectoria de seguimiento del robot. 1 . Antecedentes Los primeros trabajos teóricos relacionados con las estructuras mecánicas paralelas aparecieron ya hace siglos. en resumen. Ya en la época actual. cuando los primeros geómetras franceses e ingleses realizaron sus estudios sobre los poliedros y sus aplicaciones. al inicializarlo generara los vectores de posición.

el mecanismo de Stewart es diferente al presentado por Gough. intentaba simular el proceso de aterrizaje de un avión. 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. Willard L. 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. fue el Dr. En la actualidad existen multitud de plataformas basadas en este diseño en numerosas empresas. 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 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.571). 2 . y se conocen bajo el nombre de MAST (Multi-Axis Simulation Table). En 1940.286. Pollard presentaba un ingenioso robot de 5 grados de libertad destinado a operaciones de pintura con spray. Paralelamente. 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. Sin embargo. 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.V. el ingeniero Klaus Cappel realizaba en el Franklin Institute Research Laboratory numerosas investigaciones con plataformas paralelas de 6 grados de libertad. tan solo diecinueve años después de que Karel Kapek acuñara el término “robot”. De esta forma. (Stewart. Cappel (Cappel. 1967) patentaba un simulador de movimiento basado en un hexápodo. Ya en 1965. Stewart. En 1967 Mr. Mr. El Dr. y construyo varias de sus invenciones. Contrariamente a la creencia general. Por estricto orden temporal. Los eslabones estaban unidos mediante juntas universales. Eric Gough quien en 1947 invento la plataforma paralela más popular de todas. Los tres actuadores de la base comandaban la posición de la herramienta.

por lo que se opto por solucionar esta problemática mediante proyectos de investigación tanto para profesores y alumnos de la carrera. McCallion y Pham (McCallion and Pham. Además de la excelente relación carga admisible/peso propio. Hunt (Hunt. es decir. 1978) sugirió que se usaran los mecanismos actuados de forma paralela de los simuladores de vuelo. En 1979. los robots paralelos presentan otras características interesantes. 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]. Con esto se pretende ir subsanando esta deficiencia ya con bases previamente fundamentadas y solidas. 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. para esto el trabajo se dividió en varias etapas según el origen tecnológico del mismo. 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. La primera acción que se ha tomado es la de construir un robot paralelo de dos grados de libertad. 1979) fueron los primeros que propusieron usar la plataforma de Stewart como un manipulador paralelo para una célula de ensambla je robotizada. fundamentalmente porque la posición del efector final es mucho menos sensible a los errores que los sensores articulares de los robots en serie. Programa para el posicionamiento de un robot paralelo de 2 grados de libertad 3 .Mas tarde en 1978. III. el proyecto se secciona de la siguiente manera: 1.

     El programa debe hacer uso de los puertos seriales debido a que las tarjetas que controlan a los motores utilizan este tipo de interfaz. Objetivos específicos. con lo que se pretende que un futuro no mayor a dos años se tenga el trabajo terminado. 4 . Comparar la posición real con la deseada para que de esta forma exista una realimentación si así se requiere. IV. Enviar los datos de las posiciones deseadas mediante los puertos seriales. 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. Objetivos: general y específicos Objetivo general: Desarrollar un programa para posicionar un robot paralelo de dos grados de libertad. Generar los vectores de posición deseados tanto en “x” como en “y”. Control de motor de CD por tarjeta PIC servo 5. Diseño de la estructura mecánica para el robot paralelo de 2 grados de libertad 3.2. El programa debe resolver el modelo dinámico del robot. 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.

como por ejemplo la estructura mecánica. debido a que este contendrá instrucciones que lograran que las demás partes que lo integran lleguen a un fin común. y de esta forma. 5 . llegar al objetivo de manera satisfactoria. En la Figura 1 se muestra el mapa conceptual de la metodología utilizada.V. 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. Justificación Es muy importante tener un programa con el cual posicionar un robot. es necesario realizar las pruebas convenientes para corregir aquellos errores que pudieran surgir. 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. que es un programa matemático que ofrece un entorno de desarrollo integrado con un lenguaje de programación propio. 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. utilizando el método de Euler-Lagrange. Investigar la forma en que serán introducidos los datos al programa en base a las variables a controlar. Conociendo todo esto se procede a realizar el programa con la ayuda de Matlab. VI.

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

en la figura 2 se muestra la estructura geométrica de un manipulador paralelo de dos grados de libertad. θ1(t) y θ2(t) son los ángulos formados entre los pistones y la barra fija de longitud D.VIII. 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). se definen las coordenadas cartesianas asignando dos variables independientes x(t) y y(t).El pistón izquierdo puede moverse alrededor de un eje fijo P1 y el pistón derecho puede moverse alrededor del eje fijo P2. Para analizar el modelo se va a definir el siguiente sistema de coordenadas. y el eje y apunta perpendicularmente a la base de la plataforma. Para obtener el modelo dinámico del manipulador descrito en la figura 2. 7 . 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. ver figura 2. 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. el eje x yace sobre la base de la plataforma. 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). unidos en un extremo por una carga móvil de masa Mp que es afectada por la fuerza gravitacional g.

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 .Mpg Figura 2. Manipulador paralelo de 2 grados de libertad  Se considera que: 𝑥 = 𝑥 𝑡 𝑥 = 𝑥(𝑡) 𝑦 = 𝑦(𝑡) 𝑦 = 𝑦(𝑡) (1) 𝑆𝑖 = 𝑆𝑖 𝑡 = sin 𝜃𝑖 (𝑡) 𝐶𝑖 = 𝐶𝑖 𝑡 = 𝑐𝑜𝑠𝜃𝑖 (𝑡) donde i =1.

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

se procede a obtener las ecuaciones de energía [3]. 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 . 𝐽 = 𝑀𝑣 𝑟 2 2 1 (11) es el momento de inercia de los actuadores. La energía cinética total [2] del sistema es: 𝐸𝑐 𝑡 = 𝐾1 𝑡 + 𝐾2 𝑡 + 𝐾𝑀𝑃 𝑡 expresándolo en términos de las coordenadas rectangulares(x. 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. 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.Sustituyendo (3) y (4) en (9). y) tenemos: 𝐸𝑐 𝑡 = 𝐽 2 𝑥𝑦 −𝑦𝑥 2 𝑥 2 +𝑦 2 (12) + 𝐽 2 (𝐷−𝑥)𝑦 −𝑦𝑥 2 (𝐷−𝑥)2 +𝑦 2 + 𝑀𝑃 2 𝑥 2 + 𝑦 2 (13) Después.

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.en términos de las coordenadas (x. 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. F= (fx. La ecuación de [1] Euler-Lagrange se escribe: 𝑑 𝜕𝐿 𝑑𝑡 𝜕𝑞 𝑖 − 𝜕𝑞 − 𝐹𝑖 = 0 𝑖 𝜕𝐿 (17) donde. y). Diagrama de fuerzas Sabiendo que el [1] Lagrangiano es: 𝐿 = 𝐸𝐶 𝑡 − 𝐸𝑃 (𝑡) (19) 11 .

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. 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).

𝑞 𝑞 + 𝐺 𝑞 = 𝑓 𝑞 (32) en donde. 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 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 .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. a saber: 𝑀 𝑞 𝑞 + Φ 𝑞. M(q) es la matriz de inercia simétrica.

Otro punto que se debe de incluir en el desarrollo del programa. y es igual a: 2 𝑆2 Φ 𝑞.4 y A. 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. Al correr el programa para solucionar el modelo dinámico (anexo A.1). se procedió a investigar el funcionamiento de los puertos seriales (ver anexo A. programa del modelo dinámico del robot y el programa para solucionar el modelo dinámico (ver anexos A. 𝑞 = 𝐽 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. Desarrollo del programa Habiendo establecido previamente el programa con el que se va a trabajar (MATLAB) y el tipo de interfaz a manejar.Φ 𝑞.5) se genera una grafica que muestra la trayectoria a seguir y el desplazamiento del robot al tratar de seguirla. 𝑞 es la matriz de Coriolis. 14 . es el hacer uso de los programas previamente realizados.5). para finalmente cumplirla (figura 4).

Pero antes de entrar al ciclo se mandan a abrir los puertos por los cuales se enviaran los datos con el comando “fopen”. Se comienza por crear y configurar el puerto serial a utilizar (Communications properties. 15 . 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. Ya creados y configurados los puertos se crea un ciclo con el comando “while”. anexo A.Figura 4. cabe mencionar que los datos se pueden enviar en diferentes formatos. 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”. como se muestra en la tabla 2.2). 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.

para esto se opta por generar un banco de datos con un cierto margen de error.Tabla 2. Tipos de formatos de los datos salida Una vez que se finaliza el ciclo en el programa se mandan a deshabilitar. a remover y a limpiar los puertos que se han utilizado para enviar los datos. 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. el cual tiene la función de crear pares de puertos seriales virtuales. ver figura 5. se realizan unas modificaciones al programa que se ha desarrollado. Para realizar las pruebas se hace uso del programa Virtual Serial Port Driver. 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 . Debido a que es necesario realizar pruebas como se estableció en el cronograma de actividades.

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

Configuración de los puertos que reciben (ISIS) Realizadas las previas configuraciones de los puertos. Figura 7. recordando que uno es el que envía y el otro el que recibe.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. 18 . Configuración de los puertos que envían (MATLAB) Figura 8. ahora es posible realizar la simulación ejecutando primeramente ISIS y consecuentemente MATLAB.

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

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

Cabe mencionar que los resultados cumplieron con las expectativas. para así generar los vectores de las posiciones deseadas a partir de una trayectoria a seguir. 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. 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. También se piensa que este tipo de proyectos fomentan un mayor interés por la ciencia. Ya que al ejecutar el programa al inicio resuelve el modelo dinámico. 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 actualmente no se cuenta con la infraestructura para su implementación.IX. como son el poder construir robots paralelos de seis grados de libertad. 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. X. para así comprobar la funcionalidad del programa. que en este caso representaba la posición real con determinado margen de error. Este proyecto servirá como base de proyectos a futuro.

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

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

24 .

25 .

26 .

27 .

A.2 Serial port object properties 28 .

29 .

A.3 Serial port I/O functions 30 .

beta=6. ayd=-radio*sin(t). yd=k+radio*sin(t).01225. k1=10.18. %------------------------------------------------%SEGUIMIENTO DE TRAYECTORIA %Trayectoria deseada: circunferencia con centro %en el punto (h. S2=y1/l2. O11=d2*S2^2/l2^2+d1*S1^2/l1^2. m22=Mp+J*(C1^2/l1^2+C2^2/l2^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).vyd].m12 m22].14. J=0. qd=[xd. alfa=0. radio=0. r=0.x) l2=sqrt((x1-L)^2+y1^2). %Matriz de Coriolis d1=(x2*x1+y2*y1)/(x1^2+y1^2). k=0. %derivada de y1=velocidad en y% t2=atan(y1/(L-x1)). vqd=[vxd.k) y radio (radio) h=0. %coordenada y% x2=x(3). xd=h+radio*cos(t). Mv=1. S1=y1/l1. %coordenada x% y1=x(2). %variables de estado x1=x(1). %Constantes de la ley de control k0=10. O22=d2*C2^2/l2^2+d1*C1^2/l1^2.1.A. function dx=trayectoria(t.81. %Parametros del robot Mp=5. m12=J*(C2*S2/l2^2-C1*S1/l1^2). %Vector de gravedad g11=(Mv*g*r/2)*(-x1*y1/l1^3+(L-x1)*y1/l2^3).1. %derivada de x1=velocidad en x% y2=x(4).02. O12=d2*C2*S2/l2^2-d1*C1*S1/l1^2. %-----------------------------------------------%Geometria del robot l1=sqrt(x1^2+y1^2).yd]. C1=x1/l1. L=0. vyd=radio*cos(t). d2=(-x2*(L-x1)+y2*y1)/((L-x1)^2+y1^2).O12 O22]. g=9. 31 .25. vxd=-radio*sin(t).2. t1=atan(y1/x1). C2=(L-x1)/l2. M=[m11 m12. O=[O11 O12. %Matriz de inercia global m11 m12 m22 M m11=Mp+J*(S1^2/l1^2+S2^2/l2^2).

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

plot(txd.[0 15].1.1).X(:. txd=h+radio*cos(T).[1 3]).18) subplot(2.1.0.18. axis('equal') grid A.2). 0. %Posiciones deseadas xd=X(:.18.txd.1.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.6 Programa para el posicionamiento del robot clc %ROBOT PARALELO DE DOS GRADOS DE LIBERTAD %Programa para el posicionamiento del robot %posiciones iniciales (0.tyd.2.1).1).[0 15].k=0. tyd=k+radio*sin(T). radio=0. global h k radio. xr=[].'FontSize'. h=0.2).0]. tyd=k+radio*sin(T). plot(X(:.k=0.txd. 0.0.2). axis('equal') yr=[]. txd=h+radio*cos(T).12) xr=[xr xd-0.[0.'Trayectoria deseada') axis('equal') [T. yd=X(:.tyd).18. radio=0. legend('Seguimiento de la trayectoria'.[0.tyd).18.1.2.2). grid grid 33 .A. %Posiciones reales subplot(2.1). global h k radio.1.0.'r') title('TRAYECTORIA DESEADA'.0].X]=ode23(@trayectoria.02. h=0.02.1).X]=ode23(@trayectoria.001].0.0.X(:.plot(X(:.

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

Sign up to vote on this title
UsefulNot useful