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

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

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

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

4 . Enviar los datos de las posiciones deseadas mediante los puertos seriales. Generar los vectores de posición deseados tanto en “x” como en “y”. Control de motor de CD por tarjeta PIC servo 5. El programa debe resolver el modelo dinámico del robot. 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. 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.2. Objetivos: general y específicos Objetivo general: Desarrollar un programa para posicionar un robot paralelo de dos grados de libertad. con lo que se pretende que un futuro no mayor a dos años se tenga el trabajo terminado. 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.      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. IV.

V. 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. Investigar la forma en que serán introducidos los datos al programa en base a las variables a controlar. VI. por ejemplo que el efector final se desplace de un punto a otro o que el efector cumpla con una trayectoria previamente establecida. que es un programa matemático que ofrece un entorno de desarrollo integrado con un lenguaje de programación propio. como por ejemplo la estructura mecánica. 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. 5 . 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. llegar al objetivo de manera satisfactoria. En la Figura 1 se muestra el mapa conceptual de la metodología utilizada. En la última etapa de la construcción del programa. y de esta forma. debido a que este contendrá instrucciones que lograran que las demás partes que lo integran lleguen a un fin común. 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. Conociendo todo esto se procede a realizar el programa con la ayuda de Matlab.

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

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

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

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

𝐽 = 𝑀𝑣 𝑟 2 2 1 (11) es el momento de inercia de los actuadores.Sustituyendo (3) y (4) en (9). 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. 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 . 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. y) tenemos: 𝐸𝑐 𝑡 = 𝐽 2 𝑥𝑦 −𝑦𝑥 2 𝑥 2 +𝑦 2 (12) + 𝐽 2 (𝐷−𝑥)𝑦 −𝑦𝑥 2 (𝐷−𝑥)2 +𝑦 2 + 𝑀𝑃 2 𝑥 2 + 𝑦 2 (13) Después.

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

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

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. 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. 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. 𝑞 𝑞 + 𝐺 𝑞 = 𝑓 𝑞 (32) en donde.

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

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

16 . 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. ver figura 5. Tipos de formatos de los datos salida Una vez que se finaliza el ciclo en el programa se mandan a deshabilitar. 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. Debido a que es necesario realizar pruebas como se estableció en el cronograma de actividades. a remover y a limpiar los puertos que se han utilizado para enviar los datos. 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.Tabla 2.

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

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. recordando que uno es el que envía y el otro el que recibe. 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. Configuración de los puertos que envían (MATLAB) Figura 8. 18 . Figura 7.

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

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 11. al inicio se visualizará el dato de la posición deseada. Posición deseada Figura 11. figura 10. Posición deseada y compensación 20 .

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

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

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

24 .

25 .

26 .

27 .

2 Serial port object properties 28 .A.

29 .

A.3 Serial port I/O functions 30 .

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

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

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

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

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer: Get 4 months of Scribd and The New York Times for just $1.87 per week!

Master Your Semester with a Special Offer from Scribd & The New York Times