Realizado por:
Santiago de Jesus Vega Len
Generacin 2009-2013
Direccin de Tesis:
Dr. Fernando Daniel Von Borstel Luna
DECLARATORIA
ATENTAMENTE
Agradecimientos
Al Dr. Fernando Daniel Von Borstel Luna, por su direccin, orientacin y apoyo
tanto en cuestiones tcnicas como morales a lo largo de todo el proceso de
realizacin de la tesis.
Al personal del taller de maquinado del CIBNOR, Jorge Cobos Anaya y Alfonso
lvarez Casillas por su trabajo de fabricacin de piezas y modificaciones al
manipulador.
A mi familia por su apoyo y formacin dentro de los valores que hoy hacen de m la
persona que soy.
Resumen
Abstract
This work aims at designing and implementing a system of feedback control for 4 degrees
of freedom robotic arm. The robotic arm OWI-535 was chosen to implement the system
prototype, due to its low cost and its mechanism of motion of its joints. OWI-535 is manufactured
by OWI Robots Corporation.
The OWI-535 is designed for educational purposes and has an economically affordable
cost compared to other manipulators. This robotic arm system has not a feedback control, which
prevents any analysis of the position of the joints, and for the same reason it is impossible to know
the end effector position without the direct supervision of the user.
This document describes in detail the development of the control system to improve the
OWI-535, creating a feedback system that allow the manipulator to do tasks as accurately and
precisely as possible, implementing a system based on a PIC microcontroller, DC motors drivers,
optical and mechanical sensors, plus free software developed in Matlab. Modifications to the OWI535 consisted of adapting the gearboxes of each joint, piercing one of its gears to install an optoswitch, which helps to count the revolutions of the joint motors to know its rotational angle using
an electronic system based on the PIC microcontroller.
The microcontroller system allows communication with a PC through an USB port, where a
graphical user interface and open source robotic libraries simulate the position of the manipulator,
control it directly by introducing three-dimensional coordinates within its workspace, and allow
perform repetitive tasks previously programmed in a text file, among other things.
Various experimental tests were performed to refine the control system, given the
limitations of the robot dynamics. Experiments led to statistically analyze the collected data, and
to measure the manipulator performance. Parameters such as accuracy and precision of the robot,
which allow to know the positioning of the end effector in simulated and real environments, were
measured. A comparison with several studies made possible to conclude the advantages, benefits,
applications, and future work to improve the implemented prototype.
ndices
ndice Temtico
ndice Temtico ................................................................................................................................ i
ndice de Figuras ............................................................................................................................. v
ndice de Tablas .............................................................................................................................. iix
Captulo 1: Introduccin ...................................................................................................................... 1
1.1 Justificacin ............................................................................................................................... 2
1.2 Objetivos ................................................................................................................................... 2
1.2.1 Objetivos particulares ........................................................................................................ 3
1.3 Planteamiento del problema .................................................................................................... 4
1.3.1 Definicin y antecedentes del problema ........................................................................... 4
1.3.2 Formulacin del problema ................................................................................................. 5
1.4 Hiptesis .................................................................................................................................... 5
1.5 Importancia del estudio y posibles aplicaciones ....................................................................... 5
1.6 Propuesta de la solucin ........................................................................................................... 6
1.7 Marco Terico ........................................................................................................................... 7
1.8 Alcances y lmites del proyecto ................................................................................................. 7
1.9 Validacin de la solucin ........................................................................................................... 7
1.10 Fases Metodolgicas ............................................................................................................... 8
1.8 Descripcin del Documento ...................................................................................................... 8
Captulo 2: Marco Terico ................................................................................................................... 9
2.1 Precisin y Exactitud ............................................................................................................... 10
2.2 Clasificacin de robots manipuladores ................................................................................... 10
2.3 Grados de libertad................................................................................................................... 11
2.3.1 Manipuladores con seis GDL ............................................................................................ 11
2.3.2 Manipuladores bajo actuados. ......................................................................................... 11
2.3.3 Manipuladores Redundantes ........................................................................................... 12
2.4 Ejes coordenados y transformaciones homogneas .............................................................. 12
2.5 Cinemtica directa .................................................................................................................. 15
2.6 Cinemtica inversa .................................................................................................................. 15
2.7 Representacin Denavit-Hartenberg ...................................................................................... 18
ndices
ndices
ndices
ndices
ndice de Figuras
Captulo 1: Introduccin
Figura 1.1 Robot manipulador educativo OWI-535 ........................................................................ 2
Figura 1.2 Ejemplo de transformaciones para describir la posicin del efector final o herramienta
en un plano cartesiano .................................................................................................................... 3
Figura 1.3 Esquema a bloques del sistema de control propuesto para el manipulador................. 6
Figura 1.4 Diagrama a bloques del sistema manipulador empleando la cinemtica inversa y
directa para mejorar la precisin en el espacio de trabajo............................................................. 7
Captulo 2: Marco Terico
Figura 2.1 Diversas categoras de robots ...................................................................................... 10
Figura 2.2 a). El robot Puma 560 ................................................................................................... 11
Figura 2.2 b). El brazo Stanford .................................................................................................... 11
Figura 2.3 Robot SCARA Cobra S600 con 4 GDL ............................................................................ 12
Figura 2.4 Robot articular .............................................................................................................. 17
Figura 2.5 Sistemas de coordenadas de elementos y sus parametros ........................................ 18
Figura 2.3 Establecimiento del sistema de coordenadas de elementos para un robot
manipulador de 6 GDL ................................................................................................................... 19
Figura 2.4 Robot que usa un proceso de reconocimiento de patrones ........................................ 21
Figura 2.5 Ejemplo de transmisin de datos, paralelo y serial...................................................... 24
Captulo 3: Diseo e Implementacin del Sistema de Control para el Manipulador Robtico
Figura 3.1 Dimensiones longitudinales del OWI-535 .................................................................... 28
Figura 3.2 Longitudes de cada articulacin del OWI-535; desde la base hasta la punta de la
herramienta................................................................................................................................... 28
Figura 3.3 Movimiento de rotacin de la articulacin de la base del OWI-535 ............................ 29
Figura 3.4 Giro angular mximo de la articulacin que genera un movimiento vertical de la base
en superficie plana ........................................................................................................................ 29
Figura 3.5 Movimiento de la articulacin del codo del OWI-535, con el giro angular mximo
determinado experimentalmente ................................................................................................. 30
Figura 3.6 La figura presenta el movimiento mximo de mueca producido por la ltima
articulacin del manipulador ........................................................................................................ 30
Figura 3. 7 Apertura mxima de la pinza, la cual es la herramienta del manipulador.................. 30
v
ndices
Figura 3.8 rea de trabajo en el plano horizontal, efectiva del OWI-535 de acuerdo a las
mediciones realizadas ................................................................................................................... 31
Figura 3.9 rea de trabajo en el plano vertical efectiva del OWI-535 en el borde de mesa ........ 31
Figura 3.10 Caja de engranajes de reduccin del OWI-535 .......................................................... 32
Figura 3.11 Terminales del microcontrolador PIC16F877a ........................................................... 33
Figura 3.12 Diagrama recomendado por Microchip para la conexin del cristal oscilador y los
capacitores .................................................................................................................................... 34
Figura 3.13 Tarjeta controladora DIR-735, utilizada como plataforma bsica para el PIC
PIC16F877a .................................................................................................................................... 35
Figura 3.14 Diagrama de circuito para la instalacin del botn de reinicio de programa ............ 35
Figura 3.15 Diagrama del circuito de trasmisin y recepcin de datos ........................................ 36
Figura 3.16 Esquemtico de las perforaciones realizadas al engrane P4-M ................................. 38
Figura 3.17 Opto-interruptor encapsulado y su diagrama ............................................................ 39
Figura 3.18 Instalacin del opto-interruptor dentro de la caja de engranes ................................ 40
Figura 3.19 Modificacin recomendada para la instalacin del opto-interruptor ....................... 40
Figura 3.20 Instalacin final del opto-interruptor en una caja de reduccin ............................... 41
Figura 3.21 Diagrama del 74LS14, circuito inversor con disparador Schmitt ............................... 41
Figura 3.22 Posicin inicial del OWI-535 modificado .................................................................... 42
Figura 3.23 Representacin de un puente H con interruptores ................................................... 43
Figura 3. 24 Diagrama del circuito de control de motores para el OWI-535 modificado ............. 44
Figura 3.25 Diagrama del circuito del sistema de control para el OWI-535 modificado .............. 46
Figura 3.26 Placa 1 con circuitos de comunicacin serial y recepcin de seales de optointerruptores ................................................................................................................................. 47
Figura 3.27 Placa 2 con circuitos Puente H para controlar los motores de CD ............................. 48
Figura 3.28 Placa 1 finalizada con los componentes correspondientes ....................................... 48
Figura 3.29 Placa 2 finalizada con los correspondientes componentes electrnicos ................... 48
Figura 3.30 a) Diseo de la placa 3 para micro-interruptores ...................................................... 49
Figura 3.31 b) Placa 3 ensamblada ............................................................................................... 49
Figura 3. 32 Vista frontal de la caja, medidas reales de la caja de circuitos ................................. 49
Figura 3.33 Vista lateral derecha y vista lateral izquierda ........................................................... 50
Figura 3. 34 Vista superior de la caja, botn de paro de emergencia ........................................... 50
Figura 3. 35 Vista trasera de la caja, sus componentes y medidas calculadas ............................. 51
vi
ndices
ndices
viii
ndices
ndice de Tablas
Captulo 3: Diseo e Implementacin del Sistema de Control para el Manipulador Robtico
Tabla 3.1 Identificador y figuras de los engranes de las cajas de reduccin del OWI-535 ........... 38
Tabla 3. 2 Tabla de verdad del CI L293 .......................................................................................... 44
Tabla 3.3 Asignacin de las terminales de cada puerto del PIC16F877a en el sistema electrnico
de control ...................................................................................................................................... 45
Tabla 3.4 Comandos validos en el Softwi V1.0 .............................................................................. 54
Tabla 3.5 Nmero de identificacin de motores del OWI-535 ..................................................... 56
Tabla 3.6 Lgica de movimientos del firmware para cada articulacin del manipulador ............ 60
Captulo 4: Resultados Experimentales
Tabla 4.1 Resultados del clculo de la resolucin con tiempo de muestreo de 5 ms en
movimientos negativos y positivos de cada articulacin .............................................................. 76
Tabla 4.2 Datos estadsticos de la primera articulacin (Base) ..................................................... 78
Tabla 4.3 Datos estadsticos de la segunda articulacin ............................................................... 80
Tabla 4.4 Datos estadsticos de la tercera articulacin ................................................................. 82
Tabla 4.5 Datos estadsticos de la cuarta articulacin .................................................................. 84
Tabla 4.6 Resultados de los experimentos de exactitud en movimientos positivos (derecha) de la
base ............................................................................................................................................... 89
Tabla 4.7 Resultados de los experimentos de exactitud en movimientos negativos (izquierda) de
la base............................................................................................................................................ 90
Tabla 4.8 Resultados de los experimentos de exactitud en movimientos hacia abajo de la
segunda articulacin ..................................................................................................................... 91
Tabla 4.9 Resultados de los experimentos de exactitud en movimientos angulares hacia arriba
de la segunda articulacin............................................................................................................. 92
Tabla 4.10 Resultados de los experimentos de exactitud en movimientos hacia abajo de la
tercera articulacin ....................................................................................................................... 93
Tabla 4. 11 Resultados de los experimentos de exactitud en movimientos hacia arriba de la
tercera articulacin ....................................................................................................................... 94
Tabla 4.12 Resultados de los experimentos de exactitud en movimientos hacia abajo de la
cuarta articulacin......................................................................................................................... 96
Tabla 4.13 Resultados de los experimentos de exactitud en movimientos hacia arriba de la
cuarta articulacin......................................................................................................................... 97
ix
ndices
Captulo 1: Introduccin
Captulo 1: Introduccion
Actualmente en la industria, en el rea cientfica y de desarrollo, la automatizacin de
procesos ha tenido mucho xito, facilitando los trabajos, hacindolos ms precisos y exactos. Pero
como toda tecnologa, al iniciar tiene un alto costo de adquisicin que deben cubrir las
instituciones o empresas.
Desde la dcada de los 60s, la robtica ha marcado un cambio en las lneas de produccin,
un claro ejemplo son las empresas automotrices, las cuales son pioneras en la automatizacin de
lneas de produccin. Los beneficios que dicha rea de la tecnologa proporciona, no solo son los
de facilitar y optimizar los procesos, tambin permite realizar tareas en ambientes hostiles que
pueden afectar la salud del ser humano.
Existen distintos tipos de robots, desde los operados a distancia, que necesitan la
supervisin y el control de una persona hasta los automticos que se programan para distintas
tareas e incluso para imitar habilidades del ser humano, por ejemplo los androides (Craig, 2006).
Los robots de inters en esta investigacin sern los de tipo manipulador que se clasifican
de acuerdo sus movimientos bsicos los cuales se pueden definir como: cartesianos (tres ejes
lineales), cilndricos (dos ejes lineales y un eje rotacional), esfricos (un eje lineal y dos
rotacionales) y de revolucin o articuladas. Las fuentes de energa utilizadas para manejar las
articulaciones del robot pueden ser: elctricas, neumticas o hidrulicas. Dichos robots pueden
tener mltiples articulaciones tanto con movimientos rotacionales, como de traslacin, y cuentan
con una herramienta que va montada al final del brazo con la cual manipulan objetos.
En el caso del brazo entrenador OWI-535 (Owi Robot, 2013), es un robot manipulador con
cuatro grados de libertad rotacionales (RRR.R) operado por motores de corriente directa para uso
educativo, por lo que su costo es econmico y accesible, aunque por sus mismas caractersticas
intrnsecas de diseo y la falta de una retroalimentacin de la posicin del mismo, no permite que
el robot muestre precisin y exactitud en sus movimientos. En esta investigacin se pretende
demostrar que el OWI-535 puede mejorar su precisin y exactitud desarrollando un sistema
completo de hardware y software que en conjunto permita calcular su cinemtica para determinar
su posicin en su plano de trabajo tridimensional, as el robot podr realizar tareas que impliquen
la manipulacin precisa de objetos de peso no mayor a 100 g, tanto en el rea cientfica, como en
la educativa.
Captulo 1: Introduccin
Figura 1.5 Robot manipulador educativo OWI-535, tiene 4 grados de libertad y es clasificado por ser tipo RRR.R: tiene
4 articulaciones rotacionales y una pinza como herramienta final.
1.1 Justificacin
Como toda tecnologa en sus inicios su precio es inaccesible para algunas instituciones
cientficas y educativas, por lo que en muchas ocasiones se prefiere mantener el trabajo manual o
incluso artesanal de los procesos. Adems la tecnologa ms barata no siempre es la ideal para
cumplir con el trabajo, por lo que este proyecto propone la mejora de tecnologa de bajo costo
para que su precisin y exactitud sea confiable para desarrollar algn trabajo en especfico dentro
del rea cientfica y educativa.
Con este proyecto se pretende crear un brazo robtico de bajo costo de adquisicin, para
que pueda desarrollar tareas precisas en el rea de desarrollo e investigacin del CIBNOR o en
instituciones de educacin media y superior. En este trabajo se implementaran mtodos de
robtica, control, electrnica digital, programacin y creacin de firmware.
1.2 Objetivos
El objetivo principal del proyecto es disear y construir un sistema completo (hardware y
software) para controlar el robot manipulador educativo OWI-535. Desarrollando software de
control que calcule la cinemtica, sin considerar su dinmica, con el cual se pretende describir su
posicin y orientacin en un espacio tridimensional que representa el rea de trabajo del robot
manipulador OWI-535 empleando para ello conceptos tericos de robtica fundamental, tal como
el mtodo Denavit Hartenberg, el cual permite calcular la posicin de sus articulaciones con el fin
de conocer la posicin del efector final o herramienta.
Captulo 1: Introduccin
Figura 1.6 Ejemplo de transformaciones para describir la posicin del efector final o herramienta en un plano
cartesiano (Barrientos, Pein, Balaguer, & Aracil, 1997).
Por otro lado, mediante el diseo y construccin de una plataforma de hardware, utilizando un
microcontrolador PIC16F877A, se pretende controlar los actuadores de cada articulacin y
aumentar su grado de precisin con la ayuda de sensores pticos, de manera que se pueda
comunicar con una computadora, y pueda realizar trabajos precisos con el mnimo error
permisible en cuanto a las posiciones del robot. El sistema de control completo, hardware y
software, permitir que el manipulador robtico realice automticamente trabajos de
manipulacin de objetos de pesos menores a los 100 g, de manera repetitiva y con la mayor
precisin posible.
1.2.1 Objetivos Particulares
De manera resumida podemos describir que el objetivo principal es mejorar la precisin y
exactitud del robot manipulador OWI-535 basndose en un sistema que permita el clculo de la
cinemtica del mismo y permita introducir comandos en coordenadas en un plano tridimensional;
as como la creacin de un sistema embebido que le permita funcionar de manera automtica
mediante la programacin de tareas y su ejecucin de manera precisa. Desde esta perspectiva,
podemos precisar los objetivos particulares de investigacin documental y de campo.
Objetivos de investigacin documental:
a) Familiarizacin con trminos relacionados a travs de la lectura de bibliografa.
b) Revisin de tcnicas avanzadas de robtica, para la determinacin de la cinemtica del
robot manipulador a travs del mtodo Denavit Hartenberg.
c) Revisin de libreras de software especficas para robtica en lenguajes de cuarta
generacin.
Objetivos de investigacin de campo:
Captulo 1: Introduccin
Captulo 1: Introduccin
implementar un control adecuado del manipulador con las caractersticas de fbrica. Adems, los
accesorios complementarios comerciales para controlarlo a travs de una computadora solo le
permiten mover las articulaciones, pero no cuenta con un sistema operativo propio para calcular
su cinemtica.
Para este proyecto ser necesario investigar y calcular la cinemtica del manipulador OWI535 para determinar su posicin mediante un programa de computadora. Sensores pticos se
adaptaran al engranaje del manipulador para ayudar en el clculo de la cinemtica, creando un
lazo cerrado en el sistema. Esta solucin se plantea con el fin de mejorar la precisin en el
desempeo del manipulador el cual como ya se ha mencionado, carece de precisin debido a sus
caractersticas. La investigacin se llevara a cabo en las instalaciones del CIBNOR.
1.3.2 Formulacin del problema
La investigacin que se realizar, pretender resolver el problema de precisin del robot
manipulador OWI-535 por lo que la pregunta central de la investigacin es: se puede lograr una
mejor precisin y exactitud adecuando sensores que nos indiquen el estado y la posicin de cada
una de las articulaciones del robot?
Un sensor nos permite crear un lazo cerrado en cualquier sistema debido a la
retroalimentacin que se lleva a cabo mediante la lectura de las variables que se encuentren en el
entorno del robot, por lo que con dicha informacin y los clculos necesarios podremos conocer la
cinemtica del robot para hacer ms precisos y exactos sus movimientos.
1.4 Hiptesis
Implementando el uso de sensores en el robot manipulador OWI-535 para leer su posicin
y con la derivacin de las formulas de la cinemtica directa e inversa propia del manipulador, se
podr mejorar la precisin del robot puesto que se conocer con mayor certeza las coordenadas
que determinan su posicin actual o predecir una posicin futura.
Con la mejora ya mencionada el robot ser capaz de ser programado para llevar a cabo
trabajos en reas de investigacin cientfica o educacin que impliquen cargar pesos no mayores a
los 100 g con una mejor precisin y exactitud.
Captulo 1: Introduccin
Figura 1.7 Esquema a bloques del sistema de control propuesto para el manipulador.
Captulo 1: Introduccin
Figura 1.8 Diagrama a bloques del sistema manipulador empleando la cinemtica inversa y directa para mejorar la
precisin en el espacio de trabajo (Chang, 1987).
Captulo 1: Introduccin
realizaran al menos 10 pruebas sobre su precisin, dejando de lado las pruebas de funcionamiento
las cuales se realizaran hasta que el manipulador cumpla con la posicin especfica.
A partir de los resultados experimentales, se realizarn los clculos estadsticos necesarios
que nos permitan determinar la mejora de dichos parmetros a travs de la implementacin del
sistema de control completo.
Figura 2.1 Diversas categoras de robots. Imagen tomada del libro Robtica: visin, control e inteligencia.
10
Figura 2.2 a). El robot Puma 560 fue el primer robot industrial moderno. b). El brazo Stanford fue uno de los primeros
brazos de investigacin y es inusual que tuviera una articulacin prismtica. Ambos brazos fueron diseados por el
pionero en robtica Vctor Schei.
11
Figura 2.3 Robot SCARA Cobra S600 con 4 GDL, tpicamente usado para ensamblado electrnico. Imagen tomada del
libro Robotics, Vision and Control (Corke, 2011).
]
[
13
][ ]
As, los valores de las coordenadas se alargan mediante los escalares a, b y c, respectivamente.
Obsrvese que las matrices de rotacin bsicas, Trot, no producen ningn efecto de escalado local.
El cuarto elemento diagonal produce escalado global como en
[
][ ]
[ ]
Por tanto, el cuarto elemento diagonal en la matriz de transformacin homognea tiene el efecto
de globalmente reducir las coordenadas si s > 1 y de alargar las coordenadas si 0 < s < 1.
En resumen, una matriz de transformacin homognea 4 x 4 transforma un vector
expresado en coordenadas homogneas con respecto al sistema de coordenadas OUVW en el
sistema de coordenadas de referencia OXYZ. Esto es, con w = 1,
14
uvw
15
)
(
16
Figura 2.4 Robot articular. La figura muestra los ejes de referencia sobre una articulacin (X0, Y0, Z0) y las longitudes
de los enlaces y las proyecciones (px, py, pz) del ltimo elemento, entre otras referencias.
Donde los elementos tij son funcin de las coordenadas articulares [q1,, qn]T, es posible
pensar que mediante ciertas, combinaciones de las 12 ecuaciones planteadas anteriormente se
pueden despejar las n variables articulares qi en funcin de las componentes de los vectores n, o, a
y p.
Por ltimo, si se consideran robots con capacidad de posicionar y orientar su extremo en
el espacio, esto es, robots con 6 GDL, el mtodo de desacoplamiento cinemtico permite, para
determinados tipos de robots, resolver los primeros grados de libertad, dedicados al
posicionamiento de manera independiente a la resolucin de los ltimos grados de libertad,
dedicados a la orientacin. Cada uno de estos dos problemas ms simples podr ser tratado y
resuelto por cualquier procedimiento (Barrientos, Pen, Aracil, & Balaguer, 1997).
17
18
Figura 2.6 Establecimiento del sistema de coordenadas de elementos para un robot manipulador de 6 GDL (Fu,
Gonzlez, & Lee, 1998).
12. Obtener ai como la distancia medida a lo largo de xi (que coincidir con xi 1) que habra
que desplazar el nuevo {Si 1} para que su origen coincidiese con {Si}.
13. Obtener i como el ngulo que habra que girar a en torno a xi (que ahora coincidira con
xi 1), para que el nuevo {Si 1} coincidiese totalmente con {Si}.
14. Obtener las matrices de transformacin i 1Ai
15. Obtener la matriz de transformacin que relaciona el sistema de la base con el extremo
del robot T = 0A1, 1A2 n 1An.
16. La matriz T define la orientacin y posicin del extremo referido a la base en funcin de las
n coordenadas articulares.
(Fu, Gonzlez, & Lee, 1998)
20
Todos (o casi todos) estn compuestos por software y hardware diseados especficamente para
la tarea que tienen que cumplir, e interactuando muy cercanamente (Pedre, 2012).
El diseo de un sistema embebido est muy fuertemente influenciado por las
interacciones del sistema con su entorno. Los sistemas embebidos tambin poseen a menudo un
trato extraordinario de la concurrencia. Desafortunadamente, hay pocas herramientas y
22
A los lenguajes mquina le sucedieron los lenguajes simblicos, los cuales utilizan caracteres
naturales para escribir las instrucciones de los programas. Los lenguajes simblicos a su vez se
dividen en:
Dentro de los segundos se puede distinguir a su vez los lenguajes procedurales y los relacionales.
1. Un lenguaje procedural es aquel lenguaje de programacin en el que hay que sealar
tanto lo que se quiere hacer como el modo de hacerlo.
2. Un lenguaje relacional es un tipo de lenguaje de programacin en el que solo hay que
especificar lo que se quiere obtener, sin necesidad de especificar a su vez el camino a
seguir para obtener los resultados deseados.
A los lenguajes maquina se les conoce como lenguajes de primera generacin. Los
ensambladores son los lenguajes de segunda generacin. Los simblicos de alto nivel de tipo
procedural se les denomina de tercera generacin y a los relacionales se considera que son de
cuarta generacin.
A la tercera generacin pertenecen lenguajes conocidos como el FORTRAN, COBOL, RPG,
BASIC, PASCAL, ADA, C, PROGOL, etc. Estos lenguajes de tercera generacin son de tipo universal.
A diferencia de los lenguajes de tercera generacin, los de cuarta generacin no son tan
universales y van asociados a determinados sistemas operativos y en muchos casos a
determinados sistemas de almacenamiento de informacin. La mayor ventaja de los lenguajes
relacionados es que son muy productivos en desarrollo hasta alcanzar niveles de productividad de
hasta 6 y 8 veces superior a los que alcanzan los de tercera generacin.
Entre los lenguajes de cuarta generacin tenemos el CSP de IBM asociado al sistema de
gestin de base de datos DB2; el NATURAL de SOFTWARE AG asociados al sistema de datos
ADABAS; el SQL que es un lenguaje convertido en estndar mundial como el lenguaje de cuarta
generacin para la consulta de bases relacionales; etc.
Adems de los lenguajes sealados hay que prestar una seria atencin al lenguaje de
programacin Java, desarrollado por SUN y cuya misin fundamental es dar la posibilidad de
24
Predecir el resultado de las acciones que se tomen sobre el proceso o sistema de control.
Comprender el porqu de los eventos.
Identificar reas problemticas antes de la implantacin del sistema.
Explorar los efectos de las modificaciones.
Evaluar ideas y su viabilidad, e identificar sus ineficiencias.
Estimular el pensamiento creativo y entrenar al personal.
Optimizar los procesos (ahorros de energa, cuellos de botella, mejoras de los
rendimientos, etc.).
Para poder simular un sistema de control, se debe contar con un modelo matemtico de la
planta o proceso que se quiere controlar, el cual puede optimizarse va interacciones mltiples,
bajo mltiples escenarios, variables, parmetros que se evalan individual o simultneamente.
En un modelo matemtico, las entidades del sistema y sus atributos se representan mediante
variables matemticas. Las actividades se describen mediante funciones matemticas que
interrelacionan las variables. Los modelos matemticos dinmicos normalmente se resuelven
mediante mtodos numricos, y la simulacin es una de las herramientas ms comunes.
25
Un modelo no es solo el sustituto de un sistema, sino tambin una simplificacin del mismo. Para
obtener un modelo se debe al menos:
Existe una estrecha interrelacin entre el proceso de recoleccin de datos para el modelo, y el
anlisis de los mismos: las suposiciones relativas al sistema orientan la recoleccin de datos y el
anlisis de stos confirma o refuta las suposiciones.
Los pasos bsicos para modelar un sistema de control son:
26
27
Figura 3.53 Dimensiones longitudinales del OWI-535; la base se extiende en un rea de 16.1 cm por 22 cm, mientras
que completamente erguido, verticalmente se extiende hasta 38.5 cm.
Figura 3.54 Longitudes de cada articulacin del OWI-535; desde la base hasta la punta de la herramienta, cuando la
herramienta se encuentra completamente cerrada, el manipulador mide verticalmente un mximo de 38.5 cm.
28
Figura 3.55 Movimiento de rotacin de la articulacin de la base del OWI-535; a) rotacin de la articulacin de la base,
o
haciendo un giro de 270 hacia el frente de la base del manipulador; b) rotacin de la articulacin de la base haciendo
o
un giro de 270 hacia atrs.
Figura 3.56 Giro angular mximo de la articulacin que genera un movimiento vertical de la base en superficie plana.
29
Figura 3.57 Movimiento de la articulacin del codo del OWI-535, con el giro angular mximo determinado
experimentalmente.
Figura 3.58 La figura presenta el movimiento mximo de mueca producido por la ltima articulacin del
manipulador.
30
Figura 3.60 rea de trabajo en el plano horizontal, efectiva del OWI-535 de acuerdo a las mediciones realizadas, el
rea azul representa la zona en la cual el manipulador puede alcanzar un objeto, mientras que el rea blanca
representa la zona fuera del alcance.
Figura 3.61 rea de trabajo en el plano vertical efectiva del OWI-535 en el borde de mesa.
31
Como se puede observar en la Figura 3.10, la caja de engranajes de reduccin contiene dos
tipos de engranes: tres engranes cuya relacin de dientes exteriores e interiores es de 32/10 y un
engrane de relacin 40/10. Teniendo en cuenta que la relacin del motor con el primer engrane es
de 32/1 podemos determinar el factor de reduccin Ns:
(3.1)
Con dicho factor de reduccin podemos calcular la relacin entre la entrada y salida, de velocidad
y momento de torsin respectivamente, las cuales estn dadas por:
(3.2)
(3.3)
Donde:
Ns
MS
MS
32
Dadas las ecuaciones anteriores, podemos decir que el momento de torsin MS a la salida de la
caja de engranajes de reduccin aumenta en un factor de Ns = 4,194, mientras que la velocidad del
motor MS disminuye con el mismo factor a la salida (Cnepa, 2010).
Los microcontroladores PIC fabricados por MICROCHIP tienen tres principales ventajas que
fueron fundamentales para su eleccin, debido a que los PICs son muy utilizados, son fciles de
encontrar en el mercado y por lo tanto existe abundante informacin sobre su funcionamiento,
solucin a problemas y proyectos. Como se ha mencionado los PICs cuentan con una arquitectura
tipo Harvard que separa la memoria de programa de la memoria de datos. Poseen un procesador
33
RISC (por sus siglas en ingls Reduced Instruction Set Computing), el cual debido a su reducido
set de instrucciones facilita la programacin de dichos dispositivos.
3.2.1.1 Tarjeta controladora
Al igual que otros microcontroladores de Microchip, el PIC16F877a necesita de un
dispositivo que genere un pulso de reloj para funcionar. Dicho dispositivo puede implementarse
mediante un arreglo de un capacitor y una resistencia o bien puede emplearse un cristal que
genere el pulso. Para el OWI-535 modificado se utiliz un cristal de 4MHz. Teniendo en cuenta que
segn el fabricante cada ciclo de instruccin consiste en cuatro periodos de reloj podemos calcular
el tiempo que toma llevar a cabo cada instruccin con la siguiente formula:
(3.4)
Donde:
T:
CI:
F:
frecuencia
Por lo tanto, si sustituimos en la ecuacin 3.4 los datos reales de los valores a utilizar obtenemos:
En resumen, el microcontrolador puede ejecutar una instruccin en 1s, con un cristal de 4 MHz.
El fabricante tambin recomienda un arreglo de capacitores para la instalacin del cristal
como el que se puede observar en la Figura 3.12.
Figura 3.64 Diagrama recomendado por Microchip para la conexin del cristal oscilador y los capacitores.
Los valores de C1 y C2 recomendados por el fabricante para el cristal de 4 MHz deben ser
de 15pF (PIC16f877a datasheet tabla 14-2). La resistencia en serie Rs puede emplearse para un
cristal de baja frecuencia, en esta ocasin para uno de 4 MHz no es necesario. La resistencia
interna del PIC denominada RF vara dependiendo el cristal.
34
Para no implementar el circuito que se muestra en la Figura 3.12, se adquiri una tarjeta
ensamblada. La tarjeta DIR-735 est diseada para un microcontrolador PICKAXE de 40 terminales,
pero tambin puede utilizarse con un PIC de las mismas dimensiones. La tarjeta cuenta con el
arreglo necesario de un cristal oscilador y sus respectivos capacitores as como un regulador de
voltaje de 5 VCD LM7805, por lo que la tarjeta DIR-735 puede ser alimentada con voltajes desde
5.5 VCD hasta 12 VCD para su correcto funcionamiento y evitar daos a la tarjeta. La tarjeta DIR735 se adquiri con el proveedor Electrnica Estudio (Electronica Estudio, 2015). La tarjeta DIR735 se puede observar en la Figura 3.13.
Figura 3.65 Tarjeta controladora DIR-735, utilizada como plataforma bsica para el PIC PIC16F877a.
La tarjeta DIR-735 cuenta con una terminal tipo extensin de la terminal Master Clear
(MCLR) el cual permite mediante un pulso reiniciar el programa. Debido a que esta terminal es
solo de entrada y se encuentra en negacin lgica el fabricante recomienda el circuito que
podemos observar en la Figura 3.14 para una correcta instalacin del botn de reinicio o reset.
Figura 3.66 Diagrama de circuito para la instalacin del botn de reinicio de programa.
35
36
Para obtener la mayor resolucin posible en las lecturas del opto-interruptor, sin debilitar
los engranes plsticos, se propuso hacer ocho perforaciones en el segundo engrane contando a
partir del engrane que est en contacto directo con el motor, puesto que a su velocidad se
facilitan ms las mediciones, a diferencia del primero cuya velocidad es superior y dificult dicha
medicin experimentalmente; tambin se tom en cuenta que los orificios deberan tener la
misma medida que en las partes intermedias slidas, esto permiti segmentar el engrane en
partes iguales y no tener problemas de diferencias en la duracin de los pulsos entregados por el
sensor.
Cada engrane tiene un radio de 8.5 cm, cada perforacin se realizaron a 5 cm del radio
para evitar debilitar el engrane o daar el engrane interior, sabiendo lo anterior se puede calcular
el dimetro aproximado de las perforaciones, teniendo en cuenta que la circunferencia de un
crculo es:
(3.5)
(3.6)
Donde:
C
Dicho resultado se redondea a 1.96 cm para su aplicacin real. En la Figura 3.16 se muestra el
diagrama esquemtico de los engranes modificados llamados ahora P4-M, siguiendo la
nomenclatura proporcionada por el fabricante.
37
Figura 3.68 Esquemtico de las perforaciones realizadas al engrane P4-M, donde se presentan las medidas calculadas
de cada radio: del centro de cada perforacin al centro del engrane (5 cm), de cada perforacin (0.98 cm), y del
engrane (8.5 cm).
Pieza
P4
P5
P4-M
P6
P7
P8
F7
Figura
Tabla 3.7 Identificador y figuras de los engranes de las cajas de reduccin del OWI-535.
38
Aplicando una regla de tres para resolver el valor en grados de un diente del engrane P4-M
Cabe mencionar que esta analoga tendra valores exactos en situaciones ideales, debido al error
existente en los motores, las cajas de reduccin y la elaboracin artesanal de las perforaciones
puede ocasionar variacin en los resultados reales.
39
en un solo sentido. En la Figura 3.18 se muestra el esquema del funcionamiento de los optointerruptores en el sistema de engranaje de las cajas de reduccin.
Figura 3.70 Instalacin del opto-interruptor dentro de la caja de engranes de las articulaciones.
Para la instalacin del opto interruptor se realiz una modificacin a la caja retirando un
fragmento de plstico como lo sugiere la Figura 3.19.
Ambos dispositivos del opto-interruptor se instalaron con pegamento, en este caso silicn
caliente cuidando que la posicin fuera fija y centrada, uno frente al otro para que la recepcin de
la luz sea correcta. En la Figura 3.20 se puede observar la instalacin del opto-interruptor en una
caja de reduccin.
40
Figura 3.73 Diagrama del 74LS14, circuito inversor con disparador Schmitt (Schmitt Trigger) y sus correspondientes
opto-interruptores.
41
Las salidas del 74LS14 se conectaron directamente al microcontrolador, por lo que dichas
salidas solo podrn tener dos valores lgicos, cero y uno.
3.2.5 Creacin de una posicin de inicio
Como se ha mencionado anteriormente el OWI-535 puede llevar a cabo sus movimientos
mediante motores de corriente directa. Dichos motores no estn diseados para movimientos
precisos sino para un movimiento continuo, por esta razn el error que existe puede variar en
cada movimiento y ser acumulativo. Para evitar este problema se defini un punto de inicio
(Home) que permite al OWI-535 regresar a su posicin inicial cuando se reinicie el programa o
cuando uno se lo indique a travs del software. Se defini la posicin inicial del OWI-535
modificado como se muestra en la Figura 3.22.
42
Figura 3.75 Representacin de un puente H con interruptores. Cuando S1 y S4 se activan el motor gira en una
direccin y cuando S2 y S3 son activados el motor gira en direccin contraria.
Para el circuito de control de los motores del OWI-535 se utilizaron circuitos integrados
L293D y L293B, ambos son puentes H. Dichos dispositivos funcionan con voltajes desde 4.5 VCD
hasta 36 VCD y permiten una seal de ancho de pulso modulado o PWM (por sus siglas en ingls
Pulse Width Modulation) para regular la velocidad del motor. Para consultar las caractersticas de
los CI L293D o L293B, ver Apndice A4.
El diseo del circuito es simple, se necesita un voltaje de 5 VCD para habilitar la terminal
de activacin (Enable) del circuito, dos entradas de 5 VCD (seal TTL) para controlar la direccin de
giro del motor y dos salidas que se conectan a las terminales del motor. El circuito ser alimentado
por un voltaje de 5 VCD.
Para el movimiento de las articulaciones, se controlaran los motores por medio de la
terminal Enable, la cual activa y desactiva el puente H correspondiente y la seal de control de
direccin de giro se enviar por igual a todas las terminales de cada L293. En resumen, la seal de
control de direccin de giro se enviara a todos los circuitos y se seleccionar por medio de la
terminal Enable, el motor correspondiente. En la Figura 3.24 se puede observar el diagrama del
circuito.
43
Figura 3. 76 Diagrama del circuito de control de motores para el OWI-535 modificado. La seal de entrada X y la seal
de entrada Y son iguales para todos los circuitos, mientras que las terminales Enable se activan con diferente seal.
Como se puede observar en el diagrama anterior la direccin de giro se controla por dos
lneas que son llamadas: entrada X y entrada Y, estas entradas funcionan con una seal TTL. En la
Tabla 3.2 se puede observar la lgica del movimiento del motor en funcin de sus entradas.
Entrada X
L
Entrada Y
L
Salida
Sin
movimiento
Movimiento
X
Movimiento
Y
Sin
movimiento
Tabla 3. 8 Tabla de verdad del CI L293. H significa un pulso alto en voltaje TTL mientras que L un pulso bajo,
movimiento X y movimiento Y son movimientos giratorios en sentidos diferentes, el sentido del movimiento puede
variar dependiendo de la conexin de las terminales del motor.
44
El sistema electrnico del OWI-535 modificado se cre en base a las seales de los
diferentes circuitos que lo componen y de lo que dichos circuitos aportan. Por ejemplo, los
voltajes necesarios para la activacin de los motores, la lectura de los opto-interruptores, y el
estado de los micro-interruptores. El PIC16F877a cuenta con solo un ncleo de procesamiento, por
lo que solo puede realizar una accin a la vez. Debido a esto la organizacin del sistema es
fundamental para su correcto funcionamiento. La distribucin de las funciones para cada puerto
del PIC16F877A se asign como se muestra en la Tabla 3.3.
Pin
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RC1
RC2
RD1
RD2
RD3
RD4
RD5
Funcin
Elemento
Puerto B
Comunicacin serial
Lectura de la seal de cada
Opto-interruptor en las Cajas
de Engranaje
Puerto C
Definicin de la direccin de
giro en los circuitos Puente H
(PWM)
Puerto D
Salida de la seal Enable
(habilitacin del circuito
Puente H y movimiento del
motor de CD deseado)
Tx
Rx
Motor 5
Motor 4
Motor 3
Motor 2
Motor 1
Izquierda
Derecha
Motor 1
Motor 5
Motor 4
Motor 3
Motor 2
Puertos A y E
RA4
RA5
RE0
RE1
RE2
Motor 5
Motor 4
Motor 3
Motor 2
Motor 1
Tabla 3.9 Asignacin de las terminales de cada puerto del PIC16F877a en el sistema electrnico de control.
Las conexiones a las terminales del PIC16F877a se realizaron de acuerdo a la Tabla 3.3, lo
cual podemos observar en el diagrama de la Figura 3.25.
45
Figura 3.77 Diagrama completo del circuito del sistema de control para el OWI-535 modificado.
Como se puede observar fueron incluidos tres CI Puente H (dos L293D y un L293B) para los 5
motores y 5 compuertas inversoras con disparador Schmitt para la adecuacin de la seal de los
opto-interruptores a una seal TTL cuadrada.
3.2.8 Diseo y montaje de circuitos impresos
El diagrama que se muestra en la Figura 3.25 fue validado en un protoboard con un
firmware de prueba. Debido a su tamao y sus frgiles conexiones, el circuito implementado no es
apropiado para una instalacin permanente en el sistema del OWI-535, por lo que los circuitos se
disearon e implementaron en tarjetas fenlicas donde se imprimieron y se soldaron
debidamente los dispositivos correspondientes.
46
Figura 3.78 Placa 1 con circuitos de comunicacin serial y recepcin de seales de opto-interruptores.
47
Figura 3.79 Placa 2 con circuitos Puente H para controlar los motores de CD.
En las Figuras 3.28 y 3.29 podemos observar las tarjetas ensambladas con sus
correspondientes componentes.
a.
b.
49
Un orificio circular de 5.7 cm de dimetro en la cara lateral derecha, Figura 3.32a y una
rejilla de perforaciones de 5.5 cm x 5 cm en la parte lateral izquierda de la caja para la instalacin
de un ventilador como sistema de enfriamiento que permita el flujo de aire a los circuitos
electrnicos, como se puede observar en la Figura 3.32b.
(a)
(b)
Figura 3.84 a) Vista lateral derecha. b) Vista lateral izquierda.
50
El OWI-535 modificado con todo el sistema completo se puede observar en la Figura 3.36
Figura 3.88 OWI-535 modificado con la caja de circuitos y dems dispositivos mencionados anteriormente.
51
Para el caso de los movimientos verticales tambin se vieron reducidos debido a la caja de
circuitos electrnicos. El espacio de trabajo en el plano vertical se puede observar en la Figura
3.38.
52
Figura 3.91 Conectores de seguridad utilizados en la carcasa y el cable de energa, se envan 5 VCD y 12 VCD por el
mismo cable.
53
3.3 Firmware
El firmware para el control del OWI-535 modificado se basa en una estructura de un
proceso central, el cual es capaz de llamar a procesos secundarios como medida de accin a
determinadas lecturas y comandos que se le proporcione. El firmware, que fue denominado
Softwi, en su versin 1.0, est diseado para trabajar en conjunto con un software de
computadora, el cual transmitir los comandos de las acciones requeridas por el operador e
introducidas a travs de una interfaz grfica en la PC, al sistema de control electrnico del OWI535 modificado. A continuacin se describen los procesos y subprocesos que componen el
firmware. Para ver cdigo el fuente de Softwi V1.0, consultar Apndice A7.
3.3.1 Bucle principal
El bucle principal es el que se encarga del reconocimiento del comando para ejecutar la
accin. Bsicamente, este proceso se est ejecutando infinitamente hasta que un comando es
introducido, posteriormente el programa evala el comando, y si es correcto, ejecuta la accin
definida por el comando.
Existen cuatro comandos posibles dos se atribuyen a la herramienta, uno es para regresar
a la Posicin Inicial, y el ultimo es para indicar un determinado movimiento del OWI-535. Para
cada comando se transmite un carcter, en la Tabla 3.4 se observa el carcter asignado a cada
comando.
Comando
Home
Carcter
r
Descripcin
Regresa el OWI-535 a su Posicin Inicial
Cerrar
Abrir
Mover
Salir
En la rutina principal del Softwi no se ejecuta ninguna accin puesto que su funcin es
tomar una decisin de que accin tomar dependiendo del comando recibido, por lo tanto las
acciones se ejecutan en subrutinas, las cuales son llamadas por la rutina principal. Podemos
observar el funcionamiento de la rutina principal del Softwi en la Figura 3.40.
54
Figura 3.92 Rutina principal del Softwi. Los ngulos son proporcionados por el software de la PC.
55
3.3.2 Subrutinas
La estructura del Softwi, como ya se ha mencionado, se basa en subrutinas las cuales son
llamadas por una rutina principal, esto facilita la identificacin de errores al dividir el
funcionamiento completo del firmware en pequeas tareas que se ejecutan una a una. Cada
subrutina es una tarea diferente y en ocasiones comparten datos en comn para el anlisis, y
ejecucin de las acciones que el OWI-535 puede llevar a cabo. A continuacin se describen las
subrutinas y su funcionamiento.
3.3.2.1 Subrutina de Posicin Inicial
Para llevar a cabo esta subrutina es importante estar atentos a las seales de entrada que
los micro-interruptores instalados enven al microprocesador, debido a que los movimientos de la
rutina de Posicin Inicial o Home, no se basan en el conteo de pulsos entregados por los sensores
opto-interruptores, sino en el contacto fsico de los elementos conectados a las articulaciones del
manipulador con dichos interruptores. El funcionamiento de esta subrutina se basa en una sola
ley, el motor se mover hasta que el micro-interruptor sea activado, esto enva un pulso de 5 VCD
al microcontrolador, el cual identifica que articulacin ha sido reestablecida a su Posicin Inicial.
Como podemos observar en la Figura 3.22, la mayora de los elementos del OWI-535 tocan
sus lmites, para ello se realiz una lgica en los movimientos a realizar, para evitar una posible
colisin. Se le dio a cada motor un nmero de identificacin el cual podemos observar en la Tabla
3.5.
Articulacin
Base
Hombro
Codo
Mueca
Nmero de
Identificacin
Motor 1
Motor 2
Motor 3
Motor 4
Abreviatura
M1
M2
M3
M4
Tabla 3.11 Nmero de identificacin de motores del OWI-535. El motor de la herramienta no se le asign un nmero
de identificacin, para hacer referencia a este, solo se mencionara como Herramienta o Efector final.
El orden de los movimientos para restablecer la Posicin Inicial del OWI-535 es: motor 2,
motor 4, motor 3, y por ltimo el motor 1 que define la orientacin del brazo manipulador.
3.3.2.2 Subrutina Mover
La funcin principal del OWI-535 se puede encontrar dentro de la subrutina Mover, esta
subrutina es la encargada de calcular el ngulo de movimiento para cada articulacin. La subrutina
tambin hace llamados a otras subrutinas que ayudan en el clculo y el posicionamiento de las
articulaciones del OWI-535, adems de las variables fundamentales para la operacin. En la Figura
3.41 se muestra el diagrama de bloques del funcionamiento de la subrutina Mover.
56
57
58
59
Dentro de la lgica del firmware existe solo una articulacin capaz de realizar movimientos
negativos y positivos: la orientacin (M1). Esto se debe a su posicin inicial, la cual se encuentra
justo al centro del rango de movimientos que dicha articulacin puede realizar. Por lo que el
posicionamiento de M1 es el ms complejo dentro de la lgica del firmware. Como se puede
observar en el diagrama de la Figura 3.42, existen tres variables para el posicionamiento de la
articulacin M1: la bandera de Cambio de Signo, la Direccin del Movimiento, y la Direccin del
Motor. Toda la decisin se basa en la bandera de Cambio de Signo, puesto que define el conteo
dependiendo de la direccin; por ejemplo, cuando la bandera de Cambio de Signo se activa, el
conteo en vez de ser progresivo ahora ser regresivo. Como decisin secundaria se tomara en
cuenta si la articulacin se encuentra en su posicin inicial, puesto que en esta posicin es cuando
ocurre el cambio de signo, de otra manera no existe forma alguna de que se produzca un cambio
de signo. Por ltimo, se hace una comparacin entre el signo del movimiento a la posicin deseada
y la posicin actual, para esto necesitamos visualizar el rango de movimientos como una serie de
nmeros negativos y positivos, donde el cero es la posicin inicial de la articulacin, suponiendo
que la articulacin se encuentra en una posicin positiva y se requiere mover a una posicin
negativa; es entonces donde nos encontraremos con este cambio de signo descrito en el
diagrama.
Aunque las articulaciones del hombro (M2) y mueca (M4) realicen movimientos
negativos dentro de la lgica del firmware, estos son tomados como positivos con la diferencia de
que los clculos del movimiento se realizaran con signos invertidos para su correcto
posicionamiento. Gracias a que estas articulaciones no sobrepasan su lmite cero no existe la
necesidad de realizar operaciones de cambio de signo. En la Tabla 3.6 se muestra la lgica de los
movimientos para cada articulacin segn el firmware.
M1
M2
M3
M4
Tabla 3.12 Lgica de movimientos del firmware para cada articulacin del manipulador.
Para hacer una comparacin, la variable del contador de cada articulacin se almacena en
una variable diferente, esto permite al firmware saber cundo se genera un cambio de estado
mediante la comparacin de estas dos variables. Esta tarea es realizada por otra subrutina llamada
Seleccin. En la Figura 3.43 se muestra el funcionamiento de la subrutina seleccin, ntese que la
variable Info es utilizada como una variable de trabajo, mientras que las dems variables llevan a
cabo una funcin de almacenamiento.
60
Con ayuda de las subrutinas anteriores se lleva a cabo la subrutina de Conteo de Pulsos;
podemos observar en la Figura 3.44 el diagrama de bloques de su funcionamiento.
61
Esta subrutina se basa en la comparacin de una variable de trabajo para verificar cuando
cambia el estado de una determinada articulacin, esta subrutina necesita de las dos subrutinas
anidadas de Posiciona y Seleccin.
3.3.2.4 Subrutina de Clculo de Movimiento
Como se ha visto anteriormente la subrutina de reinicio de posicin se encarga de regresar
el ngulo de las articulaciones a una posicin inicial o estado cero. El estado cero como su nombre
lo indica es la posicin 0 de cada articulacin. Como se puede observar en la Tabla 3.6 (lgica de
movimientos del firmware) se defini la direccin de rotacin con signos + y -, siendo el signo
positivo para determinar movimientos a la derecha en el caso de la orientacin, y hacia abajo para
las dems articulaciones, y el signo negativo para movimientos a la izquierda y hacia arriba.
Definida la lgica anterior y teniendo en cuenta las posiciones iniciales de cada articulacin
podemos deducir que se presentaran tres posibles casos en las decisiones de movimientos. Como
se ha mencionado la posicin inicial de la primera articulacin se encuentra en el centro del rango
de movimiento, por lo que ser necesario deducir precisamente la direccin del movimiento, en
62
este caso se pueden presentar tanto signos positivos como negativos, por lo que es necesario
definir una bandera de signo para facilitar al microcontrolador el clculo del movimiento. Por otro
lado, la tercer articulacin ubica su posicin cero completamente en el lmite inferior de su rango
de movimiento, esto provoca que los posibles movimientos que esta articulacin efecte sean
negativos dentro de la lgica de movimientos, puesto que todos los movimientos sern en
direccin hacia arriba y teniendo como lmite superior 0. Por ltimo, se encuentra la segunda y
cuarta articulacin, las cuales debido a su posicin cero en la parte superior del rango de
movimiento, pueden realizar movimientos positivos (hacia la parte inferior del rango de
movimientos).
Cada transmisin recibida del software contendr los ngulos y signos necesarios para
cada articulacin, el firmware es capaz de reconocer cuando es necesario mover una articulacin y
cuando no, esto se realiza gracias a una pregunta lgica, el ngulo de la articulacin seleccionada
es igual al ngulo que se desea mover? Si la respuesta a esta pregunta es afirmativa entonces se
pueden presentar dos casos, el ngulo de la articulacin es mayor o menor al ngulo que se desea
mover .Para ambos casos, la solucin es una sustraccin de los ngulos la cual nos permite calcular
el movimiento de cada articulacin, el hecho de que el ngulo de la articulacin sea mayor o
menor al ngulo de movimiento, solo nos define el minuendo y el sustraendo de la operacin, esto
se hace para limitarnos a utilizar banderas de signos en lugar de trabajar con nmeros negativos
que requieran otra operacin dentro del microcontrolador. En la Figura 3.45 se puede observar la
lgica del rbol de decisiones en un diagrama a bloques de la subrutina de Clculo de Movimiento.
63
Como se puede observar en la Figura3.45 esta subrutina define dos variables importantes
para el proceso de movimiento que son el parmetro de movimiento (Cantidad de Pulsos a Mover)
y la Direccin del Movimiento.
64
Figura 3.98 a) diagrama de flujo de la subrutina abrir pinza. b) diagrama de flujo de la subrutina cerrar pinza.
3.4 Software
Hasta este punto la programacin mencionada ha sido del firmware para el
microcontrolador, en adelante se explicarn los algoritmos y libreras utilizadas para la
programacin del software para la PC. Cabe mencionar que el software se program en Matlab
(Mathworks, 2014) debido a su facilidad para realizar clculos con matrices y de integrar libreras
de software libre y gratuito para robtica en el proyecto; en especial aquellas que permiten
realizar el clculo de la cinemtica de un robot manipulador y su simulacin. En este caso, estamos
haciendo referencia a la librera de Robtica Visin y Control (RVC) del Dr. Peter Corke (Corke,
Robotics Toolbox, 2014).
65
Figura 3.99 Asignacin de ternas (X, Y, Z) de los ejes de referencia de cada articulacin del OWI-535, los elementos X0,
Z1, Z2, Z3 y Z4 apuntan hacia el lector.
Definidas las ternas podemos llevar a cabo el primer paso del mtodo, la definicin de una
cadena que contenga dichas ternas empezando por la base y finalizando en la herramienta.
Utilizando Matlab y las funciones de translacin y rotacin dela librera RVC, podemos definir:
>>s = 'Tz(L0).Rz(q1).Ry(q2).Tz(L1).Ry(q3).Tz(L2).Ry(q4).Ty(L4).Tz(L3)'
66
Las siguientes lneas presentan los clculos y resultados mostrados al ejecutar la librera DHFactor
de RVC.
Tz(L0).Rz(q1).Ry(q2).Tz(L1).Ry(q3).Tz(L2).Ry(q4).Tz(L4).Tz(L3)
Tz(L0).Rz(q1).Ry(q2).Tz(L1).Ry(q3).Tz(L2).Ry(q4).Tz(L4).Tz(L3)
Merge: Tz(L4) Tz(L3) := Tz(L4+L3)
Swap: Tz(L0) <->Rz(q1)
Rz(q1).Tz(L0).Ry(q2).Tz(L1).Ry(q3).Tz(L2).Ry(q4).Tz(L4+L3)
initialmerge + swap
Rz(q1).Tz(L0).Ry(q2).Tz(L1).Ry(q3).Tz(L2).Ry(q4).Tz(L4+L3)
ReplaceToZ: Ry(q2) := Rx(-90)Rz(q2)Rx(+90)
ReplaceToZ: Ry(q3) := Rx(-90)Rz(q3)Rx(+90)
ReplaceToZ: Ry(q4) := Rx(-90)Rz(q4)Rx(+90)
jointvars to Z
67
Rz(q1).Tz(L0).Rx(-90).Rz(q2).Rx(+90).Tz(L1).Rx(90).Rz(q3).Rx(+90).Tz(L2).Rx(-90).Rz(q4).Rx(+90).Tz(L4+L3)
0--------------------------------------ReplaceY: Rx(+90)Tz(L1) := Ty(-L1)Rx(+90)
ReplaceY: Rx(+90)Tz(L2) := Ty(-L2)Rx(+90)
ReplaceY: Rx(+90)Tz(L4+L3) := Ty(-L4-L3)Rx(+90)
Eliminate: Rx(+90) Rx(-90)
Eliminate: Rx(+90) Rx(-90)
Rz(q1).Tz(L0).Rx(-90).Rz(q2).Ty(-L1).Rz(q3).Ty(-L2).Rz(q4).Ty(-L4L3).Rx(+90)
1--------------------------------------Rz(q1).Tz(L0).Rx(-90).Rz(q2).Ty(-L1).Rz(q3).Ty(-L2).Rz(q4).Ty(-L4L3).Rx(+90)
1--------------------------------------** deal with Ry/Ty
ReplaceToZ2: Ty(-L1) := Rz(+90)Tx(-L1)Rz(-90)
ReplaceToZ2: Ty(-L2) := Rz(+90)Tx(-L2)Rz(-90)
ReplaceToZ2: Ty(-L4-L3) := Rz(+90)Tx(-L4-L3)Rz(-90)
Merge: Rz(q2) Rz(+90) := Rz(q2+90)
Merge: Rz(-90) Rz(q3) := Rz(q3-90)
Merge: Rz(-90) Rz(q4) := Rz(q4-90)
Merge: Rz(q3-90) Rz(+90) := Rz(q3)
Merge: Rz(q4-90) Rz(+90) := Rz(q4)
Rz(q1).Tz(L0).Rx(-90).Rz(q2+90).Tx(-L1).Rz(q3).Tx(-L2).Rz(q4).Tx(L4-L3).Rz(-90).Rx(+90)
1--------------------------------------Rz(q1).Tz(L0).Rx(-90).Rz(q2+90).Tx(-L1).Rz(q3).Tx(-L2).Rz(q4).Tx(L4-L3).Rz(-90).Rx(+90)
1--------------------------------------** dealwithRy/Ty
Rz(q1).Tz(L0).Rx(-90).Rz(q2+90).Tx(-L1).Rz(q3).Tx(-L2).Rz(q4).Tx(L4-L3).Rz(-90).Rx(+90)
adding: DH(null, 0, 0, 0) += Rz(q1)
adding: DH(q1, 0, 0, 0) += Tz(L0)
adding: DH(q1, L0, 0, 0) += Rx(-90)
adding: DH(null, 0, 0, 0) += Rz(q2+90)
adding: DH(q2+90, 0, 0, 0) += Tx(-L1)
adding: DH(null, 0, 0, 0) += Rz(q3)
adding: DH(q3, 0, 0, 0) += Tx(-L2)
adding: DH(null, 0, 0, 0) += Rz(q4)
adding: DH(q4, 0, 0, 0) += Tx(-L4-L3)
DH(q1, L0, 0, -90).DH(q2+90, 0, -L1, 0).DH(q3, 0, -L2, 0).DH(q4, 0, -L4L3, 0).Rz(-90).Rx(+90)
68
El cual nos muestra los parmetros D-H para cada articulacin en el orden de , d, a y (Corke,
2011).
Creamos una clase de objeto, el cual contiene los comandos para el robot OWI-535.
>>cmd = dh.command('OWI535')
0
0
0
base = 1 0 0 0
tool =
0 1 0 0
0 0 1 0
0 1
0 0 0 1
0 0 -1
-1 0 0
0 0
0
0
Lo cual crea un espacio de trabajo llamado robot, que es un objeto del tipo SerialLink de la librera
RVC.
La posicin cero de los ngulos de un robot es frecuentemente una pose muy inusual (o en
algunas ocasiones mecnicamente inalcanzable). El diseador de control del robot puede elegir la
configuracin del ngulo cero para que sea una posicin ms obvia para el robot (Corke, 2011).
En el caso del OWI-535, sus articulaciones tendran un ngulo cero los cuales posicionaran
al robot completamente vertical, lo cual nos provocara un aumento en la complejidad del
firmware debido a que ms de dos articulaciones manejaran nmeros positivos y negativos en sus
69
rangos de movimiento, por lo que la posicin cero se ajust como se puede ver en la Figura 3.22.
Observando la figura, podemos ver que solo las articulaciones 3 y 4 son modificadas en cuanto a
su ngulo cero. Esto se lleva a cabo mediante las siguientes funciones que definen la
compensacin u offset necesario de cada elemento para definir sus respectivos nuevos ngulos
cero.
>>robot.links(3).offset = 130*pi/180;
>>robot.links(4).offset = -60*pi/180;
Ntese que se realiza una conversin de grados a radianes debido a que la librera RVC
solo maneja radianes, y en este trabajo se expresan valores en grados.
Por ltimo se hace el llamado a la funcin Teach.m, la cual se encarga de representar
grficamente por medio de vectores al robot, adems de generar una ventana que contiene
controles para el movimiento de cada articulacin.
>>robot.teach('degrees')
Ntese que los ngulos sern determinados por grados y no por radianes, esto solo servir
para mostrar los datos, no para realizar operaciones.
En la Figura3.47 podemos observar la simulacin grfica del robot OWI-535
Figura 3.100 Grfica en vectores de la simulacin del manipulador OWI-535 en su Posicin Inicial (Home).
70
Figura 3.101 GUI de la funcin Teach.m para el robot OWI-535, en la parte superior se pueden observar las
coordenadas en los ejes x, y, z; as como los respectivos ngulos de la posicin y orientacin de la herramienta final
del manipulador. Las casillas a la derecha de las barras deslizantes, nos indican el ngulo de cada articulacin en
grados (q1, q2, q3, q4).
Para que dicha funcin cumpliera con los requerimientos del proyecto se agregaron cinco
botones ms al funcionamiento original:
Botn para restablecer la Posicin Inicial (Reset).- Este botn se encarga de enviar un
comando que le permite al firmware hacer un llamado a la subrutina de Posicin Inicial y
restablece el OWI-535 a su posicin de inicio. Esta posicin tambin puede ser utilizada
para calibrar los movimientos y reducir el error acumulado. La Posicin Inicial de la
herramienta es abierto, por lo que tambin restablece este valor en el Software.
Botn Ejecutar.- Este botn se encarga de enviar por el puerto serial el comando mover
al OWI-535 modificado, para posteriormente enviar uno a uno el contenido, por
renglones, de la matriz robot.qteach creada por la funcin Teach. Cada columna de la
matriz representa un ngulo de una articulacin, mientras que cada rengln representa
toda una posicin del OWI-535. Se envan cinco datos por cada posicin del OWI-535: q0,
signo de q0, q1, q2 y q3. Cuando las posiciones transmitidas por el programa llegan al
PIC16F877a, ste ejecuta las subrutinas necesarias y enva una seal para indicar que se
puede realizar el siguiente movimiento. Si la posicin deseada no es alcanzada por alguna
razn el PIC16F877a, enva una seal de error. En caso de un fallo en la comunicacin se
enva una alerta, si este error se produce por parte de Matlab, se presentar en la consola
en letras rojas, sta alerta es propia de Matlab. Si el error se produce en el OWI-535 cada
71
subrutina est protegida con un timeout que al ser alcanzado, enva una seal de error, la
cual es desplegada en letras negras en la consola de Matlab.
Botones de control de herramienta: Abrir y Cerrar.- Estos botones llevan a cabo la funcin
para mover la pinza, no existe otra validacin que la misma interfaz grfica, solo un botn
puede estar activo a la vez, cuando se pulsa un botn ya sea abrir o cerrar, se enva el
comando correspondiente al OWI-535, el cual ejecuta la accin y devuelve un indicador de
xito o error segn sea el caso. Si un indicador de error es recibido, se indica en la consola
de Matlab, y no se presenta ningn cambio en los botones. Por el contrario, si se recibe un
indicador de xito en el movimiento el botn contrario se desactiva para seguir con el
funcionamiento.
Botn de borrado de memoria (Borrar).-Se encarga simplemente de limpiar los valores
que el botn guardar agrega a la matriz robot.qteach para as definir una nueva
trayectoria.
Figura 3.102 GUI de la funcin modificada Teach.m para el robot OWI-535 modificado.
Para revisar el cdigo fuente de las modificaciones a Teach.m, ver Apndice A6.
72
73
pueden empezar a ejecutarse al mismo tiempo debido que ambos esperaran un comando para
realizar la siguiente instruccin.
Cuando el software por parte de la PC es ejecutado este inicia con la definicin de las
variables y la creacin de la simulacin del robot. Posteriormente se define una posicin y se
almacena en una matriz (robot.qteach) donde cada columna representara un valor del ngulo de
cada articulacin. Cuando es necesario ejecutar un movimiento, el software enva un comando
valido para el firmware. Cuando se trata de un movimiento cuya posicin ya se encuentra definida
en el firmware, como es el caso de restablecer la Posicin Inicial o abrir/cerrar la pinza, el
firmware ejecuta la accin sin esperar otra transmisin, ya que debido a los microinterruptores
instalados en el brazo robtico, el firmware es capaz de conocer la posicin deseada. En otro caso,
cuando se requiera mover el OWI-535 a una posicin deseada por el usuario, el firmware esperar
por los elementos contenidos en cada columna de la matriz robot.qteach despus de recibir el
comando de movimiento. Posteriormente, el software esperar una respuesta del firmware para
enviar el siguiente movimiento, siempre y cuando no ocurra un error. Este proceso se repetir
dependiendo la cantidad de renglones contenidos en la matriz robot.qteach, y al finalizar el
software regresara a la etapa de definir la posicin.
La tarea del firmware es escuchar, ejecutar y responder. Siempre que el firmware es
iniciado se ejecuta una subrutina para iniciar los movimientos desde una Posicin Inicial y evitar el
error acumulativo. Despus de que se restablece a la Posicin Inicial el firmware esperara por un
comando valido, los cuales se mencionan en la Tabla 3.4. Cuando el comando es recibido, el
firmware ejecuta los movimientos necesarios hasta llegar a la posicin deseada. Como se ha
mencionado, solo cuando el comando de movimiento sea recibido, el firmware esperar por ms
datos, en este caso sern los ngulos requeridos de cada articulacin. Despus de cada
movimiento el firmware enva una bandera de finalizacin la cual puede contener un valor que
indica error (e) o xito (n), para posteriormente realizar el siguiente movimiento. Despus de
transmitir la bandera de finalizacin el firmware regresa a la etapa de espera del comando.
Todas las transmisiones se llevan a cabo con una velocidad de 9600 Baudios, un bit de
parada, ocho bits de datos, paridad nula, un carcter de finalizacin CR (retorno de carro) y un
timeout de 5 segundos.
74
75
Articulacin
1
2
3
4
Direccin de movimiento
Movimiento promedio
Positivo
Negativo
Positivo
Negativo
Positivo
Negativo
Positivo
Negativo
1.69
1.73
3.97
3.71
3.7
1.68
2.07
1.74
Tabla 4.15 Resultados del clculo de la resolucin con tiempo de muestreo de 5 ms en movimientos negativos y
positivos de cada articulacin.
76
Eq. 4.1
)
Eq.4.2
77
Pulsos de
movimiento
1
2
3
4
5
6
7
8
9
10
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
Equivalencia
terica en grados
1.7
3.4
5.1
6.8
8.5
10.2
11.9
13.6
15.3
17
-1.7
-3.4
-5.1
-6.8
-8.5
-10.2
-11.9
-13.6
-15.3
-17
ngulo promedio ( ) de
movimientos registrados
1.69
3.39
5.22
6.94
8.56
10.27
11.63
13.55
15.29
16.95
-1.73
-3.54
-5.18
-6.49
-8.52
-10.36
-11.72
-13.52
-15.38
-16.61
Desviacin estndar ( )
0.34
0.36
0.38
0.26
0.36
0.27
0.51
0.46
0.42
0.5
0.25
0.19
0.16
0.8
0.45
0.33
0.39
0.47
0.39
0.95
Tabla 4.16 Datos estadsticos de la primera articulacin (Base), ntese que los valores positivos representan un
movimiento hacia la derecha del punto inicial y los valores negativos representan un movimiento hacia la izquierda.
En la Figura 4.1a observamos una dispersin de los datos relativamente pequea, solo en
los casos de -10 pulsos y -4 pulsos se muestra una dispersin mayor. Observando los lmites del
caso de -10 pulsos podemos observar que los datos estn dispersos entre valores de 15.2 a 18.1,
la media, representada por la lnea roja al medio de la caja, se encuentra en 16.8 y la dispersin
de los datos es mayor entre el 25% y el 50% de la muestra. Los valores son cercanos a los valores
ideales, por lo que se puede ver una forma escalonada de los datos.
78
Figura 4.15a Grfica representativa de la desviacin estndar en la base para movimientos negativos.
Figura 4.1b Grfica representativa de la desviacin estndar en la base para movimientos positivos.
Para el caso de los movimientos positivos, que se observan en la Figura 4.1b, se observa
tambin una figura escalonada y una dispersin relativamente baja. Esto indica que la precisin en
la base es alta segn las figuras.
79
Equivalencia
terica en grados
1.7
3.4
5.1
6.8
8.5
10.2
11.9
13.6
15.3
17
-1.7
-3.4
-5.1
-6.8
-8.5
-10.2
-11.9
-13.6
-15.3
-17
ngulo promedio ( ) de
movimientos registrados
2.45
3.39
6.7
7
10.57
11.06
12.9
14.55
16.92
16.66
-1.61
-3.26
-5.15
-7.06
-8.86
-10.62
-12.46
-13.87
-16.05
-16.96
Desviacin estndar ( )
1.01
0.32
0.68
0.93
2.11
0.92
0.78
0.94
1.18
1.49
0.49
0.48
0.48
0.76
0.8
0.79
1.05
1.54
1.21
2.96
Tabla 4.17 Datos estadsticos de la segunda articulacin, ntese que los valores positivos de pulsos son movimientos
hacia arriba a partir de la posicin de inicio (Home) y viceversa para los valores negativos.
En la Figura 4.2a y 4.2b se puede observar una representacin grfica de los valores obtenidos
para la articulacin 2 y su dispersin mediante diagramas de cajas.
En esta articulacin, para los movimientos positivos, que se observan en la Figura 4.2a, se
registr una dispersin ms alta de los datos por movimiento, e incluso datos fuera de lo comn,
representados por las cruces. Solo para el caso de movimientos de 2 pulsos se observa una alta
precisin y valores relativamente cercanos al valor ideal. Para los casos de 3 pulsos y 9 pulsos de
movimientos se observa la menor precisin debido a una mayor dispersin de los datos.
80
Figura 4.16a Grfica representativa de la desviacin estndar en la segunda articulacin para movimientos positivos
(hacia abajo).
Figura 4.2b Grfica representativa de la desviacin estndar en la segunda articulacin para movimientos negativos
(hacia arriba).
81
Equivalencia en
grados
1.7
3.4
5.1
6.8
8.5
10.2
11.9
13.6
15.3
17
-1.7
-3.4
-5.1
-6.8
-8.5
-10.2
-11.9
-13.6
-15.3
-17
ngulo promedio ( ) de
movimientos registrados
3.28
3.79
5.34
7.2
7.47
10.58
12.48
14.12
16.35
17.09
-1.68
-3.04
-4.46
-6.35
-9.07
-10.75
-13.51
-14.88
-17
-16.86
Desviacin estndar ( )
0.82
0.39
1.19
0.96
1.23
0.72
0.94
0.47
1.41
1.43
1.00
0.57
0.89
0.95
1.08
0.84
2.15
1.46
1.42
2.11
Tabla 4.18 Datos estadsticos de la tercera articulacin del ngulo promedio de movimiento en cada caso y su
desviacin estndar para medir su precisin. Ntese que los valores negativos representan movimientos hacia arriba
de la posicin home.
Dichos datos de la tabla se pueden observar contenidos en el diagrama de cajas de las Figuras 4.3a
y 4.3b.
Para los movimientos positivos de la tercera articulacin se observa un mayor grado de
precisin comparado con la segunda articulacin, pero todava se observa una dispersin alta de
los datos, sin ningn caso de datos fuera de lo comn. La media de los datos se muestra
desplazada de los valores ideales para cada caso, por lo que existe un reducido grado de
precisin.
82
Figura 4.17a Grfica representativa de la desviacin estndar en la tercera articulacin en movimientos positivos
(hacia abajo).
Figura 4.3b Grfica representativa de la desviacin estndar en la tercera articulacin en movimientos negativos
(hacia arriba).
Para los movimientos negativos de esta articulacin no existe mucha diferencia en cuanto
a la precisin de los movimientos positivos y negativos, puesto que para ambos se observa una
alta dispersin de sus datos y por lo tanto un reducido grado de precisin.
83
Equivalencia en
grados
1.7
3.4
5.1
6.8
8.5
10.2
11.9
13.6
15.3
17
-1.7
-3.4
-5.1
-6.8
-8.5
-10.2
-11.9
-13.6
-15.3
-17
ngulo promedio ( ) de
movimientos registrados
2.07
3.39
5.56
7.79
9.58
10.23
11.91
13.56
15.68
17.74
-1.74
-3.36
-5
-6.98
-8.79
-10.36
-12.08
-13.42
-15.54
-16.84
Desviacin estndar ( )
0.97
1.02
0.95
0.84
1.44
0.93
1.39
0.98
1.23
1.54
0.20
0.54
0.69
0.66
0.72
0.68
0.83
0.97
0.99
1.26
Tabla 4.19 Datos estadsticos de la cuarta articulacin del movimiento promedio registrado y su desviacin estndar
para medir la precisin. Ntese que los datos negativos representan un movimiento hacia arriba, empezando por el
ltimo grado del rango de movimiento.
84
Figura 4.18a Grfica representativa de la desviacin estndar en la cuarta articulacin para movimientos positivos
(hacia abajo).
Figura 4.4b Grfica representativa de la desviacin estndar en la cuarta articulacin para movimientos negativos
(hacia arriba).
Para los movimientos negativos, en la figura 4.4b, se observa un menor grado de precisin,
los datos en la mayora de los casos estn ms dispersos, aunque la media describe valores
cercanos a los ideales, por lo que puede llegar a tener valores muy precisos.
85
(a)
(b)
Figura 4.19 Ejemplo del comportamiento de la amplitud de los pulsos PWM (a) en comparacin con el voltaje efectivo
Vrms (b) .
86
En el lenguaje PICBASIC podemos regular tanto la frecuencia de una seal PWM como la
duracin del pulso alto de dicha seal con el comando HPWM (canal, ciclo de trabajo, frecuencia),
el cual mantiene un tren de pulsos de onda cuadrada activo en segundo plano, lo cual nos permite
ejecutar otras tareas. El argumento del comando HPWM llamado canal especfica el canal fsico
del PWM, en el caso especfico del PIC16f877a cuenta con dos canales de PWM, los cuales
podemos observar en la Figura 3.11 identificados por las terminales 16 y 17 (CCP1 y CCP2). Para
consultar caractersticas del PIC16f877a ver el Apndice A2. El argumento ciclo de trabajo se
refiere a la relacin alto-bajo de la seal y se expresa de 0 a 255, donde 255 es un pulso alto en la
duracin total del ciclo. El argumento Frecuencia determina la frecuencia del tren de pulsos, la
frecuencia mnima depende del oscilador utilizado en el circuito para el PIC16f877a, en este caso
especfico se utiliza un cristal de 4 MHz por lo que su frecuencia mnima ser de 245 Hz.
Como se puede observar en la Figura 4.5a se representa una seal a 250 Hz, por lo que
cada periodo equivale a 4 ms. El primer segmento de la seal se presenta de 0 ms a 12 ms con un
ciclo de trabajo de 192 el cual contiene tres periodos de un pulso bajo de 1 ms y un pulso alto de 3
ms, por lo tanto representa aproximadamente del voltaje total, teniendo en cuenta que se
trabaja con un voltaje total de 5 V, esto equivale a aproximadamente 3.75 V. Este segmento se
puede ver reflejado en los primeros 12 ms de la seal de voltaje en la Figura 4.5b. El segundo
segmento se presenta de 12 ms a 24 ms, con un ciclo de trabajo de 127, contiene tres periodos de
2 ms de un pulso bajo y 2 ms de un pulso alto cada uno, lo que representa del voltaje total, o en
este caso 2.5 V. Al igual que en el caso anterior el Vrms para estas condiciones se ve reflejado en el
tiempo de 12 ms a 24 ms de la Figura 4.5b. Por ltimo el segmento final de la seal comprende de
24 ms a 36 ms, se le asign un ciclo de trabajo de 64, el cual para cada uno de sus tres periodos
constara de un ciclo bajo de 3 ms y un ciclo alto de 1 ms, lo que representa solo del voltaje total
o 1.25 V aproximadamente. El Vrms para este ltimo caso se observa en el tiempo de 24 ms a 36 ms
de la Figura 4.5b.
Tambin se implement una funcin tipo rampa que disminuye el Vrms enviado a los
motores para crear una pendiente negativa o cada de voltaje y producir movimientos ms finos al
acercarse al ngulo deseado. Debido a que cada motor del OWI-535 soporta pesos diferentes es
necesario el manejo de diferentes voltajes mnimos necesarios para que cada motor rompa la
inercia. Experimentalmente se observ que el voltaje mnimo necesario para romper la inercia del
motor no es necesariamente el voltaje mnimo necesario que el motor necesita para poder
moverse sin problemas, por lo tanto, en distintas articulaciones se configuraron dos pendientes a
manera de hacer ms fino el posicionamiento de la articulacin en movimiento, esto se puede
resumir en dos voltajes: el voltaje mnimo para romper la inercia y el voltaje mnimo necesario
para mover el motor sin tener en cuenta la inercia.
Con estas modificaciones, se volvieron a realizar los experimentos que consistan en
realizar movimientos angulares de determinado nmero de grados, segn el rango de movimiento
de cada articulacin. Dichos experimentos se repitieron cinco veces cada uno. Para revisar los
resultados crudos de los experimentos revisar el Apndice A9 que contiene la tabla de resultados
de experimentos de exactitud. Ntese que a diferencia de los experimentos de precisin estos
87
movimientos no estarn basados en los pulsos que el microcontrolador reconoce de los optointerruptores, sino en la diferencia entre los grados de movimiento angular calculados y los grados
de movimiento medidos.
Para realizar la medicin del movimiento angular realizado por cada articulacin se
implement un sistema de medicin provisional, utilizando un microcontrolador Propeller
QuickStart P8X32A y un acelermetro Memsic 2125 Dual-axis. En la Figura 4.6 se muestra el
sistema de medicin montado en el lado derecho de la tercera articulacin. Para informacin ms
detallada, ver el Apndice A10.
Figura 4.20 Montaje del acelermetro en el OWI-535, en este caso especfico est montado para realizar mediciones
en la tercera articulacin del manipulador.
88
Figura 4.21 Ejemplo del comportamiento del Vrms en los movimientos angulares de la base, medidos de 0 a -10.
Ntese en la Figura 4.7, que en esta articulacin se observan dos pendientes debido a lo
antes mencionado con respecto al voltaje mnimo para romper la inercia y el voltaje mnimo
necesario para mover el motor, tambin se debe tener en cuenta que el voltaje se compara con
los grados avanzados y no con el tiempo transcurrido.
La Tabla 4.6 muestra que el mximo error promedio para los movimientos angulares de la
base a la derecha, es apenas 0.75 veces la resolucin calculada para cada articulacin. Mientras
que en la Tabla 4.7 muestra que el mximo error promedio para los movimientos angulares a la
izquierda, es 1.70 veces la resolucin calculada. Lo que nos indica que existe mayor exactitud en
los movimientos hacia el lado derecho de la base del manipulador.
Movimiento Deseado Movimiento promedio ( ) medido
5
10
15
20
25
30
40
50
60
70
4.88
9.82
15.16
20.22
25.2
30.24
41.28
49.72
59.8
70.46
Error
Promedio
0.12
0.18
-0.16
-0.22
-0.2
-0.24
-1.28
0.28
0.2
-0.46
Desviacin Estndar
( )
0.083
0.356
0.230
0.618
0.731
1.594
0.258
0.816
0.880
0.559
Tabla 4.20 Resultados de los experimentos de exactitud en movimientos positivos (derecha) de la base.
89
-5.22
-10.7
-15.64
-21.06
-26.3
-31.72
-42.9
-51.26
-61.1
-71.82
0.22
0.7
0.64
1.06
1.3
1.72
2.9
1.26
1.1
1.82
Desviacin Estndar
( )
0.414
0.469
0.207
0.151
0.578
0.645
0.966
1.184
0.902
1.359
Tabla 4.21 Resultados de los experimentos de exactitud en movimientos negativos (izquierda) de la base.
Figura 4.22 Comportamiento del Vrms en los movimientos positivos (hacia abajo) de la segunda articulacin.
90
-2.58
-10.3
-15.96
20.82
26.28
31.2
41.9
51.54
62
71.4
83.12
92.28
2.42
-0.3
-0.96
-0.82
-1.28
-1.2
-1.9
-1.54
-2
-1.4
-3.12
-2.28
Desviacin Estndar
( )
0.661
0.234
0.320
0.083
1.084
0.070
0.187
0.502
0.187
1.667
1.231
1.302
Tabla 4.22 Resultados de los experimentos de exactitud en movimientos hacia abajo de la segunda articulacin.
Para esta misma articulacin pero en movimientos positivos o hacia arriba se configur un
Vrms de 3.9 V creando de igual forma una pendiente negativa en su comportamiento en los ltimos
5 de movimiento con un voltaje inicial de 3.9 V y disminuyendo hasta 3.5 V. El comportamiento
del Vrms para movimientos hacia arriba en la segunda articulacin, se puede observar en la Figura
4.9.
91
Figura 4.23 Comportamiento del Vrms en los movimientos negativos (hacia arriba) de la segunda articulacin. Ntese
que en este caso se observa una sola pendiente, esto significa que el voltaje mnimo para romper la inercia y el voltaje
mnimo para mover el motor es igual.
Con dicha configuracin los experimentos arrojaron los resultados contenidos en la Tabla
4.9. Dichos resultados muestran un error promedio mximo para los movimientos negativos o
hacia abajo de 1.78 veces la resolucin terica calculada. Mostrando que existe menor exactitud
en el extremo inicial y de parte del rango medio del movimiento positivo de la articulacin,
mientras que mediante el anlisis de la desviacin estndar se observa que solo se presenta un
alto grado de precisin en los primeros 15 de movimiento.
Movimiento Deseado Movimiento promedio ( ) medido Error Promedio
85
80
75
70
65
60
50
40
30
20
10
85.6
80.32
75.32
71.44
65.98
59.52
49.8
39.96
29.1
16.96
7.12
-0.6
-0.32
-0.32
-1.44
-0.98
0.48
0.2
0.04
0.9
3.04
2.88
Desviacin Estndar
( )
0.441
0.294
0.889
1.194
1.475
1.169
0.1
1.335
1.673
0.789
1.667
Tabla 4.23 Resultados de los experimentos de exactitud en movimientos angulares hacia arriba de la segunda
articulacin.
92
Figura 4.24 Comportamiento del Vrms en los movimientos negativos (hacia abajo) de la tercera articulacin.
93
Para los movimientos hacia arriba en la tercera articulacin se configur el Vrms a 3.5 V y
empezando a formar una rampa en los ltimos 5 con un voltaje de 2.9 V el cual desciende hasta
2.5 V, tal como se observa en la Figura 4.11.
Figura 4.25 Comportamiento del Vrms en los movimientos angulares negativos (hacia arriba) de la tercera
articulacin.
5.46
10.32
16.06
19.96
25.9
30.44
40.82
47.8
60.62
69.64
79.12
92.14
101.08
111.9
122.38
136.64
-0.46
-0.32
-1.06
0.04
-0.9
-0.44
-0.82
2.2
-0.62
0.36
0.88
-2.14
-1.08
-1.9
-2.38
-6.64
Desviacin Estndar
( )
0.378
0.083
0.207
0.378
0.122
0.545
0.432
1.242
2.798
2.646
3.972
1.340
0.657
2.808
3.063
3.782
Tabla 4. 25 Resultados de los experimentos de exactitud en movimientos hacia arriba de la tercera articulacin.
94
Figura 4.26 Comportamiento del Vrms en los movimientos positivos (hacia abajo) de la cuarta articulacin.
Con esta configuracin se registraron los datos de la Tabla 4.12. Estos resultados muestran
que el error promedio mximo entre el movimiento deseado y el movimiento promedio medido es
de 2.23 veces la resolucin terica calculada para cada articulacin. Se puede observar tambin
que la desviacin estndar demuestra un alto grado de precisin al inicio del rango de movimiento
el cual disminuye despus de 25.
95
Por ultimo para los movimientos angulares positivos o hacia arriba de la cuarta
articulacin se utiliz un Vrms de 2.9 V, disminuyendo el voltaje en los ltimos 5 al igual que en los
casos anteriores, de 2.9 V hasta 2.5 V. Este comportamiento se puede observar en la Figura 4.13.
Figura 4. 27 Comportamiento del Vrms en los movimientos negativos (hacia arriba) de la cuarta articulacin.
96
Los resultados se pueden observar en la Tabla 4.13. Estos resultados muestran que el error
promedio mximo entre el movimiento deseado y el movimiento promedio medido es de 1.16
veces la resolucin terica calculada para cada articulacin. En cuanto a la precisin, se observ en
menor grado en direccin hacia abajo, probablemente por la fuerza de gravedad y otros detalles
ya mencionados.
Movimiento Deseado Movimiento promedio ( ) medido Error Promedio
110
105
100
95
90
80
70
60
50
40
30
20
10
0
111.94
106.98
100.58
95.08
91.06
80.92
68.94
59.36
51
38.5
28.98
18.82
8.58
1.04
-1.94
-1.98
-0.58
-0.08
-1.06
-0.92
1.06
0.64
-1
1.5
1.02
1.18
1.42
-1.04
Desviacin Estndar
( )
2.023
1.779
2.259
1.889
1.217
1.782
2.005
1.186
2.913
1.258
2.268
1.634
2.977
1.028
Tabla 4.27 Resultados de los experimentos de exactitud en movimientos hacia arriba de la cuarta articulacin.
De acuerdo con los datos obtenidos en los experimentos anteriores y a la observacin del
comportamiento del OWI-535 modificado, se realizaron ajustes en los algoritmos del software que
calculan los movimientos de cada articulacin compensando como se muestra en la Tabla 4.14 en
los rangos de movimientos necesarios.
97
Articulacin
1
Direccin
Derecha
Izquierda
Abajo
Arriba
Abajo
3
Arriba
Abajo
4
Arriba
Rango de Movimiento
> 50
> 50
< 10
10 - 50
50 - 70
70 - 90
> 70
10 - 30
30 - 40
70 - 90
110 - 120
90 - 110
110 - 120
120 - 130
< 15
50 - 60
60 - 70
70 - 80
80 - 90
> 90
< 10
> 75
Pulsos a Compensar
+6
+6
+1
+5
+3
+1
-2
+1
+2
+2
+2
-1
-2
-3
+1
+1
+2
+1
+2
+1
-1
-1
Tabla 4. 28 Compensaciones de movimiento de las articulaciones del OWI-535 por rangos de movimientos angulares.
Eq. 4.3
98
Como se puede observar en la Figura 4.14, los puntos estn representados por colores, de
los cuales el azul y verde representan un grado de exactitud ms alto que en los puntos marcados
con colores amarillo y rojo que representan un nivel de exactitud ms bajo, mientras que los
puntos negros representan las zonas fuera del alcance del manipulador. La lnea negra representa
el origen (0), donde se encuentra el centro del manipulador.
Analizando ms a detalle la Figura 4.14 podemos observar que las posiciones alcanzables
por el manipulador que muestran un mayor grado de exactitud se encuentran justo en frente de la
posicin inicial, esto se debe a que el manipulador necesita de menos movimientos de sus
articulaciones para poder alcanzar estos puntos puesto que el error acumulativo es menor. Para
ver los resultados del experimento final de posicionamiento consultar el Apndice A11.
99
Captulo 5: Conclusiones
Captulo 5: Conclusiones
En este captulo se resumen todos los conceptos reunidos en el trabajo de investigacin
realizada para esta tesis que tiene por objetivo disear e implementar un sistema de control para
un robot manipulador de 4 grados de libertar tipo RRR.R. Asimismo se har mencin de los anlisis
de los resultados experimentales obtenidos para generar las conclusiones de la tesis. Tambin se
proporcionaran las posibles mejoras, recomendaciones de uso y trabajos a futuro que se puedan
aplicar al prototipo implementado permitiendo darle continuidad al trabajo realizado.
100
Captulo 5: Conclusiones
Captulo 5: Conclusiones
de campo, en la cual se realizaron las caracterizaciones del manipulador as como sus pruebas e
implementacin de los circuitos.
5.2.1 Conclusin de la investigacin documental
Se realizaron los objetivos especficos de la investigacin documental, primeramente
mediante la familiarizacin con los trminos relacionados con la robtica, la clasificacin de los
robots y los mtodos avanzados de robtica existentes. Para el clculo de la cinemtica directa del
robot manipulador se investig y se implement el mtodo Denavit-Hartenberg, el cual utiliza un
algoritmo que permite conocer la posicin del efector final de un manipulador en un plano
tridimensional mediante la posicin angular actual de sus articulaciones.
En segunda instancia, se realiz una revisin completa de libreras de software y lenguajes
de programacin. Debido al uso de matrices para resolver la cinemtica directa se utiliz Matlab
para la interfaz de usuario y el clculo, implementando la librera de robtica (RVC) creada por el
Dr. Peter Corke. Los clculos se realizaron con funciones de la librera mientras que la interfaz de
usuario se modific de una funcin llamada teach.m, la cual permite graficar y simular los
movimientos de un manipulador mediante barras de desplazamiento similar a un teach pendant.
5.2.2 Conclusin de la investigacin de campo
Primeramente, se realiz la validacin de las especificaciones del robot manipulador. Se
determin el espacio de trabajo del OWI-535 y se compar con las especificaciones del manual
tcnico. Se encontraron ligeros errores que sirvieron para tener en cuenta el espacio de trabajo
real del manipulador. Con base a este espacio y a las modificaciones realizadas en el espacio de
trabajo final para el OWI-535, se obtuvieron los resultados experimentales que podemos observar
en la Figura 3.37 y Figura 3.38 del Captulo 3. Tambin de acuerdo a las medidas obtenidas de cada
articulacin, fue posible implementar el mtodo Denavit-Hartenberg y el clculo de la cinemtica
directa con ayuda de Matlab y la librera de robtica.
El segundo objetivo de la investigacin de campo fue realizado al disear y construir un
sistema de control que permite la comunicacin con una computadora, controle los actuadores
del robot y reciba informacin de los movimientos realizados por estos a travs de sensores
pticos.
Para cumplir este objetivo el robot manipulador fue modificado. Las cajas de reduccin
fueron adecuadas para la instalacin del opto-interruptor al igual que el segundo engrane, al cual
se le realizaron ocho perforaciones para obtener la mejor resolucin posible. Debido a las medidas
de la circunferencia en la cual se realizaron las perforaciones se calcul la resolucin, la cual
resulto en 1.7 por segmento de los dientes del engrane.
Para controlar la direccin de los motores actuadores fueron utilizados los C.I. L293B y
L293D los cuales contienen dos puentes H y son controlados mediante un microcontrolador
PICf877a. Debido a que el microcontrolador solo cuenta con un ncleo de procesamiento el OWI535 modificado es capaz de realizar solo un movimiento a la vez. Para controlar las direcciones de
movimiento se utilizaron los dos puertos, por lo que la seal de direccin se enva a todos los
102
Captulo 5: Conclusiones
puente H y se controla el movimiento de cada motor mediante una terminal de activacin (Enable)
con la que cada L293 cuenta.
Se utiliz el PIC16f877a para realizar la tarea del conteo de los segmentos para determinar
la posicin de las articulaciones del OWI-535 as como para su comunicacin serial asncrona con
una computadora. Para el conteo de revoluciones del engrane el firmware detecta los cambios de
estado del opto-interruptor para aprovechar todos los espacios del engrane y no solo contabilizar
los orificios. Para esto se tiene en cuenta que el dimetro de los orificios tanto la distancia de los
espacios solidos entre ellos es igual. Para realizar un movimiento el firmware se pone en un estado
de escucha, la computadora enva el comando correspondiente para mover, seguido de las
posiciones de cada articulacin, el firmware almacena en variables las posiciones actuales del
OWI-535 y realiza una resta, donde el resultado es la cantidad de pulsos a mover y el signo del
resultado es la direccin del movimiento.
El OWI-535 cuenta con motores de CD para mover cada una de sus articulaciones, lo cual
dificulta la tarea de la manipulacin de los movimientos debido a que las revoluciones de los
motores no son del todo precisas, aun siendo contabilizadas las revoluciones del engrane. Como
solucin se disminuy la velocidad de las revoluciones con el uso de pulsos de onda cuadrada
(PWM) emitido por el PIC16f877a e interpretado por el puente H L293. Este mtodo modifica el
Vrms dependiendo del ancho de los pulsos, lo cual disminuye o aumenta la aceleracin en el motor.
Para mejorar la precisin y exactitud se lleg a la conclusin de que el OWI-535 siempre
deber empezar a moverse desde un mismo punto, para ello se instalaron micro-interruptores a
manera de fin de carro para determinar una posicin inicial (Home), la cual se puede observar en
la Figura 3.22 (posicin Home del OWI-535 modificado). Para restablecer a la posicin Home, el
firmware enva una seal de 5 V directamente a los controladores de los motores hasta que el
micro-interruptor correspondiente sea activado.
El tercer objetivo especfico es el desarrollo de un sistema operativo de control que
considere la cinemtica del robot, para poder comandarlo introduciendo coordenadas cartesianas
en un espacio tridimensional. Otro objetivo especfico es el desarrollo de software de
comunicacin serial y la creacin de una interfaz grfica que permitan realizar tareas de manera
simulada, con una visualizacin previa, y posteriormente sean ejecutadas por el robot OWI-535.
Ambos objetivos fueron cumplidos a travs del desarrollo de una interfaz para controlar el
manipulador OWI-535 mediante la ayuda de un librera de Matlab llamada Robotics Vision and
Control (RVC), desarrollada por el Dr. Peter Corke. Dicha librera contiene mtodos para la
solucin de diversos problemas de robtica, entre los cuales se encuentra la cinemtica directa e
inversa, as como tambin una interfaz de usuario para simular los movimientos de robots
manipuladores. La librera almacena en una matriz los parmetros D-H para realizar los clculos de
la posicin del efector final en un plano tridimensional. Cada elemento del manipulador es
representado por un vector, mientras cada articulacin es representada por un cilindro en
posicin hacia donde se realiza la rotacin. La librera cuenta con una funcin que simula un teach
pendant, la cual fue especificada para crear una simulacin del control del OWI-535 modificado. La
103
Captulo 5: Conclusiones
interfaz fue adaptada para enviar los datos de las articulaciones al microcontrolador de forma
serial asncrona a 9600 Baudios. Entre otras cosas, esta interfaz tambin fue modificada para ser
capaz de leer scripts en archivos de texto con la extensin .txt, estos scripts pueden contener los
comandos y posiciones a mover y utilizan una palabra de terminacin fin para detectar el final
del script. Esta funcin se puede utilizar en movimientos secuenciales para realizar tareas
repetitivas de posicionamiento.
Finalmente, un ltimo objetivo especfico de la investigacin de campo, fue la validacin
del sistema completo a travs de pruebas experimentales que permitieran medir la precisin y la
exactitud de los movimientos del robot manipulador OWI-535 modificado. Este objetivo fue
cumplido cabalmente al realizar las diversas mediciones experimentales y el clculo estadstico,
que permitieron afinar los parmetros mencionados, mediante la utilizacin de tcnicas de control
de motores de CD, como PWM y la creacin de rampas en el voltaje eficaz introducido a los
motores, y de esta obtener los resultados presentados a travs del Captulo 4.
104
Captulo 5: Conclusiones
105
Captulo 5: Conclusiones
5.4 Recomendaciones
Cuando se habla de un manipulador robtico los dos factores ms importantes del tema es
la precisin y la exactitud, para mantener el correcto funcionamiento del OWI-535 modificado se
debe tomar en cuenta los siguientes puntos:
a) Respetar el espacio de trabajo indicado teniendo en cuenta las zonas donde se demuestra
mayor exactitud para realizar trabajos de posicionamiento ms exactos
b) Debido a la estructura del OWI-535 este puede cargar pesos no mayores a 100 g, levantar un
peso superior podra ocasionar un colapso por la falta de equilibrio o una falla en los
movimientos de las articulaciones
c) El ancho de los objetos a manipular estn limitados por el ancho de la apertura de la
herramienta, se debe tener en cuenta trabajar con objetos de un ancho no mayor a 3.8 cm.
d) El OWI-535 modificado no es capaz de detectar por si solo la presencia de obstculos hasta
ahora, por lo que los clculos de los movimientos y sus articulaciones se deben realizar a
criterio del usuario para evitar una colisin con los objetos u obstculos.
e) En cuestiones elctricas, los circuitos estn diseados para funcionar con 5 VCD, aunque la
tarjeta DIR-735 que contiene al PIC16f877a se debe alimentar con un voltaje entre 6 VCD y
12VCD debido a su regulador LM7805 ya instalado, cualquier voltaje igual o menor a 5VCD
provocara un mal funcionamiento del microcontrolador.
f) En caso de que un motor no reciba la corriente necesaria para romper la inercia el puente H
emitir un sonido a 250 Hz para este caso. No es necesario realizar accin alguna en estos
casos, el firmware est diseado para detectar este problema y enviar toda la potencia posible
para romper la inercia del motor y efectuar as el movimiento deseado. Sin embargo, esto
puede afectar la exactitud del movimiento.
g) Para evitar daos por movimientos errneos se puede utilizar el botn de paro de emergencia
situado en la parte superior de la caja contenedora de los circuitos electrnicos, esto abrir la
lnea de alimentacin hacia el microcontrolador y todo movimiento se detendr.
h) Es muy recomendable restablecer el OWI-535 a su posicin inicial despus de cada
posicionamiento para una mayor exactitud y precisin.
i) La simulacin del manipulador en la interfaz de usuario de Matlab no se presenta en tiempo
real, los movimientos son almacenados y enviados uno a uno.
j) Los scripts para realizar trabajos repetitivos siempre deben de llevar la palabra de terminacin
fin, de lo contrario el ciclo no podra ser terminado y el programa continuara su ejecucin
sin poder realizar otra accin.
5.5 Comparativa
Existen diversos robots manipuladores en el mercado con caractersticas muy superiores al
OWI-535 modificado pero tambin sus precios pueden ser muy elevados, incluso aquellos robots
utilizados para fines educativos. El OWI-535 por su bajo costo ha adquirido importancia en las
investigaciones para su uso educativo, aunque en el mercado el OWI-535 se encuentra a la venta
como un juguete didctico, este manipulador cuenta con una arquitectura funcional y sencilla la
cual le permite operar tal cual lo hara cualquier manipulador robtico a un costo ms accesible.
106
Captulo 5: Conclusiones
Caractersticas
OWI-535
Original
Sistema de
control
Costo
Lazo
Abierto
OWI-535
con
interfaz
USB
Lazo
Abierto
Bajo
Bajo
Motores
Sensores
Cdigo abierto
Microcontrolador
Software
Dispositivo de
control
Simulacin
Ejecucin de
Tareas
Repetitivas
Programadas
Tele-operado
CD
CD
(Originales) (Originales)
OWI-535
(PrenpraneerachKulvanit)
Lazo Cerrado
Bajo
Bajo
Medio
Alto
CD
(Originales)
CD
(Originales)
CD
(Originales)
CD 2224SR
No
Optointerruptores
Encoders
Magnticos IE2512
No
No
No
No
No
Optointerruptores
No
No
Si
No
No
PIC16f877a
PIC
18f4550
Propeller
Faulhaber
Motion
Controller MCDC
3006
No
OWI
Robotic
Arm
Basado en
Matlab con
Libreras de
Robtica
Basado en
Visual
Basic 6.0
Basado en
Matlab
Faulhaber
Motion Manager
Control
Cableado
PC
PC
PC
Joystick y PC
PC
No
No
Si
No
No
Si
No
No
Si
Si
No
No
No
No
Posible
No
especifica
No Especifica
No Especifica
Tabla 5.2 Comparativa de las Versiones del OWI-535 modificada por distintos autores y los fabricantes del
manipulador.
107
Captulo 5: Conclusiones
Como se puede observar en la Tabla 5.1, este trabajo de tesis presenta ventajas y
beneficios a un costo econmico en comparacin a los dems trabajos existentes. El sistema de
control diseado e implementado en esta tesis tiene mltiples ventajas al ser un sistema de lazo
cerrado, el cual es manejado por un sistema basado en un microcontrolador PIC que controla
manejadores de motores de CD, para las articulaciones del robot, y entradas de sensores pticos e
interruptores como sensores de posicin, haciendo necesario realizar mnimas modificaciones al
robot manipulador OWI-535 para colocarlos. Todo el hardware utilizado es de bajo costo y al
alcance con cualquier proveedor local o nacional.
Adems, el sistema de control presenta las ventajas de comunicarse con una computadora
a travs del puerto USB, tiene una interfaz grfica de usuario donde se despliega la simulacin de
la posicin de los actuadores del manipulador y su herramienta final, en su espacio de trabajo
tridimensional, puede ejecutar scripts para que el robot pueda ser programado y realice tareas
repetitivas, entre otras ms. El software se desarroll de forma libre y utilizando libreras
gratuitas, de manera que pueda ser modificado a conveniencia, as como fueron modificadas las
libreras de robtica para definir la cinemtica del manipulador y la interfaz grfica de usuario,
entre otras cosas. Siendo codificado en un lenguaje de programacin acadmico como es Matlab.
108
Captulo 5: Conclusiones
109
Apndice
Bibliografa
Acteck. (2014). Fuentes de poder Acteck. Recuperado el 28 de Marzo de 2014, de Sitio web de
Acteck: http://www.acteck.com
Alvarado, I. (1999). Simulacin y Control de Procesos con Programacin Grfica.
Angulo Usategui, J. M., Romero Yesa, S., & Angulo Martnez, I. (2006). Microcontroladores PIC.
Diseo prctico de aplicaciones :segunda parte: PIC 16F87X. McGraw-Hill.
Barrientos, A., Pen, L. F., Aracil, R., & Balaguer, C. (1997). Fundamentos de Robtica. McGrawHill.
Cnepa, G. (2010). Diseo de un controlador para un brazo robtico a escala.
Chang, P. H. (1987). Technical Report 1022: Analysis and Control of Robot Manipulators with
Kinematic Redundancy. MIT Artificial Intelligence Laboratory.
Corke, P. (2011). Robotics, Vision and Control Fundamental Algorithms in MATLAB. Springer.
Corke, P. (2014). Robotics Toolbox. Recuperado el 2 de abril de 2014, de Pagina personal Dr. Peter
Corke: https://www.petercorke.com/Robotics_Toolbox.html
Craig, J. J. (2006). Robtica 3ra Edicin. PEARSON.
Denavit, J., & Hartenberg, R. S. (1955). A kinematic notation for lower-pair mechanisms based on
matrices.
Electronica Estudio. (2015). Productos PICAXE. Recuperado el 20 de Enero de 2015, de Sitio Web
de Electronica Estudio: www.electronicaestudio.com/picaxe.htm
Fu, K. S., Gonzlez, R. C., & Lee, C. S. (1998). Robtica: Control, Deteccin, Visin e Inteligencia.
McGraw-Hill.
Gajski, D. D. (2013). Specification and design of embedded software/hardware systems.
IES Bellavista. (2013). Introduccin a la Electrnica Digital.
Labcenter. (2014). Proteus. Recuperado el 2 de Abril de 2014, de Sitio web de Labcenter:
http://www.labcenter.com
Mathworks. (2014). Matlab. Recuperado el 2 de febrero de 2014, de Sitio Web de Matworks:
http://www.mathworks.com/products/matlab
Newark. (2014). Catlogo Neutrik. Recuperado el 28 de marzo de 2014, de Sitio Web de Newark:
http://www.newark.com/neutrik
110
Apndice
111
Apndice
Apendice
A 1.- rea de trabajo del robot manipulador OWI-535 propuesta por
el fabricante
El espacio de trabajo es el lmite de posiciones en el espacio que el robot puede alcanzar.
Figura A1.1 espacio de trabajo del manipulador OWI-535, de acuerdo a sus especificaciones de fbrica (parte 1).
Figura A1.2 espacio de trabajo del manipulador OWI-535, de acuerdo a sus especificaciones de fbrica (parte 2).
112
Apndice
Analog Features:
10-bit, up to 8-channel Analog-to-Digital
Converter (A/D)
Brown-out Reset (BOR)
Analog Comparator module with:
- Two analog comparators
- Programmable on-chip voltage reference
(VREF) module
- Programmable input multiplexing from device
inputs and internal voltage reference
- Comparator outputs are externally accessible
Special Microcontroller Features:
100,000 erase/write cycle Enhanced Flash
program memory typical
1,000,000 erase/write cycle Data EEPROM
memory typical
Data EEPROM Retention > 40 years
Self-reprogrammable under software control
In-Circuit Serial Programming (ICSP)
via two pins
Single-supply 5V In-Circuit Serial Programming
Watchdog Timer (WDT) with its own on-chip RC
oscillator for reliable operation
Programmable code protection
Power saving Sleep mode
Selectable oscillator options
In-Circuit Debug (ICD) via two pins
CMOS Technology:
Low-power, high-speed Flash/EEPROM
technology
Fully static design
Wide operating voltage range (2.0V to 5.5V)
Commercial and Industrial temperature ranges
Low-power consumptio
113
Apndice
114
Apndice
Thermal Shutdown
High-Noise-Immunity Inputs
SGS L293D
115
Apndice
'pin de transmisin
'pin de recepcin
posmt
posm1
posm2
posm3
posm4
var
var
var
var
var
byte
byte
byte
byte
byte
'variable
'posicin
'posicin
'posicin
'posicin
sgn1
sgn4
sgnm1
sgnm4
var
var
var
var
bit
bit
bit
bit
para
para
(1 =
(1 =
m1
m4
-, 0 = +)
-, 0 = +)
sgnm1 = 0
sgnm4 = 0
vim1
vim2
vim3
vim4
var
var
var
var
byte
byte
byte
byte
116
Apndice
vim2 = 1
vim3 = 1
vim4 = 1
'enable de
m1 var
m2 var
m3 var
m4 var
m5 var
motores
portd.1
portd.5
portd.4
portd.3
portd.2
'movimiento a la izquierda
'movimiento a la derecha
porte.2
porte.1
porte.0
porta.5
porta.4
var
var
var
var
var
porte.2
porte.1
porte.0
porta.5
porta.4
'switch
'switch
'switch
'switch
'switch
reset
reset
reset
reset
reset
para
para
para
para
para
M1
M2
M3
M4
M5(pinza)
'variable de stop
'bandera de error
117
Apndice
contador = 0
'----------------configuracin de tx de datos---------------------------high tx
'antes de transmitir enviar un valor alto
'de lo contrario enva basura
118
Apndice
119
Apndice
if parametro != 0 then
gosub mover
endif
fsg = 0
next motor
serout2 tx, 84, ["n "]
contador = 0
goto inicio
'''''''''''''''''''''''''subrutinas''''''''''''''''''''''''''''''
conteo:
espera = 0
'reinicio de conteo de timeout
gosub seleccion
'selecciona informacin del motor (posicin)
comparador = info 'almacena en variable comparadora
pause 50
'frecuencia de muestreo
inconteo:
espera = espera + fm
'timeout
if espera >= 250 then
serout2 tx, 84, ["e "]
'
pause 50
'
if (flag = 0) then
hpwm 1,250,250
else
hpwm 2,250,250
endif
endif
'
gosub seleccion
'hace la seleccin de los datos
'del motor
if (info = comparador) then
'paro de emergencia mientras
'info no cambie
'''''''''''''''''''''''''''''''''''''''''''''''''''
serin2 rx,84,fm,inconteo,[paro] 'espera la frecuencia de
'muestreo seleccionada y
'regresa a inconteo si no
'recibe informacin
''''''''''''''''''''''''''''''''''''''''''''''''''
else
'cuando info cambie de estado
contador = contador +1
'contador se incrementa en 1
120
Apndice
endif
return
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
mover:
contador = 0
select case motor
case 1
high m1
case 2
high m2
case 3
high m3
case 4
high m4
end select
if (flag = 0) then
while parametro > contador
'seleccionar potencia
select case motor
case 1
potencia = 200
power
= 145
case 2
potencia = 140
power
= 130
case 3
potencia = 145
power
= 100
case 4
potencia = 130
power
= 130
end select
'romper inercia
if contador = 0 then
potencia = 250
endif
'reducir velocidad al llegar
meta = parametro - contador
select case meta
case 1
potencia = power - 20
case 2
potencia = power - 15
case 3
potencia = power - 10
case 4
potencia = power - 5
case 5
potencia = power
end select
hpwm 1,potencia,250
'ejecuta subrutina para validar pulsos
121
Apndice
122
Apndice
return
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
reset:
rstm2:
while porte.1 = 0
high izq
high m2
serin2 rx,84,170,rstm2,[paro]
wend
low m2
low izq
posm2 = vim2
rstm4:
while porta.5 = 0
high izq
high m4
serin2 rx,84,170,rstm4,[paro]
wend
low m4
low izq
posm4 = vim4
rstm3:
high der
while porte.0 = 0
high m3
serin2 rx,84,190,rstm3,[paro]
wend
low m3
low der
posm3 = vim3
rstm1:
123
Apndice
124
Apndice
case 0
fm = 5
power = 200
case 1
fm = 5
power = 200
end select
case 4
info = info4
select case flag
case 0
fm = 5
power = 200
case 1
fm = 5
power = 200
end select
end select
return
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
posiciona:
select case motor
'selecciona el motor
case 1
'si existe un cambio de signo (0 = si, 1 = no)
select case fsg
case 0
'si la posicin est en su inicio
if posm1 = 1 then
'si la bandera de signo del m1 es igual al
'signo de la direccin
if sgnm1 = flag then
'si la bandera es igual a 0 (derecha)
if (flag = 0 ) then
'incrementa en 1 la posicin del m1
posm1 = posm1 + 1
else
'si la bandera es igual a 1 (izq)
'decrementa en 1 la posicin de m1
posm1 = posm1 - 1
endif
'si el signo de direccin de m1 es diferente
'a la direccin de movimiento
else
'signo de m1 es igual a signo de
'direccin
sgnm1 = flag
'no cambia el signo
fsg = 1
endif
'si la posicin del m1 no est en inicio
else
'si la direccin es 0 (der)
if (flag = 0 ) then
'incrementa la posicin m1 en 1
125
Apndice
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
abrirp:
espera = 0
126
Apndice
error = 0
while rst5 = 0 or error = 1
high der
high m5
pause 50
espera = espera + 1
if espera = 100 then
error = 1
endif
wend
low der
low m5
return
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
cerrarp:
error = 0
espera = 0
while espera < 25 'espera 1.2 S mientras se cierra
high izq
high m5
pause 50
espera = espera + 1
wend
low izq
low m5
if rst5 = 1 then
error = 1
endif
return
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
calcular:
select case motor
case 1
'si el signo del motor es igual al signo recibido
if sgn1 = sgnm1 then
if sgn1 = 1 then
'si el ngulo recibido es mayor al ngulo del
'motor
if angulo >= posmt then
'parmetro de movimiento es igual a la
'diferencia
parametro = angulo - posmt
'direccin movimiento a la izquierda
flag = 1
'si el ngulo recibido es menor al ngulo del
'motor
else
'parmetro de movimiento es igual a la
'diferencia
parametro = posmt - angulo
'direccin movimiento a la derecha
flag = 0
endif
'si el signo es positivo
127
Apndice
case else
'calcula cantidad de pulsos a mover
if angulo >= posmt then
parametro = angulo - posmt
flag = 0
else
parametro = posmt - angulo
flag = 1
endif
end select
return
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Subrutina de paro de emergencia
alto:
'deshabilita las salidas de los enable
CCP2CON = %00000000
low izq
CCP1CON = %00000000
low der
low m1
low m2
128
Apndice
end
129
Apndice
=
=
=
=
=
7;
9.05;
11.38;
11.5;
1.5;
%
%
%
%
offset de
distancia
distancia
distancia
la
L1
L2
L3
base
entre segunda y tercera articulacin
entre tercera y cuarta articulacin
entre cuarta y herramienta
Mtodo de obtencin
Introducir secuencia de transformaciones de abajo hacia arriba
de acuerdo al mtodo de la seccin 7.5.2 (tambin ver el ejemplo de la
figura 7.14), ejes referenciales con la regla de la mano derecha,
poniendo el eje z hacia arriba (pulgar), luego se realizan las
transformaciones, sin cambiar el eje, hacia arriba, hasta terminar
en la herramienta:
130
Apndice
131
Apndice
132
Apndice
%% TODO:
%% make the sliders change the animation while moving
%% http://www.mathworks.com/matlabcentral/newsreader/view_thread/159374
%% 1. download FINDJOBJ from the file exchange:
http://www.mathworks.com/matlabcentral/fileexchange/14317
%% 2. hSlider = uicontrol('style','slider', ...); %create the slider, get
its Matlab handle
%% 3. jSlider = findjobj(hSlider,'nomenu'); %get handle of the underlying
java object
%% 4. jSlider.AdjustmentValueChangedCallback = @myMatlabFunction; %set
callback
%%
%% Note: you can also use the familiar format:
%% set(jSlider,'AdjustmentValueChangedCallback',@myMatlabFunction)
%%
%% Feel free to explore many other properties (and ~30 callbacks)
%% available in jSlider but not in its Matlab front-end interface
hSlider.
%%
%% Warning: FINDJOBJ relies on undocumented and unsupported Matlab/Java
%% functionality.
function handle = teach(r, varargin)
bgcol = [135 206 250]/255;
opt.degrees = false;
opt.q0 = [];
opt.orientation = {'approach', 'eul', 'rpy'};
% TODO: options for rpy, or eul angle display
opt = tb_optparse(opt, varargin);
% drivebot(r, q)
% drivebot(r, 'deg')
n = r.n;
width = 300;
height = 40;
qlim = r.qlim;
if any(isinf(qlim))
error('for prismatic axes must define joint coordinate limits,
set qlim properties for prismatic Links');
end
if isempty(opt.q0)
q = zeros(1,n);
else
q = opt.q0;
end
% set up scale factor, from actual limits in radians/metres to
display units
qscale = ones(r.n,1);
for i=1:r.n
L=r.links(i);
133
Apndice
end
handles.qscale = qscale;
handles.orientation = opt.orientation;
T6 = r.fkine(q);
fig = figure('Units', 'pixels', ...
'Position', [0 -height width+80 height*(n+2)+40], ...
'BusyAction', 'cancel', ...
'HandleVisibility', 'off', ...
'Color', bgcol);
set(fig,'MenuBar','none')
delete( get(fig, 'Children') )
% first we check to see if there are any graphical robots of
% this name, if so we use them, otherwise create a robot plot.
rhandles = findobj('Tag', r.name);
% attempt to get current joint config of graphical robot
if ~isempty(rhandles)
h = get(rhandles(1), 'UserData');
if ~isempty(h.q)
q = h.q;
end
end
% now make the sliders
for i=1:n
% slider label
uicontrol(fig, 'Style', 'text', ...
'Units', 'pixels', ...
'BackgroundColor', bgcol, ...
'Position', [0 height*(n-i)+40 width*0.1 height*0.4], ...
'String', sprintf('q%d', i));
% slider itself
q(i) = max( qlim(i,1), min( qlim(i,2), q(i) ) ); % clip to range
handles.slider(i) = uicontrol(fig, 'Style', 'slider', ...
'Units', 'pixels', ...
'Position', [width*0.1 height*(n-i)+40 width*0.7 height*0.4],
...
'Min', qlim(i,1), ...
'Max', qlim(i,2), ...
'Value', q(i), ...
'Tag', sprintf('Slider%d', i));
% text box showing slider value, also editable
handles.edit(i) = uicontrol(fig, 'Style', 'edit', ...
'Units', 'pixels', ...
'Position', [width*0.8 height*(n-i-0.1)+40 width*0.2
height*0.7], ...
'String', num2str(qscale(i)*q(i)), ...
134
Apndice
end
set(handles.slider(1))
% robot name text box
uicontrol(fig, 'Style', 'text', ...
'Units', 'pixels', ...
'FontSize', 20, ...
'HorizontalAlignment', 'left', ...
'Position', [0 height*(n+1.2)+40 0.8*width 0.8*height], ...
'BackgroundColor', 'white', ...
'String', r.name);
% X
uicontrol(fig, 'Style', 'text', ...
'Units', 'pixels', ...
'BackgroundColor', bgcol, ...
'Position', [0 height*(n+0.5)+40 0.06*width height/2], ...
'BackgroundColor', 'yellow', ...
'FontSize', 10, ...
'HorizontalAlignment', 'right', ...
'String', 'x:');
handles.t6.t(1) = uicontrol(fig, 'Style', 'edit', ...
'Units', 'pixels', ...
'Position', [0.06*width height*(n+0.5)+40 width*0.2 height*0.6],
...
'String', sprintf('%.3f', T6(1,4)), ...
'Tag', 'T6');
% Y
uicontrol(fig, 'Style', 'text', ...
'Units', 'pixels', ...
'BackgroundColor', bgcol, ...
'Position', [0.26*width height*(n+0.5)+40 0.06*width height/2],
...
'BackgroundColor', 'yellow', ...
'FontSize', 10, ...
'HorizontalAlignment', 'right', ...
'String', 'y:');
handles.t6.t(2) = uicontrol(fig, 'Style', 'edit', ...
'Units', 'pixels', ...
'Position', [0.32*width height*(n+0.5)+40 width*0.2 height*0.6],
...
'String', sprintf('%.3f', T6(2,4)));
% Z
uicontrol(fig, 'Style', 'text', ...
'Units', 'pixels', ...
'BackgroundColor', bgcol, ...
'Position', [0.52*width height*(n+0.5)+40 0.06*width height/2],
...
'BackgroundColor', 'yellow', ...
'FontSize', 10, ...
135
Apndice
136
Apndice
137
Apndice
138
Apndice
%boton de rutina
rutina = uicontrol(fig, 'Style', 'pushbutton', ...
'Units', 'pixels', ...
'FontSize', 12, ...
'Position', [1.03*width height*n-105 0.2*width 0.9*height], ...
'CallBack', @(src,event) rutina_callback(r, abrir, cerrar), ...
'BackgroundColor', 'green', ...
'ForegroundColor', 'white', ...
'String', 'Rutina');
% now assign the callbacks
for i=1:n
% text edit box
set(handles.edit(i), ...
'Interruptible', 'off', ...
'Callback', @(src,event)teach_callback(src, r.name, i,
handles));
% slider
set(handles.slider(i), ...
'Interruptible', 'off', ...
'BusyAction', 'queue', ...
'Callback', @(src,event)teach_callback(src, r.name, i,
handles));
% if findjobj exists use it, since it lets us get continous
callbacks while
% a slider moves
if (exist('findjobj', 'file')>0) && verLessThan('matlab', '8')
&& ~ispc
disp('using findjobj');
pause(0.1);
drawnow
jh = findjobj(handles.slider(i), 'nomenu');
%jh.AdjustmentValueChangedCallback = {@sliderCallbackFunc,
r.name, i};
jh.AdjustmentValueChangedCallback =
@(src,event)sliderCallbackFunc(src, handles.slider(i), r.name, i,
handles);
end
end
if isempty(rhandles)
figure
r.plot(q);
end
if nargout > 0
handle = fig;
end
end
139
Apndice
140
Apndice
% plot it
141
Apndice
end
% compute the robot tool pose
T6 = robot.fkine(q);
% convert orientation to desired format
switch handles.orientation
case 'approach'
orient = T6(:,3);
% approach vector
case 'eul'
orient = tr2eul(T6);
case'rpy'
orient = tr2rpy(T6);
end
% update the display in the teach window
for i=1:3
set(handles.t6.t(i), 'String', sprintf('%.3f', T6(i,4)));
set(handles.t6.r(i), 'String', sprintf('%.3f', orient(i)));
end
robot.T = T6;
robot.notify('Moved');
%drawnow
end
function record_callback(robot, handles)
rhandles = findobj('Tag', robot.name);
if ~isempty(rhandles)
h = get(rhandles(1), 'UserData'); % get the plot graphics
h.q
robot.record(h.q);
end
end
function reset_callback()
global rst
%configurar serial
s5=serial('COM5');
set(s5,'Baudrate',9600); % se configura la velocidad a 9600 Baudios
set(s5,'StopBits',1); % se configura bit de parada a uno
set(s5,'DataBits',8); % se configura que el dato es de 8 bits, debe
estar entre 5 y 8
set(s5,'Parity','none'); % se configura sin paridad
set(s5,'Terminator','CR');% caracter con que finaliza el envo
(cr/ls)
set(s5,'InputBufferSize' ,1); % n es el nmero de bytes a recibir
set(s5,'Timeout',8); % 5 segundos de tiempo de espera
142
Apndice
try
%abrir serial
fopen(s5);
disp('Reset')
%enviar 'rst' de manera asincrona
fprintf(s5, '%s\n','rst', 'async');
catch err
disp(err);
end
pause(0.2);
fclose(s5);
delete(s5);
clear s5;
disp('El OWI-535 se ha restablecido a su posicin inicial')
rst1 = 1;
rst = rst1;
end
function send_callback(robot)
global rst
%row = renglones de robot.qteach
%col = columnas de robot.qteach
%error = bandera de error
%time = tiempo de espera
%configurar serial
s5=serial('COM5');
set(s5,'Baudrate',9600); % se configura la velocidad a 9600 Baudios
set(s5,'StopBits',1); % se configura bit de parada a uno
set(s5,'DataBits',8); % se configura que el dato es de 8 bits, debe
estar entre 5 y 8
set(s5,'Parity','none'); % se configura sin paridad
set(s5,'Terminator','CR');% caracter con que finaliza el envo
(cr/ls)
%set(s5,'OutputBufferSize',1); % n es el nmero de bytes a enviar
set(s5,'InputBufferSize' ,1); % n es el nmero de bytes a recibir
set(s5,'Timeout',20); % 5 segundos de tiempo de espera
fopen(s5);
[row, col]= size(robot.qteach);
%limpia variable de ultimo envio
error = 0;
lastsend1 = 1;
lastsend2 = 1;
lastsend3 = 1;
for c1=1:row
%envia comando para mover
try
143
Apndice
%fprintf(puertoserial,
144
Apndice
send = round(send);
%redondea el resultado para
obtener solo enteros
%si send es un numero negativo eliminamos el signo
%(posteriormente se envia como una bandera)
neg = sign(send);
if neg == -1
send = abs(send);
%send = send - (2*send);
% de lo contrario si es un numero positivo o cero se le
% suma 1 puesto que en el sistema del firmware no existe
el
% 0
else
send = send + 1;
end
%compensaciones-----------%si existe un cambio de direccion de agrega un pulso al
%movimiento para ajustar el opto-interruptor
%verifica que no sea el primer movimiento
if c1 == 1
%si es el primer movimiento asigna las ultimas
%direcciones de movimiento siguientes a cada
%aritculacion
dirm{1} = 0;
%direccion para m1 depende del
usuario
dirm{2} = 1;
dirm{3} = -1;
dirm{4} = 1;
lastgrad = 0;
end
145
Apndice
146
Apndice
%
%------------------------------------------------------disp(send)
%envia numero de pulsos
try
%envia cantidad de pulsos a mover
fprintf(s5, '%d\n',send, 'async');
%fprintf(puertoserial, formato(decimal), obj a enviar, modo asincrono)
catch err
disp(err);
end
%si es M1 o M4 envia signo
if c2 == 1 || c2 == 4
if robot.qteach(c1, c2) >= 0
sgn = 0; %(+)
else
sgn = 1; %(-)
end
pause(0.2)
try
disp(sgn)
fprintf(s5, '%d\n',sgn, 'async');
catch err
disp(err)
end
end
%esperar caracter de finalizacion para el siguiente
movimiento
if c2 == col
resp='';
time = 0;
while ~strcmp(resp,'n')
resp = fscanf(s5, '%s', 1);
if strcmp(resp,'e')
disp('Error')
resp = 'n';
error = 1;
end
time = time + 1;
if strcmp(resp,'') && time == 2
disp(resp)
disp('Tiempo de espera agotado')
resp = 'n';
error = 1;
end
147
Apndice
end
end
fclose(s5);
delete(s5);
clear s5;
end
function abrir_callback(cerrar, abrir)
%configurar serial
s5 = serial('COM5');
set(s5,'Baudrate',9600); % se configura la velocidad a 9600 Baudios
set(s5,'StopBits',1); % se configura bit de parada a uno
set(s5,'DataBits',8); % se configura que el dato es de 8 bits, debe
estar entre 5 y 8
set(s5,'Parity','none'); % se configura sin paridad
set(s5,'Terminator','CR');% caracter con que finaliza el envo
(cr/ls)
set(s5,'InputBufferSize' ,1); % n es el nmero de bytes a recibir
set(s5,'Timeout',15); % 15 segundos de tiempo de espera
%envia seal para abrir pinza
fopen(s5);
%enviar 'abp' de manera asincrona
try
fprintf(s5, '%s\n','abp', 'async');
catch err
disp(err)
end
%espera respuesta
resp='';
error = 0;
time = 0;
while ~strcmp(resp,'n')
resp = fscanf(s5, '%s', 1);
if strcmp(resp,'e')
resp = 'n';
error = 1;
end
time = time + 1;
if time == 2
disp(resp)
disp('Tiempo de espera agotado')
resp = 'n';
error = 1;
end
end
%si la pinza se abrio correctamente
if error ~= 1
148
Apndice
else
%de lo contrario muestra mensaje de error
disp('Error de apertura de la herramienta')
end
fclose(s5);
delete(s5);
clear s5;
end
function cerrar_callback(abrir, cerrar)
%configurar serial
s5 = serial('COM5');
set(s5,'Baudrate',9600); % se configura la velocidad a 9600 Baudios
set(s5,'StopBits',1); % se configura bit de parada a uno
set(s5,'DataBits',8); % se configura que el dato es de 8 bits, debe
estar entre 5 y 8
set(s5,'Parity','none'); % se configura sin paridad
set(s5,'Terminator','CR');% caracter con que finaliza el envo
(cr/ls)
set(s5,'InputBufferSize' ,1); % n es el nmero de bytes a recibir
set(s5,'Timeout',15); % 15 segundos de tiempo de espera
%envia seal para cerrar pinza
fopen(s5);
%enviar 'abp' de manera asincrona
try
fprintf(s5, '%s\n','crp', 'async');
catch err
disp (err)
end
%espera respuesta
resp='';
error = 0;
time = 0;
while ~strcmp(resp,'n')
resp = fscanf(s5, '%s', 1);
if strcmp(resp,'e')
resp = 'n';
error = 1;
end
time = time + 1;
if time == 2
disp(resp)
disp('Tiempo de espera agotado')
resp = 'n';
error = 1;
end
end
149
Apndice
150
Apndice
end
end
function clear_callback(robot)
robot.qteach = [];
disp('Se Eliminaron los Movimientos Almacenados')
end
function salir_callback(fig)
reset_callback
delete(fig)
close
end
function sliderCallbackFunc(src, h, name, joint, handles)
persistent busy
% this is really ugly but it works
if busy
return
end
if get(src,'ValueIsAdjusting') == 1
busy = true;
try
teach_callback(h, name, joint, handles);
catch me
fprintf('*******\n')
busy = false;
return
end
end
busy = false;
end
151
Apndice
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
3 Pulsos
ngulo de
movimiento
5.6
5.1
5
5.5
5.1
5.1
5.3
4.5
5.9
5.1
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
Valor ideal
5.1
Promedio
5.22
Desviacin Estndar
0.3823901
Error
-0.12
1
2
3
4
5
6
7
8
9
10
2 Pulsos
ngulo de
movimiento
2.8
3.1
3.9
3.5
3.2
3.4
3.7
3.3
3.1
3.9
4 Pulsos
ngulo de
movimiento
6.9
7.1
6.9
7.1
6.3
7
7.3
7
6.8
7
Valor ideal
3.4
Promedio
3.39
Desviacin Estndar
0.36347
Error
0.01
Valor ideal
6.8
Promedio
6.94
Desviacin Estndar
0.2633122
Error
-0.14
152
Apndice
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
5 Pulsos
ngulo de
movimiento
7.9
8.9
8.5
8.4
8.6
8.8
8.7
8.9
8
8.9
7 Pulsos
ngulo de
movimiento
10.9
12.1
11.5
11.7
11.2
12.3
11.8
11.3
11.1
12.4
9 Pulsos
ngulo de
movimiento
15.7
15.2
14.9
15.6
15.7
14.8
15.1
15.3
15.9
14.7
Articulacin Movimiento
Valor ideal
8.5
Promedio
8.56
Desviacin Estndar
0.3657564
Error
-0.06
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
Valor ideal
11.9
Promedio
11.63
Desviacin Estndar
0.518652
Error
0.27
Valor ideal
15.3
Promedio
15.29
Desviacin Estndar
0.42018514
Error
0.01
1
2
3
4
5
6
7
8
9
10
6 Pulsos
ngulo de
movimiento
10.4
9.9
10.3
10.1
10.2
10.5
10.4
9.8
10.7
10.4
8 Pulsos
ngulo de
movimiento
14.3
12.9
13.3
13.2
13.8
14.1
13.2
13.2
13.6
13.9
10 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
16.1
2
17.3
3
17
4
17.1
5
17.2
1
6
16
7
16.9
8
17.1
9
17.3
10
17.5
Valor ideal
10.2
Promedio
10.27
Desviacin Estndar
0.2750757
Error
-0.07
Valor ideal
13.6
Promedio
13.55
Desviacin Estndar
0.46007246
Error
0.05
Valor ideal
17
Promedio
16.95
Desviacin Estndar
0.50387388
Error
0.05
153
Apndice
-2 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
3.5
2
3.4
3
3.8
4
3.6
5
3.4
1
6
3.2
7
3.6
8
3.8
9
3.4
10
3.7
-3 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
1
5
2
5.5
3
5.1
4
5.3
5
5
6
5.4
7
5.1
8
5.2
9
5.1
10
5.1
-4 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
6.1
2
7.1
3
6.9
4
7.2
5
4.9
1
6
7.1
7
5.3
8
6.6
9
6.8
10
6.9
-5 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
9.1
2
8.7
3
8.6
4
8.5
5
8.9
1
6
8.1
7
8.7
8
8.8
9
8.3
10
7.5
Valor ideal
5.1
Promedio
5.18
Desviacin Estndar
0.16865481
Error
-0.08
Valor ideal
8.5
Promedio
8.52
Desviacin Estndar
0.45898439
Error
-0.02
-6 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
10.3
2
10.5
3
9.8
4
10.4
5
10.2
1
6
10.4
7
10.7
8
11
9
10.2
10
10.1
Valor ideal
3.4
Promedio
3.54
Desviacin Estndar
0.19550504
Error
-0.14
Valor ideal
6.8
Promedio
6.49
Desviacin Estndar
0.80201136
Error
0.31
Valor ideal
10.2
Promedio
10.36
Desviacin Estndar
0.33065591
Error
-0.16
154
Apndice
-7 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
11.1
2
11.6
3
12.4
4
11.7
5
11.9
1
6
11.2
7
12.2
8
11.6
9
11.7
10
11.8
-9 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
15.9
2
15.4
3
15.1
4
15.9
5
14.7
1
6
15.6
7
15.1
8
15.3
9
15.7
10
15.1
Valor ideal
11.9
Promedio
11.72
Desviacin Estndar
0.39665266
Error
0.18
Valor ideal
15.3
Promedio
15.38
Desviacin Estndar
0.39384148
Error
-0.08
-8 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
13.4
2
13.9
3
12.9
4
14.4
5
13.7
1
6
13.1
7
13.5
8
13.1
9
14
10
13.2
-10 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
15.3
2
17
3
17.5
4
15.6
5
16.5
1
6
17.5
7
15.9
8
17
9
18.1
10
15.7
Valor ideal
13.6
Promedio
13.52
Desviacin Estndar
0.47562824
Error
0.08
Valor ideal
17
Promedio
16.61
Desviacin Estndar
0.95388096
Error
0.39
155
Apndice
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
3 Pulso
ngulo de
movimiento
7.3
6.7
6.8
7.4
5.4
5.6
7.2
6.6
7
7
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
Valor ideal
5.1
Promedio
6.7
Desviacin Estndar
0.68313005
Error
-1.6
1
2
3
4
5
6
7
8
9
10
2 Pulso
ngulo de
movimiento
3
3.3
3.4
3.4
4.1
3.4
3.4
3.1
3.1
3.7
4 Pulso
ngulo de
movimiento
8.5
5.9
8.6
6.4
7.2
6.5
6.2
6.4
7.4
6.9
Valor ideal
3.4
Promedio
3.39
Desviacin Estndar
0.32128215
Error
0.01
Valor ideal
6.8
Promedio
7
Desviacin Estndar
0.93333333
Error
-0.2
156
Apndice
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
5 Pulso
ngulo de
movimiento
6.6
15.3
11.1
10
10.9
10.5
10.6
10.6
9.4
10.7
7 Pulsos
ngulo de
movimiento
14
13.6
13.7
13.8
12.7
12.4
12.1
12.2
12
12.5
9 Pulsos
ngulo de
movimiento
17
17.8
16.9
17.3
16.2
17.1
14.4
17.8
18.7
16
Articulacin Movimiento
Valor ideal
8.5
Promedio
10.57
Desviacin Estndar
2.11452648
Error
-2.07
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
Valor ideal
11.9
Promedio
12.9
Desviacin Estndar
0.78457349
Error
-1
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
Valor ideal
15.3
Promedio
16.92
Desviacin Estndar
1.18396697
Error
-1.62
1
2
3
4
5
6
7
8
9
10
6 Pulsos
ngulo de
movimiento
10.9
13.1
11.2
11
10.5
9.9
11.4
10.5
11.9
10.2
8 Pulsos
ngulo de
movimiento
14.8
14.6
13.4
14.2
13.3
14.7
15.1
16.4
15.3
13.7
10 Pulso
ngulo de
movimiento
17.8
14.8
16.2
19.2
16.5
15.3
17.1
18.2
14.6
16.9
Valor ideal
10.2
Promedio
11.06
Desviacin Estndar
0.92760145
Error
-0.86
Valor ideal
13.6
Promedio
14.55
Desviacin Estndar
0.94897606
Error
-0.95
Valor ideal
17
Promedio
16.66
Desviacin Estndar
1.49681143
Error
0.34
157
Apndice
-2 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
2.9
2
2.6
3
3
4
3.6
5
3.7
2
6
3.6
7
4
8
2.8
9
2.8
10
3.6
-3 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
4.9
2
5.4
3
5.4
4
5.1
5
4.9
2
6
6.2
7
5.4
8
4.9
9
4.4
10
4.9
-4 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
6.1
2
7
3
7
4
7.6
5
7.1
2
6
7.4
7
8.8
8
6.6
9
6.7
10
6.3
-5 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
7.4
2
8.6
3
8
4
9.4
5
8.2
2
6
9.2
7
9.2
8
9.5
9
9
10
10.1
Valor ideal
5.1
Promedio
5.15
Desviacin Estndar
0.4836206
Error
-0.05
Valor ideal
8.5
Promedio
8.86
Desviacin Estndar
0.80718991
Error
-0.36
-6 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
8.7
2
10.8
3
10.5
4
10.7
5
10.8
2
6
10.5
7
11.8
8
11.3
9
10.4
10
10.7
Valor ideal
3.4
Promedio
3.26
Desviacin Estndar
0.48808014
Error
0.14
Valor ideal
6.8
Promedio
7.06
Desviacin Estndar
0.76623176
Error
-0.26
Valor ideal
10.2
Promedio
10.62
Desviacin Estndar
0.79554314
Error
-0.42
158
Apndice
-7 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
10.1
2
12.1
3
12.7
4
12.7
5
12.7
2
6
12.2
7
14.3
8
12.5
9
12.1
10
13.2
-9 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
15.4
2
15.5
3
16.9
4
16.1
5
17.8
2
6
13.4
7
15.5
8
16.3
9
16.4
10
17.2
Valor ideal
11.9
Promedio
12.46
Desviacin Estndar
1.05430335
Error
-0.56
Valor ideal
15.3
Promedio
16.05
Desviacin Estndar
1.21769363
Error
-0.75
-8 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
10.3
2
14.5
3
13.9
4
14.6
5
14.1
2
6
16
7
12.3
8
14
9
14.6
10
14.4
-10 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
13.8
2
17.3
3
17.6
4
20.7
5
13.9
2
6
18
7
20.9
8
14.5
9
14.4
10
18.5
Valor ideal
13.6
Promedio
13.87
Desviacin Estndar
1.54779413
Error
-0.27
Valor ideal
17
Promedio
16.96
Desviacin Estndar
2.6965822
Error
0.04
159
Apndice
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
3 Pulso
ngulo de
movimiento
5.9
4.2
6.6
5.5
5.6
7.3
4.7
3.3
5.9
4.4
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
Valor ideal
5.1
Promedio
5.34
Desviacin Estndar
1.1974046
Error
-0.24
1
2
3
4
5
6
7
8
9
10
2 Pulso
ngulo de
movimiento
4.3
4.1
3.5
3.4
4.4
4
3.2
3.8
3.6
3.6
4 Pulso
ngulo de
movimiento
6.5
8.1
6.4
7.8
6.3
6.9
7.8
5.7
7.8
8.7
Valor ideal
3.4
Promedio
3.79
Desviacin Estndar
0.39846929
Error
-0.39
Valor ideal
6.8
Promedio
7.2
Desviacin Estndar
0.96724121
Error
-0.4
160
Apndice
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
5 Pulso
ngulo de
movimiento
9.1
9.4
7.2
5.4
7.7
8
8
6.5
6.3
7.1
7 Pulsos
ngulo de
movimiento
12.4
11.6
12.5
11.3
13
11.8
13.3
11.5
13.2
14.2
9 Pulsos
ngulo de
movimiento
15.8
14.3
16.6
14.9
16.8
17.5
18.3
18.3
14.9
16.1
Articulacin Movimiento
Valor ideal
8.5
Promedio
7.47
Desviacin Estndar
1.23832324
Error
1.03
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
Valor ideal
11.9
Promedio
12.48
Desviacin Estndar
0.94375138
Error
-0.58
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
Valor ideal
15.3
Promedio
16.35
Desviacin Estndar
1.41283796
Error
-1.05
1
2
3
4
5
6
7
8
9
10
6 Pulsos
ngulo de
movimiento
10.4
10.1
9.4
10
10.1
10.9
10.8
11
11.2
11.9
8 Pulsos
ngulo de
movimiento
13.9
13.6
13.4
13.9
13.8
14.9
14.5
14.5
14.3
14.4
10 Pulso
ngulo de
movimiento
19.4
19
17.6
15.9
15
15.4
16.7
17.4
17.7
16.8
Valor ideal
10.2
Promedio
10.58
Desviacin Estndar
0.72080202
Error
-0.38
Valor ideal
13.6
Promedio
14.12
Desviacin Estndar
0.47093288
Error
-0.52
Valor ideal
17
Promedio
17.09
Desviacin Estndar
1.43716542
Error
-0.09
161
Apndice
-2 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
3.5
2
3.5
3
3
4
2.8
5
3
3
6
1.6
7
3.2
8
3.3
9
3.6
10
2.9
-3 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
4.2
2
5.5
3
4.3
4
3.5
5
5.6
3
6
4.2
7
3.1
8
5.7
9
3.9
10
4.6
-4 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
5.7
2
7.2
3
5.3
4
6.5
5
6.6
3
6
6.8
7
4.3
8
7.2
9
6.9
10
7
-5 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
7.9
2
9
3
7.8
4
9.2
5
7.9
3
6
9
7
10.4
8
8.8
9
9.6
10
11.1
Valor ideal
5.1
Promedio
4.46
Desviacin Estndar
0.89343283
Error
0.64
Valor ideal
8.5
Promedio
9.07
Desviacin Estndar
1.08632919
Error
-0.57
-6 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
11.4
2
12.8
3
10.9
4
10.2
5
11
3
6
9.9
7
10.4
8
10.3
9
10.3
10
10.3
Valor ideal
3.4
Promedio
3.04
Desviacin Estndar
0.57580861
Error
0.36
Valor ideal
6.8
Promedio
6.35
Desviacin Estndar
0.95364797
Error
0.45
Valor ideal
10.2
Promedio
10.75
Desviacin Estndar
0.84754548
Error
-0.55
162
Apndice
-7 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
10.7
2
17.9
3
11.4
4
11.6
5
15.9
3
6
13.1
7
13.4
8
14
9
14
10
13.1
-9 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
15.9
2
19.1
3
17.5
4
18.9
5
16
3
6
15.1
7
15.6
8
17.5
9
18.2
10
16.2
Valor ideal
11.9
Promedio
13.51
Desviacin Estndar
2.15532931
Error
-1.61
Valor ideal
15.3
Promedio
17
Desviacin Estndar
1.42906341
Error
-1.7
-8 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
12.2
2
17.6
3
15.5
4
15.8
5
14.7
3
6
14.4
7
16.1
8
14.6
9
13.9
10
14
-10 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
15
2
13.4
3
15.6
4
17.3
5
18.2
3
6
17.5
7
13.8
8
17
9
16.3
10
19.3
Valor ideal
13.6
Promedio
14.88
Desviacin Estndar
1.4672726
Error
-1.28
Valor ideal
17
Promedio
16.8666667
Desviacin Estndar
2.11459574
Error
0.13333333
163
Apndice
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
3 Pulsos
ngulo de
movimiento
5.9
6.1
5
6.5
6.6
6.5
5.3
3.7
5.5
4.5
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
Valor ideal
5.1
Promedio
5.56
Desviacin Estndar
0.95591724
Error
-0.46
1
2
3
4
5
6
7
8
9
10
2 Pulsos
ngulo de
movimiento
3.5
3.4
2.7
2.8
3.5
2
2.2
4.1
5.3
4.4
4 Pulsos
ngulo de
movimiento
7.3
8
6.1
8.3
8.2
8.2
9.1
8.3
7.4
7
Valor ideal
3.4
Promedio
3.39
Desviacin Estndar
1.02029408
Error
0.01
Valor ideal
6.8
Promedio
7.79
Desviacin Estndar
0.84911719
Error
-0.99
164
Apndice
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
1
2
3
4
5
6
7
8
9
10
5 Pulsos
ngulo de
movimiento
9.8
7.6
9.2
9.4
10.4
10.6
10.6
11.4
6.7
10.1
7 Pulsos
ngulo de
movimiento
14.1
10.9
11.8
11.1
13.5
11.9
10.4
13.7
10.2
11.5
9 Pulsos
ngulo de
movimiento
16.6
13.1
16.9
14.3
15.8
16.4
14.9
16.3
15.7
16.8
Articulacin Movimiento
Valor ideal
8.5
Promedio
9.58
Desviacin Estndar
1.44437607
Error
-1.08
1
2
3
4
5
6
7
8
9
10
Articulacin Movimiento
Valor ideal
11.9
Promedio
11.91
Desviacin Estndar
1.39797473
Error
-0.01
Valor ideal
15.3
Promedio
15.68
Desviacin Estndar
1.23270254
Error
-0.38
1
2
3
4
5
6
7
8
9
10
6 Pulsos
ngulo de
movimiento
9.4
10.7
11.9
9.1
10.4
11.1
9.6
10.9
10.1
9.1
8 Pulsos
ngulo de
movimiento
13.1
14.9
12.9
13.7
12.2
13.7
14.5
12.1
13.8
14.7
10 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
16.6
2
14.6
3
18.8
4
17.8
5
19.6
4
6
19
7
16.7
8
16.8
9
18.9
10
18.6
Valor ideal
10.2
Promedio
10.23
Desviacin Estndar
0.93695725
Error
-0.03
Valor ideal
13.6
Promedio
13.56
Desviacin Estndar
0.98341808
Error
0.04
Valor ideal
17
Promedio
17.74
Desviacin Estndar
1.54142791
Error
-0.74
165
Apndice
-2 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
3.9
2
3.6
3
3.4
4
2
5
3.6
4
6
3
7
3.4
8
3.6
9
3.3
10
3.8
-3 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
5.7
2
5.3
3
3.5
4
4.8
5
4.4
4
6
5.5
7
5.5
8
5.2
9
5.6
10
4.5
-4 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
7.4
2
7.7
3
6.7
4
7
5
7.2
4
6
5.5
7
6.7
8
7.5
9
6.5
10
7.6
-5 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
8.9
2
8.4
3
9.8
4
9.7
5
8.3
4
6
8.8
7
9.6
8
8.7
9
8
10
7.7
Valor ideal
5.1
Promedio
5
Desviacin Estndar
0.69761499
Error
0.1
Valor ideal
8.5
Promedio
8.79
Desviacin Estndar
0.72487547
Error
-0.29
-6 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
10.4
2
9.4
3
11.1
4
10.5
5
9.9
4
6
10.9
7
10.1
8
9.4
9
11.5
10
10.4
Valor ideal
3.4
Promedio
3.36
Desviacin Estndar
0.54201271
Error
0.04
Valor ideal
6.8
Promedio
6.98
Desviacin Estndar
0.66466366
Error
-0.18
Valor ideal
10.2
Promedio
10.36
Desviacin Estndar
0.68992753
Error
-0.16
166
Apndice
-7 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
11.1
2
13.2
3
12.7
4
11.8
5
11.5
4
6
12.7
7
10.9
8
11.6
9
12.1
10
13.2
-9 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
16.4
2
15.1
3
14.9
4
16.1
5
15.5
4
6
14.3
7
16.9
8
14.2
9
16.9
10
15.1
Valor ideal
11.9
Promedio
12.08
Desviacin Estndar
0.83506487
Error
-0.18
Valor ideal
15.3
Promedio
15.54
Desviacin Estndar
0.99353466
Error
-0.24
-8 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
12.7
2
14.7
3
13.5
4
13.9
5
14.9
4
6
11.9
7
12.6
8
13.8
9
12.5
10
13.7
-10 Pulsos
ngulo de
Articulacin Movimiento
movimiento
1
16.6
2
14.7
3
15.5
4
19
5
16.6
4
6
16.8
7
17.6
8
16.1
9
18.2
10
17.3
Valor ideal
13.6
Promedio
13.42
Desviacin Estndar
0.97956907
Error
0.18
Valor ideal
17
Promedio
16.84
Desviacin Estndar
1.26244912
Error
0.16
167
Apndice
Movimiento Error
Desviacin
promedio
Promedio Estndar
4.88
0.12 0.083666003
9.82
0.18 0.356370594
15.16
-0.16 0.230217289
20.22
-0.22 0.618061486
25.2
-0.2 0.731436942
30.24
-0.24 1.594678651
41.28
-1.28 0.258843582
49.72
0.28
0.81670068
59.8
0.2 0.880340843
70.46
-0.46 0.559464029
Direccin: Izquierda
Destino Prueba 1 Prueba 2 Prueba 3 Prueba 4 Prueba 5
-5
-5.2
-4.8
-5.2
-5.9
-5
-10
-10.1
-11.1
-11.1
-10.3
-10.9
-15
-15.5
-15.8
-15.4
-15.9
-15.6
-20
-20.9
-20.9
-21.1
-21.2
-21.2
-25
-25.8
-26.2
-26.1
-26.1
-27.3
-30
-31.8
-31.5
-31.2
-31.3
-32.8
-40
-41.7
-43.8
-43.1
-42.1
-43.8
-50
-50.9
-52
-49.7
-52.8
-50.9
-60
-61.2
-60.9
-60.9
-60
-62.5
-70
-69.8
-71.1
-72.3
-72.9
-73
Movimiento Error
Desviacin
promedio
Promedio Estndar
-5.22
0.22 0.414728827
-10.7
0.7 0.469041576
-15.64
0.64 0.207364414
-21.06
1.06 0.151657509
-26.3
1.3 0.578791845
-31.72
1.72 0.645755372
-42.9
2.9
0.96695398
-51.26
1.26
1.18448301
-61.1
1.1 0.902773504
-71.82
1.82 1.359043781
168
Apndice
Movimiento Error
Desviacin
promedio
Promedio Estndar
2.58
2.42
0.66105976
10.3
-0.3
0.23452079
15.96
-0.96
0.32093613
20.82
-0.82
0.083666
26.28
-1.28
1.08489631
31.2
-1.2
0.07071068
41.9
-1.9
0.18708287
51.54
-1.54
0.50299105
62
-2
0.18708287
71.4
-1.4
1.6673332
83.12
-3.12
1.23166554
92.28
-2.28
1.30268953
Direccin: Arriba
Movimiento Error
Desviacin
Destino Prueba 1 Prueba 2 Prueba 3 Prueba 4 Prueba 5 promedio
Promedio Estndar
85
85.6
85.4
85.6
85.1
86.3
85.6
-0.6
0.44158804
80
80.2
80.4
80.4
79.9
80.7
80.32
-0.32
0.29495762
75
76.1
74.3
76.4
74.9
74.9
75.32
-0.32
0.88994382
70
71.4
70.3
71.7
70.5
73.3
71.44
-1.44
1.19498954
65
66.8
67.1
67.1
63.8
65.1
65.98
-0.98
1.47546603
60
60.4
60.2
58.4
58.1
60.5
59.52
0.48
1.16918775
50
49.7
49.8
49.9
49.7
49.9
49.8
0.2
0.1
40
38.8
39.8
40.2
42.1
38.9
39.96
0.04
1.33529023
30
27.7
28.1
31.3
30.5
27.9
29.1
0.9
1.67332005
20
17
17.3
17.3
17.6
15.6
16.96
3.04
0.78930349
10
7.1
9.6
4.9
6.9
7.1
7.12
2.88
1.66793285
169
Apndice
Direccin: Arriba
Destino
5
10
15
20
25
30
40
50
60
70
80
90
100
110
120
130
Movimiento
Error
Desviacin
Prueba 1
Prueba 2
Prueba 3
Prueba 4
Prueba 5
promedio
Promedio
Estndar
5.7
5.1
5
5.8
5.7
5.46
-0.46
0.37815341
10.4
10.2
10.3
10.4
10.3
10.32
-0.32
0.083666
15.8
16.2
15.9
16.1
16.3
16.06
-1.06
0.20736441
20.2
20.1
20
19.3
20.2
19.96
0.04
0.37815341
25.9
25.8
26.1
25.9
25.8
25.9
-0.9
0.12247449
30.5
30.7
30.9
29.5
30.6
30.44
-0.44
0.54589376
40.1
41.2
40.9
40.8
41.1
40.82
-0.82
0.43243497
47.1
49.8
47.8
46.5
47.8
47.8
2.2
1.24298029
58.5
57.3
62.1
60.9
64.3
60.62
-0.62
2.79857106
71.6
68.1
71.2
71.6
65.7
69.64
0.36
2.6463182
78.4
72.7
82.5
82.2
79.8
79.12
0.88
3.97202719
90.6
92.7
90.8
93.4
93.2
92.14
-2.14
1.34089522
101.6
101.8
100.4
101.2
100.4
101.08
-1.08
0.65726707
112.8
107.4
112.4
111.8
115.1
111.9
-1.9
2.80891438
123.6
119.7
119.2
126.7
122.7
122.38
-2.38
3.06382114
131.7
139.3
139.5
139.3
133.4
136.64
-6.64
3.7825917
170
Apndice
Direccin: Arriba
Destino
5
10
15
20
25
30
40
50
60
70
80
90
100
110
120
130
Movimiento Error
Desviacin
promedio
Promedio Estndar
5.46
-0.46
0.37815341
10.32
-0.32
0.083666
16.06
-1.06
0.20736441
19.96
0.04
0.37815341
25.9
-0.9
0.12247449
30.44
-0.44
0.54589376
40.82
-0.82
0.43243497
47.8
2.2
1.24298029
60.62
-0.62
2.79857106
69.64
0.36
2.6463182
79.12
0.88
3.97202719
92.14
-2.14
1.34089522
101.08
-1.08
0.65726707
111.9
-1.9
2.80891438
122.38
-2.38
3.06382114
136.64
-6.64
3.7825917
171
Apndice
Movimiento Error
Desviacin
Prueba 1 Prueba 2 Prueba 3 Prueba 4 Prueba 5 promedio
Promedio Estndar
2.9
2.1
2.5
2.4
2.7
2.52
2.48
0.30331502
8.2
7.9
7.6
7.6
8.1
7.88
2.12
0.27748874
12.7
12.4
11.7
13
12.4
12.44
2.56
0.48270074
19.3
19.9
20.4
19.8
19
19.68
0.32
0.54497706
23.9
25.1
24.3
25.5
25.8
24.92
0.08
0.80124902
30.7
31.4
29.5
31.5
28.5
30.32
-0.32
1.29305839
39.2
40.3
40.4
40.6
40.7
40.24
-0.24
0.60249481
48.5
48.1
46.2
48.8
49
48.12
1.88
1.12561095
59.2
54.2
58.3
54.6
54.7
56.2
3.8
2.35690475
68.7
68.9
65.1
67.1
70.7
68.1
1.9
2.10713075
74.1
78.5
78.4
78.5
78.3
77.56
2.44
1.93597521
87.4
87.3
88.8
89
89.1
88.32
1.68
0.89274856
100.9
99.4
98.1
99.8
94.2
98.48
1.52
2.59364608
108.9
109.3
109.1
112.3
110.9
110.1
-0.1
1.46287388
-2.8422E114.9
116.5
116.7
115.9
111
115
15
2.3430749
Direccin: Arriba
Movimiento Error
Desviacin
Destino Prueba 1 Prueba 2 Prueba 3 Prueba 4 Prueba 5 promedio
Promedio Estndar
110
113.2
113.1
109.7
109.8
113.9
111.94
-1.94
2.02311641
105
108.4
107.2
104.3
106.3
108.7
106.98
-1.98
1.7796067
100
99.4
99.7
98.1
103.8
101.9
100.58
-0.58
2.25986725
95
93.3
97.2
94.7
96.9
93.3
95.08
-0.08
1.88997354
90
91.3
91.2
89.3
90.8
92.7
91.06
-1.06
1.21778487
80
82
82.1
78.2
80
82.3
80.92
-0.92
1.78241409
70
69.1
65.7
69.1
69.6
71.2
68.94
1.06
2.00574176
60
58.5
58.7
58.3
60.7
60.6
59.36
0.64
1.18659176
50
55.5
47.5
49.8
51.1
51.1
51
-1
2.91376046
40
38.7
38.3
40.1
36.6
38.8
38.5
1.5
1.25896783
30
27.1
29.8
31.7
26.2
30.1
28.98
1.02
2.26870007
20
18.1
21.3
19.3
16.9
18.5
18.82
1.18
1.63462534
10
5.2
7.3
10.3
7.3
12.8
8.58
1.42
2.97775083
0
1.2
0.3
0.1
0.9
2.7
1.04
-1.04
1.02859127
172
Apndice
Figura A 10.1.- Representacin grfica de los ejes de rotacin del Memsic 2125.
Figura A 10.2.- Funcionamiento interno del Memsic 2125 en nivel (izquierda) y a desnivel (derecha).
Cada eje de rotacin genera de un pulso de onda cuadrada de 100 MHz cuya aceleracin
es proporcional a la relacin tHx/Tx, por lo tanto resultados consistentes y confiables pueden
173
Apndice
lograrse midiendo slo la duracin de tHx. La figura A 10.3 representa el pulso cuadrado generado
por una de las salidas del Memsic 2125.
Figura A 10.3 Pulso cuadrado generado por las salidas del Memsic 2125. La variable Tx representa la duracin del
periodo completo, tHx representa la duracin alta del pulso mientras que la variable tLx es la parte baja del pulso.
Para detectar y medir dichos pulsos el Memsic 2125 fue conectado utilizando el diagrama
de la Figura A 10.4 para identificar las terminales de dicho dispositivo a un microcontrolador
P8X32A contenido en la tarjeta QuickStart de Parallax, dicha tarjeta se puede observar en la Figura
A 10.5.
174
Apndice
Figura A 10.6.- Diagrama de conexiones del Memsic 2125 en Propeller QuickStart en protoboard.
Debido al tamao y el peso del protoboard, el Memsic 2125 fue insertado en una tarjeta
perforada con una base para C.I. para facilitar la insercin del Memsic 2125. Las terminales de
alimentacin y datos fueron extendidas mediante un cable plano, el cual fue conectado al
microcontrolador de la misma manera que se observa en la Figura A 10.6. La tarjeta resultante se
observa en la Figura A 10.7 mientras que la conexin de las dos tarjetas se observa en la Figura A
10.8.
175
Apndice
Para medir los diferentes puntos de rotacin del OWI-535 la tarjeta con el Memsic 2125 se
instal en las articulaciones dos y tres, ubicado del lado derecho para evitar ser obstaculizado por
el cableado del OWI-535 modificado mientras que para medir el ngulo de rotacin de la
articulacin cuatro se sostuvo la tarjeta con la pinza, cuidando que esta sostuviera la tarjeta en
una posicin nivelada. Para los dos primeros casos, la tarjeta se adhiri al cuerpo del OWI-535 con
la ayuda de silicn caliente. En las Figuras A 10.9a y A 10.9b podemos observar la instalacin de la
tarjeta del Memsic 2125 en el OWI-535 y en la Figura 10.9c se encuentra como fue sostenida por
la pinza.
176
Apndice
a)
b)
c)
Figura A 10.9.- Ubicacin de la tarjeta del Memsic 2125 en el OWI-535. a) Memsic 2125 instalado para medir
movimiento angular de la segunda articulacin. b) Memsic 2125 instalado para medir movimiento angular de la
tercera articulacin. c) Memsic 2125 instalado para medir movimiento angular de la cuarta articulacin.
Teniendo en cuenta la posicin de la tarjeta del Memsic 2125, fue necesario emplear un
firmware para sensar el ngulo de rotacin en posicin vertical, dicho firmware viene contenido
como firmware de prueba para dicho sensor en el software programador de Parallax SimpleIDE
con el nombre de Test 2125 Rotation.c.
SimpleIDE tiene la capacidad de interpretar cdigo en lenguaje de programacin C,
compilarlo y grabarlo en el microcontrolador. Debido a que la comunicacin se realiza mediante
USB, fue posible observar los resultados en la consola del mismo programa SimpleIDE como se
observa en la Figura A 10.10.
177
Apndice
Patrn
y
15
20
25
15
20
25
10
15
20
25
0
5
10
15
20
25
0
5
10
15
20
0
5
10
15
20
25
20
25
15
20
25
10
15
20
25
0
5
10
15
20
0
5
10
15
z
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
x
0
0
0
5.1
5.3
5.4
11.6
11.4
9.9
11.9
17.8
15.2
16.5
17
15.2
13.9
18.9
20.1
21.5
22.5
17.5
25.7
25.6
26.5
27.2
0
0
4.4
6.7
12
8.7
9
16.7
16.8
15
14.5
21.9
19.9
21.7
21.7
22.1
25.6
25.4
24.47
24.1
Medido
y
15.4
22.4
25.1
15.9
18.9
24.2
9.5
14.9
19.6
26.2
0
5.3
8.3
16.4
22.6
26.5
0
4.3
6.5
12.7
21.5
0
3.9
8.3
13.3
21.5
24.9
19.9
23.5
13.9
20.1
24.8
10
11.9
19.5
24.2
0
4.9
8.4
10.6
14.6
0
3
8
12.6
z
1.1
0.6
0.5
1.3
0.15
0.5
0
1.4
0.5
4.7
1.7
0
0.4
3.3
2.6
1.7
0
0
0
2.3
1
1.5
2.6
5.7
5.1
6.7
7.2
5.6
5.4
4.6
6.9
7.2
6.7
5.8
5.9
7.3
5.6
4.5
4.4
6.9
8.7
6.1
5.9
6.1
7.3
178
Apndice
x
0
0
5
5
10
10
15
15
15
20
20
20
20
20
25
25
25
25
0
0
5
5
10
10
15
15
15
20
20
20
20
20
25
25
25
25
0
0
5
5
10
10
15
15
15
Patrn
y
20
25
20
25
20
25
15
20
25
0
5
10
15
20
0
5
10
15
20
25
20
25
20
25
15
20
25
0
5
10
15
20
0
5
10
15
20
25
20
25
15
20
10
15
20
z
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
20
20
20
20
20
20
20
20
20
x
0
0
5.7
5.5
10.2
10
16.5
12.5
13
19
19.9
20.7
20.4
21.5
22.9
24.7
24.5
24.6
0
0
5.1
5.9
9.9
8.6
16.9
14
11.8
20
20.4
20.7
12.7
21.9
24.4
25.3
24.6
24.3
0
0
4.6
3.8
8.7
7.5
14.4
14.6
11.9
Medido
y
19.7
24.3
18.4
22.6
19.8
23.2
12.5
19.7
25
0
4
6.7
12.2
16.3
0
1.7
7.5
12.2
19.8
24.5
19.7
24.4
19.4
24.2
12.6
19.4
24.8
0
2.8
8.1
21.1
16.4
0
2.4
7.1
12.5
18.9
24.3
19.4
23.2
14.3
18.3
11.4
13.5
21.1
z
10.4
8.8
10.2
9.8
10.5
12.7
9.9
12.1
7.5
10.5
10.9
10.8
12.1
12.5
10.9
9
9.4
12.6
14.6
15.2
15.2
13.7
13.8
16.1
16.9
14.7
17.4
14.3
12.7
14.6
13.8
16.1
17.7
13.2
14.7
16.5
19.4
18.4
18.9
18.5
19.6
19.1
19.7
21.3
20.8
179
Apndice
x
20
20
20
20
20
0
0
5
5
10
10
15
15
15
15
20
20
20
20
Patrn
y
0
5
10
15
20
20
25
20
25
15
20
5
10
15
20
0
5
10
15
z
20
20
20
20
20
25
25
25
25
25
25
25
25
25
25
25
25
25
25
x
19.9
20.3
20.1
20.5
19.6
0
0
4.8
4.2
10.3
9.1
16.4
14.9
16.4
15.9
18.6
20.2
19.1
20
Medido
y
0
3.6
9
13.6
17.3
19.6
23.1
20
23.6
16.1
19.6
4.8
8.6
14.6
19.3
0
5.4
9.7
13.3
z
21.4
20.7
16.8
17.5
22.4
23.4
22.2
24.3
27.2
23.3
24.8
24.3
26.4
23.2
25.9
27.2
25.1
24.2
26.4
Positivos
x
5
5
5
10
10
10
10
15
15
15
15
15
15
20
20
20
20
20
25
25
25
25
5
5
Patrn
y
15
20
25
10
15
20
25
0
5
10
15
20
25
0
5
10
15
20
0
5
10
15
20
25
z
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
5
x
4.9
6
5.4
10.3
11.5
10.2
12.4
16.8
14.8
17.1
16.8
15.4
14.7
19.2
19.8
19.4
21.8
19.3
25.1
24.3
27.2
28
5.4
6.4
Medido
y
15.4
20.3
23.8
9.3
15.2
20.4
25.2
0.5
2.8
9.7
15.9
21.8
26.1
0.7
4.1
7.7
12.8
20.4
0.7
4.5
8.1
14.8
20.1
24.3
z
1.2
1.4
0.8
0.2
0.7
1.4
1.1
1.9
1.7
0.8
2.4
0.7
1.3
0.3
0.6
1.2
1.7
0.4
1.1
2.8
4.8
4.2
4.8
5.7
180
Apndice
x
10
10
10
15
15
15
15
20
20
20
20
20
25
25
25
25
5
5
10
10
15
15
15
20
20
20
20
20
25
25
25
25
5
5
10
10
15
15
15
20
20
20
20
20
Patrn
y
15
20
25
10
15
20
25
0
5
10
15
20
0
5
10
15
20
25
20
25
15
20
25
0
5
10
15
20
0
5
10
15
20
25
20
25
15
20
25
0
5
10
15
20
z
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
15
15
15
15
15
15
15
15
15
15
15
15
x
11.4
9.2
10.1
15.2
16.4
14.2
15.5
21.2
20.1
20.8
21.6
21.5
24.7
25.1
24.7
23.7
5.5
5.1
10.5
11.7
16.7
11.8
12.4
19.3
19.9
21.7
20.7
22
22.4
24.7
24.1
24.8
5.8
5.3
10.2
8.7
16.4
14.5
11.4
20.4
20.5
20.4
21.1
20.9
Medido
y
14.8
20.4
25.9
10.7
12.5
20.4
24.1
0.7
5.3
9.7
12.5
13.8
0.1
4.4
9.1
13.4
19.1
23.8
19.7
24.1
12.4
20.6
24.7
0
4.3
6.2
13.1
17.9
1.4
4.7
8.2
14.1
20.4
24.8
19.1
24.6
13
19.2
24.6
0
3.7
9.7
12.1
17.1
z
4.5
6.2
6.4
6.3
6.3
5.7
5.9
5.3
5.7
6.1
5.8
6.9
6.2
6.5
5.9
6.8
11.2
9.6
9.7
11.8
10.2
11.5
8.2
10.9
11.2
10.2
12.3
11.7
9.4
11.2
12.1
11
16.1
13.4
14.2
15.4
15.9
14.4
16.7
14.9
13.1
13.7
14.8
15.6
181
Apndice
x
25
25
25
25
5
5
10
10
15
15
15
20
20
20
20
20
5
5
10
10
15
15
15
15
20
20
20
20
20
Patrn
y
0
5
10
15
20
25
15
20
10
15
20
0
5
10
15
20
20
25
15
20
5
10
15
20
0
5
10
15
15
z
15
15
15
15
20
20
20
20
20
20
20
20
20
20
20
20
25
25
25
25
25
25
25
25
25
25
25
25
25
x
25.1
24.7
24.8
25.2
5.7
6.4
9.4
8.4
14.9
15.6
13.4
20.4
20.8
21.7
20.1
19.9
5.2
4.1
10.5
10.1
15.8
15.3
16.1
15.7
18.4
20.6
19.7
19.7
19.7
Medido
y
0
3.1
7.4
13.1
19.4
23.7
14.7
18.2
10.5
14.1
20.5
0
4.2
10.7
13.5
17.6
19.4
23.1
15.7
18.8
4.7
9
15.6
19.6
1.5
5.1
9.1
14.3
14.3
z
17.6
13.1
14.8
16.8
18.8
18.1
21.1
18.7
18.9
20.4
17.1
21.1
20.5
17.4
17.3
21.4
24.1
26.4
24.1
24.9
24.3
25.7
23.2
26.2
26.4
25.5
24.3
24
24
182