• No se han encontrado resultados

Control por computadora de un robot hexápodo

N/A
N/A
Protected

Academic year: 2020

Share "Control por computadora de un robot hexápodo"

Copied!
94
0
0

Texto completo

(1)

TRABAJO PROFESIONAL

COMO REQUISITO PARA OBTENER EL TÍTULO DE:

INGENIERO ELECTRÓNICO

QUE PRESENTA:

HUGO ALEXANDRO SÁNCHEZ FLORES

CON EL TEMA:

CONTROL POR COMPUTADORA DE UN

ROBOT HEXÁPODO

ASESOR:

M.C. RAÚL MORENO RINCÓN

(2)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

OPCIÓN I

(TESIS PROFESIONAL)

(3)

DEDICATORIA

ESTA TESIS ESTA DEDICADA A LAS PERSONAS QUE INFLUYERON Y TUVIERON UN IMPORTANTE PAPEL PARA QUE YO PUDIERA TERMINAR ESTA GRAN ETAPA DE MI VIDA Y EL COMIENZO DE MI CARRERA PROFESIONAL:

A QUIEN ME DIO TODO LO QUE ME IMPULSO SIEMPRE A CONTINUAR Y A NO DARME POR VENCIDO, A DIOS QUIEN DIO LUZ EN MI CAMINO PARA SIEMPRE SEGUIR ADELANTE Y NO DEJARME VENCER POR LAS ADVERSIDADES QUE SE ME PRESENTARAN Y SIEMPRE HA ESTADO Y ESTARÁ VELANDO POR MI DURANTE EL TIEMPO QUE DECIDA DARME PARA CUMPLIR LA MISIÓN PARA LA QUE ME ENVÍO.

A MI FAMILIA, MIS PADRES, MIS HERMANAS, MI ABUELITA Y FAMILIARES QUE SIEMPRE MOSTRARON ESE APOYO INCONDICIONAL CLAVE PARA MI DECISIÓN DE ESTUDIO Y PERSEVERANCIA, QUE ME HAN ENSEÑADO EL VALOR DE LA VIDA A VALORAR CALIDAD Y NO CANTIDAD A SIEMPRE DAR LO MEJOR DE MI, INCLUSO EN LOS RETOS QUE PAREZCAN MAS PEQUEÑOS, Y SABIENDO QUE SIEMPRE ESTARÁN AHÍ CUANDO YO MAS LO NECESITE.

A MIS AMIGOS, MUCHO MAS QUE COMPAÑEROS DE CLASE, DE EQUIPO O FUTUROS COLEGAS, PORQUE EN MAS DE 4 AÑOS DE CARRERA NO SOLO HUBO TRABAJO HUBO DIVERSION, CONVIVENCIA Y CONFIANZA TANTAS BELLAS PALABRAS EN UNA SOLA, AMISTAD QUE DURARÁ SIEMPRE, AUNQUE NO SEA TATO EL TIEMPO QUE PASEMOS JUNTOS LOS RECUERDOS DE AQUELLOS MOMENTOS VIVEN EN MI Y LOS VIVIRE DE NUEVO SIEMPRE AL RECORDARLOS.

A MIS CATEDRATICOS POR DARME LA GUÍA PARA CONCLUIR CON MI CARRERA Y EMPEZAR MI VERDADERA PROFESIÓN, PORQUE LO INGENIEROS QUE DEDICAN TIEMPO A LA FORMACIÓN DE FUTUROS GRANDES INGENIEROS TAMBÍEN SON GRANDES INGENIEROS.

(4)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

INDICE DE CONTENIDO GENERAL

CAPITULO I: INTRODUCCIÓN………. 8

1.1 PLANTEAMIENTO DEL PROBLEMA……… 9

1.2 HIPÓTESIS………….………. 9

1.3 OBJETIVOS……… 10

1.3.1 OBJETIVO GENERAL

1.3.2 OBJETIVOS ESPECÍFICOS

1.4 JUSTIFICACIÓN……… 10

1.5 ALCANCES Y LIMITACIONES………... 11

CAPITULO II: DIAGNÓSTICO DEL ROBOT HEXÁPODO………. 12

2.1 INTRODUCCIÓN TEÓRICA ACERCA DE LA ROBÓTICA………...12

2.1.1 DEFINICIÓN DE LA ROBÓTICA

2.1.2 BREVE RESEÑA HISTORICA DE LA ROBÓTICA…………..………13

2.1.3 CLASIFICACIÓNES DE LOS ROBOTS……… 15

2.1.4 ALGUNAS APLICACIONES DE LA ROBÓTICA…………..……….. 15

2.2 DESCRIPCIÓN DEL ROBOT HEXÁPODO………...16

2.2.1 DESCRIPCIÓN FÍSICA………. 17

2.2.2 COMPONENTES A UTILIZAR…………..………... 18

2.2.3 MODOS DE PROGRAMACIÓN……….. 22

2.3 PROGRAMAS DE PRUEBA Y DIAGNÓSTICO……….. 25

2.3.1 PRIMER PROGRAMA: MOVIENDO UN MOTOR DYNAMIXEL………….. 25

(5)

CAPITULO III: FUNDAMENTO TEÓRICO……….. 31

3.1 CINEMÁTICA DEL ROBOT………..31

3.1.1 PROBLEMA CINEMÁTICO DIRECTO……….. 31

3.1.2 PROBLEMA CINEMÁTICO INVERSO……….. 32

3.2 CONTROL CINEMÁTIVO DEL ROBOT……...……….……...33

3.2.1 FUNCIONES DEL CONTROL CINEMÁTICO………..………..33

3.2.2 TIPOS DE TRAYECTORIAS……….34

3.3 PROGRAMACIÓN DE UN ROBOT………... 35

3.3.1 PROGRAMACIÓN POR GUIADO………...36

3.3.2 PROGRAMACIÓN TEXTUAL………...37

3.4 MICROCONTROLADORES……….38

3.4.1 DEFINICIÓN Y DESCRIPCIÓN………... 38

3.4.2 PRINCIPALES FABRICANTES………... 38

3.5 INTERFAZ GRÁFICA DE USUARIO………...40

CAPITULO IV: DESARROLLO DEL PROYECTO……….43

4.1 OBTENCIÓN DEL MODELO CINEMÁTICO DIRECTO……….43

4.1.1 ANÁLISIS DE POSICIÓN……….43

4.1.2 DISEÑO DEL PROGRAMA DE TRAYECTORIAS………..45

4.1.3 EXPERIMENTO DE VALIDACIÓN DEL MODELO CINEMÁTICO………...46

4.2 INTERFAZ VISUAL DE CONTROL………51

4.2.1 DISEÑO DEL PROGRAMA………...51

4.2.2 RUTINAS PROGRAMADAS PARA EL ROBOT………..53

4.2.3 PRUEBAS DE FUNCIONAMIENTO………54

4.2.4 COMUNICACIÓN PC – ROBOT………..55

(6)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

5.1 PROGRAMAS DE DIAGNÓSTICO………...57

5.2 PROGRAMA DE TRAYECTORIAS………...58

5.3 INTERFAZ GRÁFICA DE USUARIO……….60

RECOMENDACIONES Y CONCLUSIONES FINALES

RECOMENDACIONES PARA TRABAJO FUTURO………...………..62

CONCLUSIONES SOBRE EL PROYECTO……...……….62

BIBLIOGRAFIA……….63

ANEXOS

A1. TABLA DE DIRECCIONES DE LOS DYNAMIXEL………64

A2. INSTALACIÓN DE WINAVR Y AVR STUDIO 5………..65

A3. CREACIÓN DE UN NUEVO PROYECTO EN AVR STUDIO 5……...72

A4. GRABAR UN PROGRAMA CON ROBOPLUS TERMINAL………..………. 74

A5. CÓDIGO DEL PRIMER PROGRAMA DE PRUEBA………..…………...75

A6. CÓDIGO DEL SEGUNDO PROGRAMA DE PRUEBA………..…………...78

A7. CÓDIGO DEL PROGRAMA DE ENVÍO DE TRAYECTORIAS……..……….80

A8. CÓDIGO DEL PROGRAMA DE LA INTERFAZ VISUAL……….94

CAPÍTULO I:

INTRODUCCIÓN

(7)

ciencia cuyo estudio está basado en una de las sorprendentes conocidas partículas subatómicas, el electrón, y por el cual esta ciencia es llamada Electrónica.

La robótica ha aplicado muchos conocimientos de la computación en la resolución de problemas, es muy común hoy en día ver robots que son manipulados y controlados a través de un ordenador ejecutando un programa informático.

En la electrónica es muy conocida una rama que ha tenido diversas aplicaciones y desarrollos importantes con la evolución de la tecnología, el control. Y quien dice que el control no ha sido aplicado a la robótica, para su mejor estudio, en la robótica existen muchas y distintas variables en las cuales el control es aplicado para tener el mejor valor de estas y las condiciones sean las mas favorables para las aplicaciones que se hagan.

Un ejemplo para ilustrar mejor este punto, si un robot móvil debe mantener una misma posición durante un desplazamiento hay ciertas variables que se deben mantener en un cierto parámetro para que esta posición no se alteren, como podría ser un ángulo de inclinación de su centro de gravedad, para lo cual se debe emplear un sistema de control que primero de una lectura de su ángulo de inclinación respecto a un punto de referencia, determinar si el valor obtenido esta dentro de un rango adecuado y si esto no se cumpliera aplicar el control, el cual podría ser un motor o mecanismo que modificara la posición hasta llegar a un valor adecuado.

En el presente trabajo se trató el control por computadora de un robot hexápodo para exploración, durante su desarrollo podrán aplicarse muchos conceptos de programación, electrónica y control. El proyecto fue desarrollado en las instalaciones del Centro de Investigación en Ciencia Aplicada y Tecnología Avanzada del Instituto Politécnico Nacional (CICATA-IPN), en la ciudad de Santiago de Querétaro.

1.1PLANTEAMIENTO DEL PROBLEMA

(8)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

El inconveniente se encuentra que, al ser una interfaz cerrada, esta no permite la realización de otras operaciones lógicas y aritméticas para un adecuado control, y resulta muy complicado su uso para alguien con poco conocimiento o experiencia en el control de robots por computadora. Por tal motivo se pretende realizar un control con un programa distinto que sea desarrollado propiamente en el laboratorio de mecatrónica del centro de investigación y que pueda ser de fácil entendimiento e interpretación para que resulte simple y sencillo de ejecutar para usuarios con distinto nivel de conocimientos en el tema de control de robots.

1.2HIPÓTESIS

Con una interfaz de control más abierta y amigable para el usuario, se podrán simplificar muchas funciones para el control del robot, podrá ser manipulado no solo por un único usuario si no por cualquier persona sin importar que no cuente con una gran capacidad en el control de robots por computadora.

Además de lo anterior se tendrá el beneficio de un mejor entendimiento de los datos y/o mediciones que se obtengan durante la ejecución del control del robot, el programa podrá ser sin ningún problema modificado o rediseñado para las mejoras que se deseen implementar posteriormente ya que tendrá la ventaja de ser un programa propio del centro de investigación y no protegido por derechos de autor externos.

En conjunto, se tendrá un control mucho más abierto, versátil y fácil de entender, lo cual puede favorecer en un ahorro de tiempo en cuanto a capacitación de usuarios para las distintas tareas de exploración en las que se pueda emplear el robot.

1.3OBJETIVOS

1.3.1 Objetivo General:

(9)

1.3.2 Objetivos Específicos:

o Investigar sobre los distintos lenguajes útiles para la programación de robots así como para programación visual.

o Diseñar y programar los algoritmos de prueba para conocer las funcionalidades, alcances y limitaciones del robot.

o Comunicar la tarjeta de control del robot con la PC.

o Diseñar la interfaz visual para el control y operación final del robot hexápodo.

o Programar las rutinas que se hayan definido para el robot previamente y hacer las correcciones necesarias de los errores que se puedan presentar.

1.4JUSTIFICACIÓN:

En la actualidad existen muchos y variados tipos de robots controlados por computadora o dispositivos remotos que se basan en programas que pueden resultar difíciles de entender y manejar, peor aún si el entorno de trabajo es arcaico y obsoleto.

Estas desventajas cuestan valioso tiempo y capacitación para que los operadores puedan aprender a como manipular y usar el programa de control y puede resultar muy tedioso si la interfaz del programa si la interfaz del programa es solo una pantalla negra para introducir comandos.

Por esta y otras razones el desarrollo de una interfaz de usuario amigable facilitará en gran medida el control y operación del robot hexápodo para que pueda ser manejado por distintos usuarios sin importar el nivel de conocimiento o experiencia que tengan en el control de robots por computadora.

1.5ALCANCES Y LIMITACIONES DEL PROYECTO

Alcances:

(10)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

La interfaz gráfica de usuario provee un ambiente amigable para el control y manejo del robot hexápodo, pudiendo ser usada por personas que no tengan tanta experiencia y conocimientos en el manejo de este tipo de robots.

Además el programa tiene la ventaja de estar hecho en un lenguaje cuyo costo de licencia es relativamente accesible comparado con otros lenguajes de programación más avanzados y al mismo tiempo innecesarios.

Esto se puede resumir en que se pueden realizar acciones de desplazamiento y cambio de posición mediante rutinas simples y fáciles de ejecutar.

Limitaciones:

Se deben considerar ciertas características que en este momento limitan al proyecto, algunas de ellas son:

La programación de la cinemática: Durante el desarrollo del proyecto se programó una

secuencia de movimientos para un correcto desplazamiento con condiciones ya preestablecidas en un ambiente conocido, esto quiere decir que la cinemática está ajustada a un entorno determinado, por lo que el programa debe ser reajustado para su implementación en ambientes nuevos o desconocidos.

Reconocimiento del entorno: La interfaz solo controla el desplazamiento del robot no tiene

incorporada una lectura de sensores o reconocimiento del terreno en el que el robot se encuentra. Es necesario que esta función sea incorporada al programa para trabajos futuros.

CAPITULO II:

(11)

Es importante hacer una revisión del robot en el que se implementará el control que se va a desarrollar, cuáles son sus características físicas, funcionamiento, modos de programación, pero antes, es importante tener una breve introducción teórica acerca de la robótica y sus aplicaciones, para tener una idea más clara sobre nuestro robot.

2.1 INTRODUCCIÓN TEÓRICA ACERCA DE LA ROBÓTICA

2.1.1 Definición de la Robótica:

En el término robot confluyen las imágenes de máquinas para la realización de trabajos productivos y de imitación de movimientos y comportamientos de seres vivos.

La robótica es la ciencia encaminada a diseñar y construir aparatos y sistemas capaces de realizar tareas propias de un ser humano.

Los robots actuales son obras de ingeniería y como tales concebidas para producir bienes y servicios o explotar recursos naturales.

Otra definición que se tiene para robótica, es la ciencia que trata acerca del diseño y la implementación de maquinas capaces de emular el comportamiento de un ser vivo, se sirve de otras áreas como la inteligencia artificial, la lógica, el álgebra, para poder hacer la complicada tarea de resolver problemas de la mejor manera posible.

La mayoría de sus definiciones vienen a encajar a los robots de manufactura que son los más utilizados, esto se debe principalmente a que el concepto de robot y manipulador tiende a ser confundido. Por ejemplo, en Japón no se exige mucha complejidad al nombrar un robot, basta con que sea un dispositivo mecánico destinado a la manipulación.

(12)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

Figura 2.1: Robot y si interacción con el entorno.

2.1.2 Breve Reseña Histórica de la Robótica:

A lo largo de la historia el hombre se ha sentido fascinado por máquinas y dispositivos capaces de imitar las funciones y los movimientos de los seres vivos. Los griegos tenían una palabra específica para denominar a estas máquinas: automatos. De esta palabra el término actual

autómata: máquina que imita la figura y movimientos de un ser animado.

Tabla 2.1: Algunos autómatas famosos.

La palabra robotfue usada por primera vez en el año de 1921, cuando el escritor checo KarelCapek estrena su obra Rossum’s Universal Robot. Su origen es la palabra eslava robota, que se refiere al trabajo realizado de manera forzada.

(13)

Sin duda alguna el mayor impulsor de la palabra robot fue el escritor americano de origen ruso

Isaac Asimov (1920-1992), que en octubre de 1945 público en la revista GalaxyScienceFiction

una historia en la que por primera vez enunció sus tres leyes de la robótica.

1. Un robot no puede causar daño a un ser humano ni, por omisión, permitir que un ser humano sufra daños.

2. Un robot debe obedecer las órdenes dadas por los seres humanos, salvo cuando tales órdenes entren en conflicto con la Primera Ley.

3. Un robot ha de proteger su existencia, siempre que dicha protección no entre en conflicto con la Primera o la Segunda Ley.

Figura 2.2: Isaac Asimov (1920-1992) Escritor, Impulsor del término robot.

Los progenitores más directos de los robots fueron los telemanipuladores, el primer manipulador desarrollado en 1948 por R.C. Goertz del ArgonneNationalLaboratory tenía por objetivo manipular elementos radioactivos si riesgo para el operador, este consistía en un dispositivo mecánico maestro-esclavo.

El manipulador maestro, situado en la zona segura era movido por el operador, mientras que el esclavo, situado en contacto con los elementos radioactivos y unido mecánicamente al maestro reproducía fielmente los movimientos de este.

El operador además de poder observar el resultado de sus acciones a través de un grueso cristal, sentía a través del dispositivo maestro, las fuerzas que el esclavo ejercía sobre el entorno.

(14)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

Buena parte de las definiciones y clasificaciones de robots existentes responde al robot ampliamente utilizado hasta la fecha, destinado a la fabricación flexible de series medias y que se conoce como robot industrial o robot de producción. Frente a estos los robots especiales también denominados robots de servicio, están aun en un estado de desarrollo incipiente, aunque es previsible un considerable desarrollo de los mismos.

En las siguientes tablas podemos ver las clasificaciones de los robots de acuerdo a su tipo y a su generación.

Tabla 2.2: Clasificación de los robots según la AFRI

Tabla 2.3: Clasificación de los robots industriales por generación.

2.1.4 Algunas Aplicaciones de la Robótica:

(15)

Figura 2.3: Algunos robot existentes actualmente

2.2 DESCRIPCIÓN DEL ROBOT HEXÁPODO

El robot en el que se implementará el control es un robot hexápodo, es decir constituido de seis extremidades, se trata de un kit de robótica fabricado y comercializado por la compañía coreana Robotis, la cual se dedica a la producción y venta de kits de aprendizaje de robots armables y programables con fines didácticos, este kit fue adaptado para prototipo del proyecto de un robot de exploración e inspección.

(16)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

2.2.1 Descripción Física:

El robot es un kit de robótica fabricado y vendido porla compañía coreana Robotis, puede ser armado en varias formas diferentes las cuales se observan en la figura 2.5:

Figura 2.5: Kit RobotisBioloid en sus diferentes formas armables: humanoide, cachorro, dinosaurio, araña y escorpión.

(17)

2.2.2 Componentes a Utilizar:

Controlador CM -510:

El cerebro del robot a él se conectan los actuadores y sensores para detectar, identificar el entorno y desplazar el robot. Cuenta con un microcontrolador ATMEL AVR 2561.

Figura 2.7: Controlador CM-510

A continuación la descripción de las funciones y conexiones del CM-510.

(18)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

Entrada de cable serial: Para conectar el cable serial BIOLOID y comunicar al CM-510

con la PC y descargar el programa.

Entrada de comunicación inalámbrica: Para conectar dispositivos de comunicación

inalámbrica.

Entrada de Batería: Para conectar la batería.

Entrada de Alimentación: Para conectar la alimentación del eliminador.

LED de encendido: Indicador de encendido y apagado.

Switch de encendido: Para apagar y encender el controlador.

Botón de Modo: Para cambiar el modo de operación actual del controlador.

Botón Start: Para iniciar el modo de operación seleccionado.

Botones U/L/D/R: Se usan para propósitos internos cuando se está ejecutando un

programa, estos botones pueden ser usados para enviar comandos al robot.

Puertos AX/MX: Para la conexión de motores Dynamixel en un solo bus de datos.

Puertos periféricos: Para conectar otros dispositivos tales como sensores.

LED indicador de Modo: Indica el modo actual en que se está operando el cual puede ser:

 Dirección (Manage): Usado para operaciones de prueba para el controlador Cm-510 o los motores Dynamixel desde el Roboplus Manager.

 Programa (Program): Indica que se está modificando el programa principal del robot en RoboplusMotion.

 Ejecutar (Play): Indica programa en ejecución.

LED indicador de estado: Indica el estado actual del controlador los que pueden ser:

 TxD: Se enciende cuando se transmiten datos al exterior.

 RxD: Encendido cuando se reciben datos del exterior.

 AUX: LED asignado para ser usado por el usuario en un programa.

(19)

Dynamixel AX-12+, Motores inteligentes, poseen un propio micro controlador interno el cual se encarga de recibir las instrucciones del controlador principal y mover los mores de acuerdo a lo que reciba, de ellos se pueden obtener valores de retroalimentación tales como posición actual, velocidad, torque máximo, voltaje, temperatura, entre otros.

Figura 2.9: Dynamixel Serie AX-12+.

Estos motores utilizan la comunicación de tipo half dúplex y tienen la facilidad que pueden conectarse una gran cantidad de motores a un solo bus de comunicación parecido al protocolo I2C de los microcontroladores.

Principales características de los motores dynamixel:

 Resolución 0.35°

 Ángulo de operación 300°, Modo vuelta

 Voltaje 7V~10V (Recomendado: 9.6V)

 Corriente Máxima 900mA

 Temperatura de operación -5 ~ +85 °C

 Paquete Digital de Comandos de Señal

 Protocolo de comunicación Asíncrona HalfDuplex (8bits, 1Paro, Sin paridad)

 Conectores en cadena.

 ID 254 ID (0~253)

 Velocidad de comunicación 7343bps ~ 1 Mbps

 Retroalimentación, posición, temperatura, carga, voltaje de entrada, etc.

 Material de plástico de ingeniería.

(20)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

La asignación de pines es la siguiente:

Figura 2.10: Asignación de pines Dynamixel AX-12.

(21)

Figura 2.13: Ejemplo de conexión de los Dynamixel con una PC mediante un controlador CM-5.

2.2.3 Modos de Programación:

El robot tipo hexápodo es un kit de robótica ensamblado de la marca ROBOTIS – BIOLOID, el cual simula movimientos y apariencia de una araña real. En su estructura se aprecia que tiene seis extremidades, en cada una 3 servomotores con 300° de libertad cada uno los cuales permiten el movimiento de las articulaciones y en conjunto el desplazamiento de todo el robot. En la parte central se encuentra el Controlador CM-510 también del mismo kit de la misma marca al que se conectan los motores y es el que envía las señales para activarlos y ejecutar los programas de locomoción. En resumen es el cerebro del robot.

Figura 2.14: Robot con controlador CM-510

El kit de Bioloid trae incorporado una interfaz pre programada para usuario llamada

Roboplusuna suite de varios programas con los que se puede controlar tanto al robot como a

(22)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

La desventaja de esta interfaz es que es muy cerrada con funciones básicas y limitadas sin la posibilidad de hacer cambios o introducir nuevas rutinas, ya que se desea que el robot haga cálculos internos para de esta forma adaptarse al entorno en el que se desplace, y ser más autónomo.

Figura 2.15: Ventana Principal de Roboplus.

De esta suite 3 son los programas que están hechos para el control del robot:

1. RoboplusMotion: Con él se puede controlar al robot en su totalidad, es decir se asigna un

número de posiciones para ejecutar una secuencia, en cada paso de la secuencia se envía una posición distinta y así dar movimiento al robot, ya sea para desplazarlo o solo para cambiar su posición.

2. RoboplusTask: Realiza las mismas funciones que el Motion, con la diferencia de que las

posiciones se envían a través de líneas de código estructurado.

3. DynamixelWizard: DynamixelWizard, solo funciona para controlar los motores

(23)

Figura 2.16: Interfaz de RoboplusMotion (Cambiar) incluir Task y Wizard.

Por esta razón se inició la búsqueda de si había posibilidad de programar la tarjeta con otro programa que fuera compatible y más amplio.

La compañía coreana Robotis en su página de soporte explica brevemente la forma de programar la tarjeta de control del robot. Ahí nos dice que el controlador de la tarjeta puede ser también programado en lenguaje C embebido con el compilador AVR Studio.

Este software está disponible para su descarga en la página de ATMEL, los requerimientos principales para su instalación son:

1. Tener instalado WinAVR (Programa de compatibilidad para Windows), también disponible en la página de ATMEL.

2. Instalación de Microsoft Visual Studio, AVR Studio corre en Visual Studio.

Se instalo AVR Studio en la PC para empezar con las pruebas necesarias y los programas para hacer las rutinas del robot.

(24)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

Figura 2.19: Ventana Principal de AVR Studio 5.

Con AVR Studio se harán los primeros programas de prueba para conocer el proceso de programación con este método, los programas se describirán en el siguiente apartado.

2.3 PROGRAMAS DE PRUEBA Y DIAGNÓSTICO:

Estos programas se hacen con el fin de introducción y para familiarizarse con la programación de los motores Dynamixel con AVR Studio y así iniciar el desarrollo del programa de control para el robot.

2.3.1 Primer Programa: Moviendo un Motor Dynamixel.

Para el programa completo se necesitan leer datos de entrada que serian el ID del motor y la posición en que queremos se sitúe. Además podemos usar valores constantes para ciertas propiedades y métodos propios de los motores esos valores se declaran en otro archivo el cual luego es incluido en el código principal.

Para compilar con éxito estos códigos es necesario tener instaladas 2 librerías especiales de Robotis para el C embebido las cuales son Dynamixel.h y Serial.h.

(25)

Para escribir un nuevo valor el motor se utiliza la siguiente función:

dxl_write_word(id, dirección, valor)

Donde:

Id: ID del motor el cual se asigna con el software de Roboplus.

Dirección: La dirección de memoria en la que se va a escribir el valor (Posición, velocidad, etc.). Valor: El valor de rango que se desea introducir, los motores normalmente manejan un rango desde 0 hasta 1023.

Una vez hecho el código se procede a construir el proyecto para luego grabar el programa en la tarjeta.

Los resultados de este programa se muestran en el capítulo V Resultados Obtenidos.

Figura 2.20: Construcción del Proyecto en AVR Studio.

Una vez construido el programa el procedimiento para grabarlo en el controlador es muy simple. Al construir el proyecto se genera un archivo de tipo hexadecimal (.hex), el cual se graba al micro controlador de la tarjeta mediante la Roboplus Terminal y un cable serial conectado a la tarjeta.

(26)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

Figura 2.21: Ventana de Roboplus Terminal

(27)

Al cargar y ejecutar el primer programa el resultado fue el siguiente:

Figura 2.23: Carga del primer programa.

Podemos observar en la ventana del programa la posición que se envía al motor es introducida en grados, como se menciono en las características de los Dynamixel tienen un rango de movimiento de 0° - 300° en modo servo, sin embargo, los valores para esta variable al ser un dato entero deben ser expresados en valores de 0 – 1023 (1 byte), para así ser enviados al controlador del motor.

(28)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

Figura 2.24: Rango de movimiento del Dynamixel Ax-12, se muestran los valores en grados, valores de posición y hexadecimal.

2.3.2 Segundo Programa: Moviendo un Dynamixel en Varias Posiciones

En el programa anterior logramos el objetivo de mover un motor a cualquier posición deseada, pero lo importante para hacer que las extremidades del robot se desplacen y den movimiento al hexápodo es que los motores puedan adoptar varias posiciones en una sola secuencia, por ello se necesita poder programar estas secuencias de posiciones o bien pueden ser llamadas trayectorias.

Si en la interfaz del programa RoboplusMotion se pueden enviar varias posiciones en una secuencia de un número de pasos por que no se podría hacer en el mismo procedimiento en un programa en AVR Studio, aquí se dedujo que si se puede enviar un valor entero de posición al motor por qué no enviar una seria de valores distintos, en resumen un arreglo de enteros. El programa funciona con un arreglo de números enteros los cuales son las posiciones que se le enviarán al motor solo se introduce antes el ID del motor al que se le enviarán las posiciones. El arreglo es de 4 posiciones, una vez lleno las posiciones son enviadas al motor una a una, se creó una función la cual se ejecuta entre el envío de cada valor para garantizar que el motor llegue a la posición indicada antes de enviar la siguiente.

(29)

Figura 2.25: Carga del segundo programa.

En este programa no se aplicó la regla de conversión ya que lo que se necesitaba era ubicar al motor en las posiciones del arreglo que se le enviaran.

(30)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

CAPÍTULO III:

FUNDAMENTO TEÓRICO

3.1 CINEMÁTICA DEL ROBOT

La cinemática es la ciencia del movimiento, la cual trata del movimiento sin considerarse las fuerzas que lo causan, en ella se estudian la posición, velocidad, aceleración y cualquier variable de orden superior derivada de las variables de posición (respecto al tiempo u otras variables). [3]

La cinemática del robot estudia el movimiento del mismo con respecto a un sistema de referencia. Así la cinemática se interesa por la descripción analítica del movimiento espacial del robot como una función del tiempo, y en particular por las relaciones entre la posición y la orientación del extremo final del robot con los valores que toman sus coordenadas articulares.

Existen 2 problemas fundamentales a resolver en la cinemática del robot:

3.1.1 Problema Cinemático Directo:

Consiste en determinar cuál es la posición y orientación del extremo final del robot, con respecto a un sistema de coordenadas que se toma como referencia, conociendo los valores articulares y parámetros geométricos de los elementos del robot.

Se utiliza fundamentalmente algebra vectorial y matricial para representar y describir la localización de un objeto en el espacio tridimensional con respecto a un sistema de referencia fijo.

Dado que un robot se puede considerar como una cadena cinemática formada por objetos rígidos o eslabones unidos por articulaciones, se puede establecer un sistema de referencia fijo en la base del robot y describir la localización de cada uno de los eslabones con respecto a dicho sistema de referencia.

De esta forma, el problema cinemático directo se reduce encontrar una matriz homogénea de transformación T que relacione la posición y orientación del extremo del robot respecto del sistema de referencia fijo situado en la base del mismo. Esta matriz T será función de las coordenadas articulares.

(31)

3.1.2 Problema cinemático Inverso:

Resuelve la configuración que debe adoptar el robot para una posición y orientación del extremo conocidas.

El objetivo del problema cinemático inverso consiste en encontrar los valores que deben adoptar las coordenadas articulares del robot para que su extremo se posicione y oriente según una determinada localización espacial.

Así como es posible abordar el problema cinemático directo de una manera sistemática a partir de la utilización de matrices de transformación homogéneas, e independientemente de la configuración del robot, no ocurre lo mismo con el problema cinemático inverso, siendo el procedimiento de obtención de las ecuaciones, fuertemente dependiente de la configuración del robot.

Figura 3.1: Diagrama de Relación del Problema Cinemático directo e Inverso.

(32)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

3.2 CONTROL CINEMÁTICO DEL ROBOT:

El control cinemático establece cuáles son las trayectorias que debe seguir cada articulación del robot a lo largo del tiempo para lograr los objetivos fijados por el usuario (punto de destino, trayectoria cartesiana del efector final del robot, tiempo invertido por el usuario, etc.)

3.2.1 Funciones del Control Cinemático:

En a figura 3.2 se muestra de manera esquemática el funcionamiento del control cinemático.

Figura 3.2: Funcionamiento del Control Cinemático.

Recibe de entrada los datos procedentes del programa del robot escrito por el usuario (punto de destino, precisión, tipo de trayectoria deseada, velocidad, o tiempo invertido, entre otros), y apoyándose en el modelo cinemático del robot establece las trayectorias para cada articulación como funciones del tiempo.

(33)

3.2.2 Tipos de Trayectorias:

Para realizar una tarea determinada el robot debe moverse desde un punto inicial a un punto final. Este movimiento puede ser realizado según infinitas trayectorias espaciales. De este modo, puede encontrarse que los robots dispongan de trayectorias punto a punto, coordinadas y continúas.

Trayectorias Continuas:

En este tipo de trayectorias cada articulación evoluciona desde su posición inicial a la final sin realizar consideración alguna sobre el estado o evolución de las demás articulaciones. Normalmente, cada actuador trata de llevar a su articulación al punto de destino en el menor tiempo posible.

Existen 2 casos para esta trayectoria, movimiento eje a eje y movimiento simultáneo de ejes, en el primer caso solo se mueve un eje a la vez, comenzará a moverse la primera articulación y cuando esta haya alcanzado su punto final lo hará la siguiente, para el segundo caso como su nombre lo indica todos los ejes comienzan a mover las articulaciones simultáneamente a una velocidad específica para cada una de ellas.

Trayectorias Coordinadas o Isócronas:

Para evitar que algunos actuadores trabajen forzando sus velocidades o aceleraciones, teniendo que esperar después la conclusión del movimiento de la articulación más lenta, puede hacerse un cálculo previo, averiguando cuál es esta articulación y que tiempo invertirá. Se ralentizará entonces el movimiento del resto de los ejes para que inviertan el mismo tiempo en su movimiento, acabando todos ellos simultáneamente. Se tiene así que todas las articulaciones se coordinan comenzando y acabando su movimiento a la vez, adaptándose todas a la más lenta.

Trayectorias Continúas:

(34)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

En la figura 2.4 se representan las trayectorias articulares q1(t) y q2(t) y el resultado final en el espacio de la tarea (x, y) para un robot tipo SCARA correspondientes a los 4 tipos de trayectorias indicadas.

Figura 3.3: Diferentes trayectorias articulares posibles para un robot SCARA de 2 GDL, a) Movimiento eje a eje, b) Movimiento simultáneo de ejes, c) Trayectoria coordinada, d) Trayectoria continúa recta.

3.3 PROGRAMACIÓN DE UN ROBOT:

La sofisticación de la interfaz de usuario se ha vuelto extremadamente importante, así como los manipuladores y otros autómatas programables son aplicados a más y más aplicaciones industriales demandantes, resulta en que la naturaleza de la interfaz de usuario es una preocupación importante. De hecho una gran parte del reto del diseño y el uso de robots industriales se enfoca en este aspecto del problema.

(35)

El sistema de programación es la herramienta con la que cuenta el usuario para acceder a las diversas prestaciones del robot, existiendo una relación directa entre las características y posibilidades del sistema de programación y las del robot en sí mismo.

Existen diversos criterios para realizar una clasificación de los métodos de programación de robots. Algunos atienden a la potencia de método, mientras que otras clasificaciones hacen referencia al sistema empleado para indicar las acciones a realizar. Este criterio es más ilustrativo a la hora de dar a conocer alternativas existentes a la hora de programar un robot.

Según este criterio un robot puede ser programado mediante lo que se denomina guiado o mediante un procedimiento textual, existiendo robots que conjugan ambos tipos.

3.3.1 Programación por Guiado:

La programación por guiado consiste en desplazar un sistema de referencia asociado al robot (en el efector final de los manipuladores, o en el centro de guiado de los vehículos autónomos), de forma que se alcancen las configuraciones deseadas a la vez que se registran sus valores. En otros términos, el robot actúa como un digitalizador de posiciones en un espacio con tantas dimensiones como articulaciones tiene, por las que se desea que pase en la fase de ejecución, por las que se desea que pase en la fase de ejecución. Otros autores utilizan términos diferentes para definir a la programación por guiado algunos tales como: Programación no textual, programación por aprendizaje, programación en línea y programación en modo enseñanza. El dispositivo más usado en la programación por guiado de robots manipuladores industriales es la botonera de programación, en la figura 3.4 se muestran algunas de ellas.

(36)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

La programación por guiado es conceptualmente simple y no requiere el estudio de lenguajes de programación. Sin embargo, existen problemas para incorporar la percepción del entorno y las estructuras de decisión.

3.3.2 Programación Textual:

Como alternativa a la programación por guiado, el método de programación textual permite indicar la tarea al robot mediante el uso de un lenguaje de programación específico. Un programa se corresponde ahora, como en el caso de un programa general, con una serie de órdenes editadas y ejecutadas posteriormente.

La programación textual puede ser clasificada en tres niveles: robot, objeto y tarea, dependiendo de que las órdenes se refieran a los movimientos a realizar por el robot, al estado en que deben ir quedando los objetos manipulados o al objetivo a conseguir.

En el estado actual, la programación de robots se queda materialmente en el primero de ellos (nivel robot), existiendo una gran cantidad de lenguajes de programación textual a este nivel, de entre los que se pueden destacar por orden cronológico:

Figura 3.5: Lenguajes de Programación Textual de Robots por Orden Cronológico.

(37)

3.4 MICROCONTROLADORES:

3.4.1 Definición y Descripción:

Un microcontrolador es un circuito integrado o chip que incluye en su interior las tres

unidades funcionales de una computadora: CPU, Memoria y Unidades de E/S, es decir, se trata de un computador completo en un solo circuito integrado.

Son diseñados para disminuir el coste económico y el consumo de energía de un sistema en particular. Por eso el tamaño de la CPU, la cantidad de memoria y los periféricos incluidos dependerán de la aplicación.

La figura 3.7 muestra la arquitectura de los componentes de un microcontrolador:

Figura 3.7: Arquitectura de un Microcontrolador.

3.4.2 Principales Fabricantes de Microcontroladores:

Microchip Technology Inc.

Empresa fabricante de microcontroladores, memorias y semiconductores analógicos, situada en Chandler, Arizona, Estados Unidos.

Los productos que fabricaba eran los microcontroladores PIC y de las memorias EEPROM y

(38)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

Algunos de sus productos son:

 Microcontroladores PIC.

 PIC16F84

 PIC16F87X

 PIC16F88  PIC24H

 dsPIC30F y dsPIC33F.

 PIC32 (MCUS de 32 bits)

 Productos analógicos.

 Memorias.

 Productos de radio-frecuencia.

Adicionalmente Microchip Technology Inc. tiene herramientas de desarrollo que facilitan la programación de sus diversos dispositivos.

Figura 3.8: Microcontrolador PIC de Microchip.

ATMEL

Compañía de semiconductores, fundada en 1984. Su línea de productos incluye

microcontroladores (incluyendo derivados del 8051, el AT91SAM basados en ARM, y sus arquitecturas propias AVR y AVR32), dispositivos de radiofrecuencia, memorias EEPROM y

Flash, ASICs, WiMAX, y muchas otras.

(39)

Atmel sirve a los mercados de la electrónica de consumo, comunicaciones, computadores, redes, electrónica industrial, equipos médicos, automotriz, aeroespacial y militar. Es una industria líder en sistemas seguros, especialmente en el mercado de las tarjetas seguras.

El presidente y CEO de Atmel es George Perlegos, y su hermano Gust Perlegos es vicepresidente. El número de empleados es de aproximadamente 7,500, y sus oficinas centrales se ubican en San José, California.

Atmel posee cinco fábricas de semiconductores:

 Fab5 en Colorado Springs, USA.

 Fab7 en Rousset, Francia.

 Fab9 en North Tyneside, Inglaterra.

 Una fábrica en Heilbronn, Alemania.

 Una fabrica en Grenoble, Francia.

Entre sus principales competidores se encuentra STMicroelectronics, Texas Instruments, Freescale, Analog Devices y Microchip Technology.

Figura 3.9: Microcontrolador de Atmel.

3.5 INTERFAZ GRÁFICA DE USUARIO:

Interfaz gráfica de usuario (GUI), acrónimo en inglés de Graphical User Interface.

(40)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

Figura 3.10: Función de la Interfaz Gráfica.

El origen de las GUIs se podría decir que tuvo lugar gracias a las teorías de Vannevar Bush. En el año 1945 publicó su ya famoso artículo “Como debemos pensar”, en el cual proponía una herramienta de información y administración: Memex. Dicho sistema permitía almacenar y hacerlos más accesibles, vinculándolos entre ellos.

Otro famoso pionero fue Ivan Sutherland, estudiante de Doctorado del MIT, que desarrolló en su tesis doctoral un programa llamado “Sketchpad” que permitía la manipulación directa de objetos gráficos en una pantalla CRT usando un lápiz óptico.

Incluía la capacidad de acercar y alejar la imagen en la pantalla, el suministro de memoria para almacenar objetos y la habilidad de dibujar líneas y esquinas precisas en la pantalla.

Douglas Engelbart fue un brillante científico que, influenciado por las teorías de Vannevar Bush, trabajó en la investigación sobre la interacción Hombre-Máquina. Inventó el primer ratón, que usaría, posteriormente, en el NLS (ONLine System).

Se produjo un gran progreso en el centro Xerox de investigación de Palo Alto (PARC), centro que perseguía crear “la arquitectura de la información” y “la humanización de los ordenadores”. Entre muchos de sus inventos se puede destacar el desarrollo de la primera GUI, que debutó en el ordenador Alto.

(41)

El Apple Macintosh, lanzado en 1984, fue el primer uso comercial exitoso de una GUI. Tuvo tanta relevancia que, desde entonces, casi todos los sistemas usan una GUI como interfaz con el usuario

Microsoft anunció el desarrollo de su primer sistema operativo gráfico en 1983 pero la versión inicial (Windows 1.0) fue presentada dos años más tarde. Windows 2.0 (presentada en diciembre de 1987) representó una mejora sobre la anterior versión con la incorporación de iconos y ventanas superpuestas, pero no fue hasta 1995 con el lanzamiento de Windows 95 que Microsoft fue capaz de ofrecer una GUI con una calidad relativamente buena, aunque aún sigue sin estar a la altura de la ofrecida por Apple.

Actualmente, y ya desde hace años, las interfaces gráficas de usuario están amplísimamente implantadas. Se podría decir que la totalidad de los ordenadores del mundo cuentan con alguna variedad instalada, así como otros tipos de aparatos: teléfonos móviles multimedia, PDAs.

(42)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

CAPÍTULO IV:

DESARROLLO DEL PROYECTO

4.1 OBTENCIÓN DEL MÓDELO CINEMÁTICO 4.1.1 Análisis de Posición:

Como vimos anteriormente en el fundamento teórico, cada extremidad resulta en un sistema cuyo efector final trabajar en un espacio tridimensional delimitado por el rango de operación de las articulaciones.

Ya que el objetivo principal de este proyecto es el control por computadora, una de las etapas importantes a completar es poder controlar y determinar la posición en la que se encuentra nuestro efector para cada punto de una trayectoria en la que la extremidad se desplace.

En la siguiente figura se muestra la configuración del robot hexápodo que se asignó para el análisis de posición, cabe mencionar que la imagen pertenece a un artículo publicado del Centro de Investigación en Ciencia Aplicada y Tecnología Avanzada del IPN de la ciudad de Querétaro, lugar donde se realizó este proyecto.

Figura 4.1: configuración del robot hexápodo para el análisis de posición.

(43)

El análisis de posición consiste en encontrar un sistema de ecuaciones que representen la posición del efector final de la extremidad en un espacio de tres dimensiones, al ser el análisis en el espacio tridimensional es fácil deducir que el sistema será de 3 ecuaciones, ya que cada ecuación determina el punto en que se encuentra el efector en los planos (X, Y, Z), respectivamente.

El siguiente paso es aplicar un método de resolución para el problema cinemático ya sea directo o inverso explicados en el capítulo anterior, como en este caso se conoce el rango de ángulos en los que trabajan las articulaciones, se obtuvo un modelo cinemático directo representado por las 3 ecuaciones para cada punto.

El método fue implementado en un programa de análisis de MATLAB con el cuál se simplificaron los métodos analíticos conocidos y con esto se obtuvieron las 3 ecuaciones que representan al modelo cinemático directo para una extremidad del robot:

(44)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

4.1.2Diseño del Programa de Trayectorias:

Ahora que ya se obtuvo el modelo cinemático para una de las extremidades se tiene que diseñar un programa en AVR Studio para envíe ángulos a los motores y con estas ecuaciones se calculen los puntos en los tres planos en los que se encuentra el efector final.

Lo primero es definir un rango de ángulos para cada articulación, cada rango de ángulos será un vector o arreglo de valores enteros que serán recibidos por el programa, convertidos en valores de posición y enviados al motor correspondiente, en resumen, se tienen 3 vectores, uno para cada motor, y los valores que se envíen serán sustituidos en las ecuaciones para calcular la posición en cada plano del efector en cada punto de la trayectoria recorrida.

Se definieron en total 5 trayectorias de 10 puntos, cada extremidad se compone de 3 motores a cada uno se le asigno un vector de puntos que seguir con esto se definió una tabla de trayectorias para cada uno donde se describe si tienen o no en movimiento en cada trayectoria.

Tabla 4.1: Trayectorias sin especificación de ángulos.

Mediante pruebas de imágenes se determinó el ángulo máximo para cada motor de la extremidad. El primer motor (7), es el de mayor rango ya que su movimiento solo es en línea horizontal, para los otros dos motores el rango es el mismo pero menor al del primer motor, quedando de la siguiente forma.

Tabla 4.2: Vectores de las trayectorias con ángulos.

(45)

El programa de trayectorias envía punto a punto los ángulos correspondientes a cada motor de cada articulación, de esta forma se aprecia mejor el desplazamiento de la extremidad y se tiene el tiempo para tomar las imágenes necesarias para la validación con el método anteriormente mencionado.

Con los rangos de movimiento, valores iniciales y finales definidos los vectores a usar quedan de la siguiente forma:

VM7 = {125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175} VM9-11 = {125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145} VFijo = {125, 125, 125, 125, 125, 125, 125, 125, 125,125, 125}

4.1.3 Experimento de Validación del Modelo Cinemático:

El objetivo de este experimento es la validación experimental de este modelo, y su verificación con la técnica de calibración de imágenes.

Se tomo una de las extremidades con mayor rango de movimiento ya que el tórax del robot es rectangular y se ilustran en la figura las articulaciones y el efector final de la misma

Figura 4.2: Extremidad (Articulaciones, efector final y rangos de movimiento).

Después de esto se cargó el programa que envía las trayectorias y calcula la posición en cada punto implementando el modelo cinemático previamente obtenido.

(46)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

Después de esto se introduce el punto de la trayectoria que se quiera enviar al enviar los 11 putos de la trayectoria la extremidad se ubica en la posición inicial. En las siguientes figuras se muestra el procedimiento de carga y ejecución del programa.

(47)

Figura 4.5: Ejecución de trayectoria 3.

(48)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

Figura 4.7: Ejecución de trayectoria 5.

Ahora al programa se le incorporan las ecuaciones para los cálculos de posición para cada trayectoria, en las 3 ecuaciones los coeficientes de a y b representan las distancias de los eslabones que unen las articulaciones, estos valores se sustituyen en el modelo para que junto con los ángulos de las articulaciones se obtenga la posición.

Al medir estaos eslabones se obtuvieron los siguientes valores:

Tabla 4.3: Distancias de los eslabones (los restantes se toman como 0)

(49)

Figura 4.8: Valores en el punto inicial de la trayectoria 1.

(50)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

Para la comprobación del experimento se realizó un montaje para la captura de imágenes en cada punto de las trayectorias al terminar cada una se realizó un análisis de imágenes en Matlab para cada trayectoria, en la siguiente figura se muestra el montaje para la captura de imágenes.

Figura 4.10: Montaje para captura de imágenes.

Los resultados de este y los demás programas se explican en la sección de resultados obtenidos en el capitulo V.

4.2 INTERFAZ VISUAL DE CONTROL.

4.2.1 Diseño del Programa:

Es momento de diseñar el prototipo de la interfaz gráfica de usuario para el control del robot, en la interfaz se programaron rutinas parecidas con el programa descrito en el tema anterior, es decir la interfaz también trabajó con la aplicación del modelo cinemático directo.

Se implementó con un número determinado de trayectorias, que pudieran ser enviadas a la extremidad que el usuario eligiera en tres modos diferentes: Trayectoria completa, punto por punto o punto inicial y final.

También se calculó la posición con el modelo de la misma forma que el programa de envío de trayectorias y los valores fueron desplegados en la interfaz de usuario.

(51)

Figura 4.11: Prototipo de Interfaz Gráfica de Control

En la figura se muestra el diseño del prototipo de la interfaz gráfica de control, ahora se describen las partes que la conforman:

Lista de puertos COM: Para escoger el puerto al que se conectarán los motores.

Opciones de Control: Elegir el modo en el que se ejecuta la trayectoria que se introduce, punto

por punto, continuo, o dos puntos, es decir, todos los puntos de forma pausada o en una sola secuencia, o solo introduciendo un punto inicial y otro final, además se incorpora un control manual para manipular las articulaciones a voluntad.

Trayectoria: Se elige la trayectoria que se va a ejecutar o modificar si no se han introducido

valores se habilita el textBox para introducir los ángulos en el, con el botón añadir se guardan los ángulos introducidos uno por uno.

(52)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

Si se selecciona el modo manual se habilita el grupo de control directo con las barras de desplazamiento se mueven los motores a cualquier posición dependiendo del valor en que se sitúen las barras de desplazamiento.

Además se tiene una barra de control de velocidad que también funciona para los modos de trayectoria.

El botón de centrar ubica los motores en 150° que es la posición central en su rango de operación (0 – 300°).

Extremidad: Se elige la extremidad a la que se aplicarán las trayectorias, recordar que los

rangos de movimiento no son los mismos para todas las extremidades al seleccionar cada extremidad se asignan automáticamente los IDs para los motores a mover.

Posición – Motores: En estos textBox se muestra el ángulo de cada motor en cada punto de las

trayectorias que se ejecuten.

Posición – Efector: Se programaron las ecuaciones del modelo cinemático directo en la interfaz

en cada punto de las trayectorias se muestran las componentes en el espacio (X, Y, Z) de la posición del efector final.

Los códigos de este y los demás programas se detallan en la sección de anexos.

4.2.2 Rutinas Programadas para el Robot:

Trayectoria Punto por Punto: Funciona como el programa de las trayectorias, al escoger la

trayectoria y la extremidad a mover se habilita la casilla de introducción de valores en ella se escriben los ángulos que se desean para formar los vectores para los motores. Una vez que se han llenado los tres motores se habilita el botón de ejecutar trayectoria, con cada clic se envía un punto diferente de la trayectoria de forma ascendente hasta terminar.

Continua: Del mismo modo que la anterior se introducen los valores para los ángulos, pero el

modo de ejecución es diferente, ya que una vez llenos los vectores y al pulsar ejecutar cada punto de la trayectoria es enviado de forma continua lo que hace que la extremidad describa un solo movimiento de traslación del efector final.

Dos Puntos: solamente se introducen dos valores, inicial y final se envía uno primero y después

(53)

Control Manual: En esta parte se implementaron los controles de barra para mover los motores de las articulaciones a voluntad en cualquier posición que se mueva el control, tiene programado un botón de centrar el cual al instante ubica los motores en el centro de su rango de trabajo. También se programo un control de velocidad para que se puedan apreciar los movimientos de las articulaciones con más detalle y no se realicen de manera brusca y no se afecte el funcionamiento.

Control de Hexápodo: Esta rutina no se programo con éxito debido a la falta de sincronización

con los demás motores del robot, al implementarla el comportamiento del sistema fué completamente errático.

4.2.3 Pruebas de Funcionamiento:

Las pruebas de funcionamiento para la interfaz fueron casi las mismas que las hechas con el programa de trayectorias en cada rutina se introdujeron los valores en orden ascendente, y al ejecutar se observó el movimiento de la extremidad en diferentes velocidades.

Se observó también que si la velocidad se aumentaba el movimiento se hacía con menor estabilidad, esto puede atribuirse a varios factores que afectan el comportamiento del sistema. Una observación interesante fue que en la rutina de 2 puntos, cuando el punto final estaba muy separado del inicial el movimiento no se realizaba completo, esto porque los valores se enviaban demasiado rápido y al motor no le daba el tiempo suficiente para llegar a su destino. Este problema se corrigió con la función de espera empleada en uno de los programas de prueba con el AVR Studio.

(54)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

4.2.4 Comunicación PC – Robot:

Para lograr la comunicación de la PC con el robot y así poder ejecutar el programase empleo un dispositivo llamado USB2Dynamixel que es un conector de USB para la PC y Serial para los motores y de esta forma se pueden enviar las instrucciones a los motores para mover las articulaciones

Figura 4.13: USB2Dynamixel

Como los motores dynamixel pueden conectarse en un solo bus de datos se pueden conectar tantos motores al USB2Dynamixel como sea posible hasta un máximo de 256.

Figura 4.14: Control de los Dynamixel a través de un PC.

(55)

Figura 4.15: Batería recargable de Robotis de 12V.

Esta batería suministra energía suficiente para alimentar una extremidad sin problema, pero no para los 18 motores del robot. Para esto será necesario el eliminador incorporado que se conecta directamente a una red de CA de 110 – 120 VCA.

Figura 43: Eliminador de CA Robotis.

Lo que facilitó mas la parte de comunicación fueron las librerías existentes de Robotis para Visual Studio con ellas se pudieron tener listas las funciones de comunicación y control de los motores para el ambiente de Visual C++ lo único necesario fue descargarlas e instalarlas.

(56)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

CAPÍTULO V:

RESULTADOS OBTENIDOS

5.1 PROGRAMAS DE DIAGNÓSTICO:

En todos los programas realizados se logró el objetivo planteado, en el primer programa de prueba se movieron el motor a cualquier posición deseada.

Figura 5.1: Posiciones de los motores en el primer programa (0°, 150° y 300°).

En el segundo programa el motor se movió en 4 posiciones recordar que en este programa los valores se introdujeron en rango de 0 a 1023.

(57)

5.2 PROGRAMA DE TRAYECTORIAS:

En el programa de trayectorias se ejecutaron las 5 sin problema la posición inicial fue la misma para todas y en cada una los motores se mueven de forma diferente haciendo que el efector final adopte variadas posiciones (videos en la carpeta de trayectorias).

Figura 5.3: Posición inicial de todas las trayectorias.

(58)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

Figura 5.5: Trayectorias 3, 4 y 5 (videos T3, T4 y T5).

La tabla siguiente muestra los resultados obtenidos de la cinemática directa en cada punto de las 3 trayectorias ejecutadas. Los ángulos tuvieron que convertirse a un sistema de referencia empleado por Matlab para realizar la calibración de imágenes.

(59)

5.3 INTERFAZ GRÁFICA DE USUARIO:

Las pruebas realizadas con la interfaz comprobaron la buena comunicación de los motores con la PC se ejecutaron las trayectorias en los 3 modos y en modo manual para una extremidad con ajustes menores.

(60)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

Figura 5.7: Moviendo una extremidad.

(61)
(62)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

RECOMENDACIONES Y CONCLUSIONES FINALES

RECOMENDACIONES PARA TRABAJO FUTURO

Para realizar el control completo del robot hexápodo con la interfaz será necesario programar todas las extremidades a la vez, en lugar de una por una como se hizo en este proyecto.

El software Roboplus Motion (ver figura 23) podrá ser de gran ayuda para este propósito ya que para desplazamiento del robot este debe adoptar varias posiciones en una secuencia, posiciones que pueden ser dadas con el programa Motion ya que nos da los ángulos en que se encuentran los motores en cada paso de la secuencia, con el detalle de que maneja su propio sistema de referencia, será necesario hacer una conversión de los ángulos que maneja el Motion al rango de ángulos de los motores para así enviarlos por medio de la interfaz que se diseñe.

La interfaz solo tiene programadas rutinas de movimiento para el control completo se necesita que el robot tenga capacidad de reconocimiento del medio en el que se desplaza, será necesario desarrollar una rutina de lectura de sensores para que el usuario pueda identificar los detalles del ambiente de trabajo del robot y esto permita un mejor manejo y control del mismo.

Con esto se podrá iniciar la programación de un control del robot completo.

CONCLUSIONES SOBRE EL PROYECTO

Se realizaron programas de prueba y una interfaz de control para una extremidad que fue realizada desde cero sin ningún antecedente, este programa queda abierto a las posibilidades de mejora y de expansión para más funciones de control.

El desarrollo de una interfaz de usuario amigable da una mayor factibilidad para un proyecto en el que se emplee al robot como dispositivo de exploración e inspección y seguir explotando e innovando una de las áreas de mayor aplicación de la robótica de servicios.

(63)

BIBLIOGRAFÍA

1. Ollero Baturone Aníbal. Robótica. Manipuladores y Robots Móviles, Marcombo – Boixerau Editores. España: 2001.

2. Barrientos Antonio, Peñin Luís Felipe, Balaguer Carlos, Aracil Rafael. Fundamentos de Robótica (Segunda Edición). McGrawHill.

3. Siegwart Roland, Nourbakhsh Illah R. Introduction to Autonomous Mobile Robots, The MIT Press, Massachussetts, 2004.

4. Craig John J. Introduction to Robotics, Mechanics and Control (Segunda Edición), Addison Wesley Longman, 1995.

5. Bajd T., Mihelj M., Lenarcic J., Munih M. Robotics (Cuarta Edición). Editorial springer 2006. 6. Robotis. Dynamixel AX-12 User’s Manual 2006.

7. Kinematics of Hex-Piderix - A Six-Legged Robot - Using Screw Theory, Xochitl Yamile Sandoval Castro, Mario Garcia Murillo, Luis Alberto Pérez Resendiz, Eduardo Castillo Castañeda, International Journal of Advanced Robotics Systems.

(64)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

ANEXOS

(65)

Tabla A1: Direcciones de memoria de los Dynamixel.

A2. INSTALACIÓN DE WINAVR Y AVR STUDIO

Instalación de WinAVR. 1. Ejecutar Setup. 2. Seleccionar Lenguaje.

(66)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

4. Aceptar el acuerdo de licencia.

(67)
(68)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

Figura 54: Instalación de WinAVR. Instalación de AVR Studio 5:

(69)

3. Seleccionar el folder de instalación del programa.

(70)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

(71)

6. Comenzar la instalación.

(72)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

A3. CREACIÓN DE UN NUEVO PROYECTO EN AVR STUDIO

Para crear un proyecto nuevo el procedimiento es el siguiente: 1. En el menú File seleccionar nuevo proyecto.

(73)

3. Buscar y escoger el controlador para el que se creará el proyecto.

(74)

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ INGENIERÍA ELECTRÓNICA CONTROL POR COMPUTADORA DE UN ROBOT HEXÁPODO

A4. GRABAR UN PROGRAMA CON ROBOPLUS TERMINAL

1. Conectar la tarjeta a la PC con el cable serial, el kit incluye su propio cable serial tipo hembra, si el equipo a usar no cuenta con un puerto serial puede usarse un adaptador USB – Serial.

2. En el menú Setup de la Terminal seleccionar la opción conectar y escoger el puerto al que se conectó la tarjeta y la velocidad de transmisión indicada, normalmente es de 57600 baudios.

3. Para cargar el programa en el menú Files en la opción Transmit file se abre la caja de diálogo para buscar el archivo (.hex) para grabar.

Referencias

Documento similar

1. LAS GARANTÍAS CONSTITUCIONALES.—2. C) La reforma constitucional de 1994. D) Las tres etapas del amparo argentino. F) Las vías previas al amparo. H) La acción es judicial en

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

Tras establecer un programa de trabajo (en el que se fijaban pre- visiones para las reuniones que se pretendían celebrar los posteriores 10 de julio —actual papel de los

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

D) El equipamiento constitucional para la recepción de las Comisiones Reguladoras: a) La estructura de la administración nacional, b) La su- prema autoridad administrativa

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación