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

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

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

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

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

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. 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.V. VI. 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. Debido a que su lenguaje de programación es más manejable y simple a comparación con otros. En la Figura 1 se muestra el mapa conceptual de la metodología utilizada. En la última etapa de la construcción del programa. 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. Conociendo todo esto se procede a realizar el programa con la ayuda de Matlab. 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. llegar al objetivo de manera satisfactoria. 5 . Justificación Es muy importante tener un programa con el cual posicionar un robot.

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

θ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. unidos en un extremo por una carga móvil de masa Mp que es afectada por la fuerza gravitacional g. 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). 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 pistón izquierdo puede moverse alrededor de un eje fijo P1 y el pistón derecho puede moverse alrededor del eje fijo P2. se definen las coordenadas cartesianas asignando dos variables independientes x(t) y y(t). el eje x yace sobre la base de la plataforma. 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. 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. ver figura 2. Para analizar el modelo se va a definir el siguiente sistema de coordenadas. 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 .VIII.

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

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

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

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

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

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

Para realizar las pruebas se hace uso del programa Virtual Serial Port Driver. ver figura 5. 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. 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. Debido a que es necesario realizar pruebas como se estableció en el cronograma de actividades.Tabla 2. 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. se realizan unas modificaciones al programa que se ha desarrollado. 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. 16 .

con los cuales uno de ellos puede enviar los datos y el otro recibirlos. ver figura 6. 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. 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 . Figura 6. es el programa ISIS de Proteus. los cuales servirán para visualizar el envió de datos.Figura 5.

Figura 7. 18 .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. Configuración de los puertos que envían (MATLAB) Figura 8. 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.

y la comparación entre la posición deseada a la posición real que adoptara el robot. la cual contendrá la trayectoria deseada. Figura 9. Graficas de trayectorias 19 . 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 10. Ventana de dialogo Figura 9. la cual confirmara que la transmisión de los datos ha comenzado junto con una grafica. ver figura 9.

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

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

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

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

24 .

25 .

26 .

27 .

A.2 Serial port object properties 28 .

29 .

3 Serial port I/O functions 30 .A.

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

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

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

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

Sign up to vote on this title
UsefulNot useful