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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

Figura 4. 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”. Ya creados y configurados los puertos se crea un ciclo con el comando “while”. Pero antes de entrar al ciclo se mandan a abrir los puertos por los cuales se enviaran los datos con el comando “fopen”. cabe mencionar que los datos se pueden enviar en diferentes formatos. 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.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. anexo A. 15 . 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 crear pares de puertos seriales virtuales. para esto se opta por generar un banco de datos con un cierto margen de error. 16 . Para realizar las pruebas se hace uso del programa Virtual Serial Port Driver. Tipos de formatos de los datos salida Una vez que se finaliza el ciclo en el programa se mandan a deshabilitar.Tabla 2. a remover y a limpiar los puertos que se han utilizado para enviar los datos. 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. se realizan unas modificaciones al programa que se ha desarrollado. 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. ver figura 5.

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

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

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

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

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. 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. Cabe mencionar que los resultados cumplieron con las expectativas. X. que en este caso representaba la posición real con determinado margen de error. para así comprobar la funcionalidad del programa.IX. 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. como son el poder construir robots paralelos de seis grados de libertad. 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. ya que actualmente no se cuenta con la infraestructura para su implementación. 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. para así generar los vectores de las posiciones deseadas a partir de una trayectoria a seguir. Este proyecto servirá como base de proyectos a futuro.

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

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

24 .

25 .

26 .

27 .

2 Serial port object properties 28 .A.

29 .

3 Serial port I/O functions 30 .A.

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

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

txd. legend('Seguimiento de la trayectoria'.tyd.1). h=0.k=0.1).1. grid grid 33 .001].2.1. %Posiciones deseadas xd=X(:.0.A.X]=ode23(@trayectoria. axis('equal') yr=[]. txd=h+radio*cos(T).18.'FontSize'.0. radio=0.18.0.X(:.02.[0. radio=0. global h k radio.tyd). yd=X(:. tyd=k+radio*sin(T).'Trayectoria deseada') axis('equal') [T.1.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.02.0]. txd=h+radio*cos(T). 0.2). plot(txd. axis('equal') grid A.tyd).'r') title('TRAYECTORIA DESEADA'. plot(X(:.1). xr=[].txd. tyd=k+radio*sin(T).2. global h k radio.18.X(:.k=0.1).0.[1 3]).0].[0 15].2).plot(X(:.2).[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.18.1.X]=ode23(@trayectoria. h=0.2). %Posiciones reales subplot(2.1).0.12) xr=[xr xd-0.[0 15].18) subplot(2. 0.

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