CAMINADO DE ROBOTS HUMANOIDES: PRIMEROS PASOS EN EL CAMINO HACIA ROBOCUP Karen L. Flores Rodríguez Luis Samahi García González
Ingeniería Mecatrónica, Universidad Politécnica de Sinaloa, M azatlán, Sinaloa, México. RESUMEN
Recientemente el Doc. José Víctor Núñez Nalda, profesor de tiempo completo de esta universidad, propuso la adquisición de una serie de robots humanoides para la escuela con el propósito de investigar y realizar una interfaz de comunicación robot-computadora para la planificación de movimientos y poses enfocado a conseguir la resolución de modelos matemáticos con cinemática inversa. Pensando también en la implementación de visión artificial mediante procesamiento de imágenes, el objetivo es implementarles implementarles todos los elementos necesarios para darles autonomía y desarrollar un equipo de cinco robots-humanoides capaces de competir en la liga internacional ROBOCUP, enfocados en la categoría Kidsize que en el 2012 será celebrada en el World Trade Center en MEXICO. MEXICO. Antes de llegar llegar al final del largo camino que se debe recorrer es necesario dar los primeros pasos. Estos se basaron en el conocimiento del equipo, interfaz del fabricante y todo lo relacionado a programación del caminado de estos robots. La participación en este evento será algo muy importante para la universidad, la cual, contando con tan solo 6 años en función, se encuentra figuradamente en pañales. ABSTRACT
Recently Dr. Jose Victor Nuñez, full time professor of this university, proposed the purchase of a certain number of humanoid robots for the school with the purpose of investigate and perform a communication interface Robot-Computer for the motion planning and poses focused to get the solution of mathematical models with with inverse kinematics. Also thinking in the implementation of artificial vision to provide them autonomy and develop a team of 5 humanoid robots that are able to compete in the international league
important for the university that has been working for 6 years which means that it is still like a baby. Palabras claves: ROBOTS HUMANOIDES, CAMINADO, PASOS, POSES, AUTONOMO, POCESAMIENTO DE IMÁGENES. ROBOTS HUMANOIDES Introducción
Aunque muchos no lo crean, hoy en día, los robots se encuentran en cualquier sitio. Podemos encontrarlos en distintas áreas desde la producción masiva de cualquier producto, en la medicina en cirugías, en exploración espacial hasta la industria bélica. Robot puede ser cualquier maquina que cumpla con los requisitos de la definición: “Maquina programable […] virtual o electromecánico
físico
[…]
muestran
un
comportamiento inteligente, ya sea el de imitar al de los seres humanos […] por su apariencia pudiera parecer
que tienen un propósito propio […] podría considerarse que el robot es una computadora con la capacidad y el propósito de movimiento […] en general es capaz de desarrollar múltiples tareas de manera flexible según su programación[…]”1 El propósito por el que fueron inventados es el de facilitar multitud de trabajos para los seres humanos, riesgosos, pesados, mecanizados hasta repetitivos. De ahí el significado de la palabra robot: “Figuradamente es conocida como trabajo duro en checo […] fue utilizada por primera vez por Karel Capek a través de su obra Rossum´s Universal Robots (ver figura 1) […] en esta obra se muestran diversos humanoides realizando trabajos que correspondían a los humanos”2
ROBOCUP, focused on the Kid size’s category that in
2012 will be held in the World Trade Center in Mexico. Before getting to the end of the way is necessary to give some steps. This were based in the knowledge of the equipment, the interface of the manufacturer and all that is related to the programming the walking of this ro bots. The participation in this event will be something very
FIGURA 1. “KAREL CAPEK Y UNA FOTOGRAFIA DE UNA DE LAS ESCENAS DE SU OBRA ROS SUM’S UNIVERSAL ROBOTS ”.2
1“http://www.thetech.org/ro http://www.thetech.org/robotics/universal botics/universal/index.html /index.html ” 2 “http://robotechno.us/karel-capek-meaningrobot.html/rossums-universal-robots-rur”
La idea de maquinas autómatas ha estado presentes ya desde tiempos remotos. La imaginación del ser humano no tiene fronteras, la ficción que presenta en historias y películas se está presentando poco a poco en la vida real. “Desde Leonardo Da vinci con sus bocetos sobre autómatas humanoides - robot de Leonardo 1495- […]
En los siglos 16 y 17 los autómatas Ningyo Karakuri, un sistema mecanizado de títeres […] en 1928, el primer robot con capacidad de interactuar en Japón, Gakutensoku, diseñado y construido por el biólogo Makoto Nishimura […] en 1930, Westinghouse Electric
Corporation, creó un robot humanoide conocido como Elektro, capaz de interactuar y con fines de exposición [...]”3 Estos primeros autómatas tenían el único propósito de entretener. El primer robot autónomo, digital y programable capaz de hacer una tarea funcional fue el UNIMATE (ver figura 2) “Fue inventado en 1954 por George Devol […] este era un autómata que levantaba y apilaba piezas metálicas en u na fundición [...]” 4
FIGURA 4 .- “CATEGORIAS ROBOCUP. ”5 “ Robocup cuenta con 3 categorías principales (figura 4) […] RoboCupRescue se dedica a robots de búsqueda y
rescate en caso de desastres mientras considera aplicaciones del mundo real y la interacción hombremáquina con robots autónomos […] RoboCupJunior tiene por objetivo la participación de estudiantes de niveles primaria y secundaria e incluye retos enfocados en el aprendizaje de la robótica […] RoboCupSoccer es una competencia de futbol con rob ots autónomos […] en particular, la categoría robocup soccer tiene como objetivo conseguir un equipo de jugadores de futbol robótico capaces de vencer en una copa del mundo a un equipo de jugadores humanos esto dentro de los siguientes 50 años […]”5
El objetivo de la escuela es competir en este evento en la categoría RoboCupSoccer más específicamente en la categoría Kidsize de esta misma. EQUIPO ADQUIRIDO FIGURA 2.- “GEORGE DEVOL, UNIMATE 1954”.4
ROBOCUP
Los robots actuales siguen siendo limitados en distintas formas. Pero también sabemos que el ser humano no se detendrá y seguirá renovando lo que pueda, esto se ve reflejado en las investigaciones sobre este tema que están avanzando a pasos agigantados. El torneo de Robocup (ver figura 3) es un claro ejemplo de cuán importante es este tema. “Este es un torneo internacional que se viene realizando año con año desde 1997 […] la motivación de la Robocup es impulsar el desarrollo en inteligencia artificial y robótica […]”.5
La escuela adquirió para este propósito 5 kit Bioloid Premium (figura 5) el CM-510 tipo A de la compañía ROBOTIS. El nombre Bioloid viene de las palabras “Bio” + “all” + “old” dando a entender que cua lquier ser vivo puede ser creado como robot. “Este se considera como el kit de robótica mas avanzado de esta compañía, e integra muchas características adicionales tale como microprocesador potente, sensores y mecanismos versátiles”. 6 A este conjunto de robots humanoides se les pretende hacer todas las modificaciones necesarias para conseguir los objetivos planteados.
FIGURA FIGURA 3.- “SIMBOLO DEL TORNEO INTERNACIONAL ROBOCUP. ” 5 3 “http://es.wikipedia.org/wiki/Robot (HISTORIA) ” 4 “http://www.robothalloffame.org/unimate.html ”
5.-
“
BIOLOID
PREMIUM
KIT
ROBOTIS.” 6 5 “http://www.robocup.org ” 6 “http://www.robotis.com (Bioloid Premium kit CM-510) ”
de
CM-510
El robot cuenta con un microcontrolador de la compañía ATMEL (ATmega2561) como cerebro del sistema (ver figura 6). “Memoria flash de 256 KB, 64 pines de comunicación, 16 MHz de frecuecia”7 Este puede ser
directamente programado con el software del fabricante AVR-STUDIO, “[…] Nuevo entorno de desarrollo integrado (IDE) para el desarrollo y la depuración aplicaciones incrustadas Atmel AVR […]”7. Es de adquisición gratuita, utilizado para trabajar con los diversos productos ATMEL.
FIGURA 6 .- “ ATMEGA2561, MICROCONTROLADOR DEL ROBOT” 7
El lenguaje que soporta es lenguaje C y los códigos son enviados con facilidad gracias a que el microcontrolador está adaptado a una serie de dispositivos, en el mismo robot CM-510 (ver figura 7), contando con puerto serial que facilitan la comunicación ROBOT-PC. Puertos CM-510
TABLA 1.- “PUERTOS DE COMUNICACION ”8
Se usa para conectar el CM510 a la PC por medio del cable serial. También se utiliza para descargar el código hacia el CM510. [...]”8 Comunicación con actuadores: “[…] Se utiliza para la comunicación inalámbrica con el ZIG-110 que incluye el Bioloid. [...]”8 Batería portátil: “[…] Se conecta a la batería del robot. [...]”8 Alimentación: “[…] Aquí se conecta la fuente de alimentación del CM-510 [...]”8 LED de encendido: “[…] Indica si el módulo se encuentra encendido o apagado. [...]”8 “[…] Switch on-off: Se utiliza para prender/apagar el robot. [...]”8 Botón reinicializar (mode): “[…] Se utiliza para cambiar el modo de operación del CM-510[...]”8 Botón iniciar: “[…] Se utiliza para iniciar el modo elegido. [...]”8 Botones U / L / D / R: “[…] Pueden programarse comandos a estos botones para que el robot reaccione al ser presionados. [...]”8 Puertos AX-12+: “[…] Utilizado para conectar los motores AX12+ Dynamixel y otros actuadores. [...]”8 LED de modo seleccionado: “[…] LED utilizado para desplegar cual es la operación que está siendo realizada por el CM- 510[…]”8 LED de estado: “[…] Controla los Leds de transmisión (TxD), recepción (RxD) y auxiliar (AUX) [...]”8 Cable serial: “[…]
Dynamixel AX-12
FIGURA 7 .- “ ATMEGA2561,
MICROCONTROLADOR DEL ROBOT ADAPTADO PARA CM-510 ”8
7“http://www.atmel.com/dyn/resources/prod_documents/2549
S.pdf ” 8 “http://www.robotis.com (user guide-product informationrobot parts-controller-cm-510) ”
Los servomotores que incluye el equipo son Dynamixel AX-12 (ver figura 8) de la misma compañía (ROBOTIS). Estos son actuadores inteligentes “[…] actuador modular que incorpora un reductor de engranajes, un motor DC de precisión y un circuito de control con funciones de red, todo en un solo paquete […]”9 9 “http://www.trossenrobotics.com/dynamixel-ax-12-robotactuator.aspx”
El actuador servo AX-12A de Robotis […] tiene la capacidad de seguimiento de su velocidad, temperatura, posición del eje, el voltaje y la carga. […] el algoritmo de control utilizado para mantener la posición del eje del actuador ax-12 se pueden ajustar individualmente para cada servo, lo que le permite controlar la velocidad y la fuerza de la respuesta del motor. Todos los de la gestión de sensores y control de posición son manejados por un microcontrolador integrado en el servo. Este enfoque distribuido sale de su controlador principal libre para realizar otras funciones. […]”10 “[…]
ROBOPLUS MOTION
La interfaz de ROBOPLUS MOTION (figura 10) , la cual como se menciono anteriormente permite la realización de poses y movimientos, se utilizó para obtener la resolución de modelos matemáticos mediante cinemática inversa de un caminado elemental para el robot bípedo. Esta interfaz y su página principal (figura 11) son muy amigables con el usuario.
FIGURA 10.- “ICONO DE ROBOPLUS MOTION.”11 FIGURA 8 .- “ DYNAMIXEL AX- 12 DE ROBOTIS” 9
ROBOTIS proporciona con sus equipos un software llamado ROBOPLUS, este sirve como herramienta para controlarlos. Permite conocer a grandes rasgos el funcionamiento del robot de una manera práctica, realizar poses, caminado, código de manera eficaz, utilizar los sensores y administrar los dinamixeles de una manera muy grafica y sencilla, esto mediante la serie de programas incluidas en ROBOPLUS dependiendo el tipo de producto adquirido y el tipo de gestión a realizar.
“Un movimiento o moción es un conjunto de posiciones
de los actuadores y datos de velocidades necesarias para los movimientos del robot […] un archivo de movimientos son datos […] los datos de los
movimientos del controlador pueden ser vistos y editados desde la ventana principal de este solo cuando está conectado al ordenador […]”11
En el caso del CM-510, se pueden utilizar los siguientes (figura 9):
ROBOPLUS TASK: “ […] Permite la realización de código sencillo basado en lenguaje C […]”11
ROBOPLUS MOTION: “ […] Permite realizar poses y movimientos de manera sencilla y practica […]” 11
ROBOPLUS TERMINAL: “[…] Permite la comunicación ROBOT-PC, desde bootloader […]”11
ROBOPLUS MANAGER: “[…] Permite la administración de los diferentes elementos del robot, en este los servomotores pueden ser 11
configurados […]”
ROBOPLUS WIZARD: “[…] Permite trabajar directamente con los servomotores […]” 11
FIGURA 9 .- “SOFTWARE DE ROBOTIS ROBOPLUS ”11 10“http://robosavvy.com/RoboSavvyPages/Support/Bioloid/A X-12 (english).pdf ”
FIGURA 11.- “VENTANA PRINCIPAL ROBOPLUS MOTION.”11
Las variables que se pueden editar con esta opción son:
POSE: (figura 12) “Una pose es una posición del robot en un punto en el tiempo […]
colección de posiciones de los motores en una
postura […]” 11
FIGURA 12.- “POSE DE ROBOT CONTROLANDO CADA SERVOMOTOR” 11 11 “http://www.robotis.com (user guide-product information-
robot parts-controller-cm-510) ”
PASO: (figura 13) “ Es un conjunto de poses consecutivas que tienen como fin producir un
I_0: Es el conjunto de poses que le permitirá al robot iniciar el caminado con el pie izquierdo. (figura 15)
cambio de posición del robot […] El caminado es un conjunto de pasos […] La
rapidez de un caminado es determinada por el tiempo en el que cada paso está editado […]”11
FIGURA 15 .- CONJUNTO DE POSES I_0. LAS
FIGURAS MUESTRAN EL CAMBIO DE POSICION QUE OCURRE PARA INICIAR EL CAMINADO. C_1: Conjunto que permitirá el seguimiento del caminado con el pie derecho, de manera que no termine el caminado. (figura 16)
FIGURA 13 .- “MUESTRA DE PASOS Y CAMINADO”
11
PAGINAS: “Es un concepto usado para distinguir entre los diferentes movimientos gravados en el controlador […] es posible
realizar hasta 255 páginas de movimientos […]” 11
FIGURA 16 .- CONJUNTO DE POSES C_1. LAS FIGURAS
MUESTRAN EL CAMBIO DE POSICION QUE OCURRE PARA CONTINUAR EL CAMINADO. C_2: Después de haber avanzado con el pie derecho tendrá la misma función que C_1 para llevar un caminado consecutivo creando un ciclo intercalando C_1 y C_2 (figura 17) .
FIGURA 14. “MUESTRA UNO DE LOS DIFERENTES CAMBIOS DE POSICION CON 14 VALORES DE TORQUE”
El valor del torque de cada servomotor para la edición de poses va desde 0 a 1023 lo cual permite la limitación de movilidad ya que no es posible girar cada servomotor completamente debido a la estructura del robot y los cables de comunicación. Esta cantidad de valores de torque permiten realizar movimientos precisos, en este caso el caminado del robot bípedo. El caminado elemental que se obtuvo de ROBOPLUS MOTION consta de 5 diferentes cambios de posición (figura 14), estos de 2 páginas cada uno con 7 pasos que van de 0 a 6, en total 14 valores de torque que le permitirán a cada servomotor cambiar de posición.
FIGURA 17.- CONJUNTO DE POSES C_1. LAS
FIGURAS MUESTRAN EL CAMBIO DE POSICION QUE OCURRE PARA CONTINUAR EL CAMINADO.
Y para detener el ciclo de caminado dependerá de en cuál de las poses anteriores se le indico detenerse. FD_0: Finalizara el paso con pie derecho. (figura 18)
LOGICA DEL CAMINADO
Tomar en cuenta por lo menos 5 diferentes cambios de posición es indispensable para la lógica del caminado. A continuación se muestran estos de manera ilustrativa los cuales se denominaron de diferente manera cada uno para poder identificarlos: 11 “http://www.robotis.com (user guide-product informationrobot parts-controller-cm-510) ”
FIGURA 18 .- CONJUNTO DE POSES FD_0. LAS
FIGURAS MUESTRAN EL CAMBIO DE POSICION QUE OCURRE PARA FINALIZAR EL CAMINADO.
FI_0: Finaliza el paso con pie izquierdo. (figura 19)
FIGURA 19.- CONJUNTO DE POSES FI_0. LAS
FIGURAS MUESTRAN EL CAMBIO DE POSICION QUE OCURRE PARA FINALIZAR EL CAMINADO. DIAGRAMA DE FLUJO DEL CAMINADO
CODIGO EN LENGUAJE C
Para el código en lenguaje C del caminado basta pasar de la lógica en el diagrama anterior a uno en escritura tomando en cuenta las diferentes librerías y palabras reservadas y los elementos que el KIT de ROBOTIS incluye como puertos, botones y Leds. Como se menciono anteriormente el microcontrolador puede ser programado con el software del fabricante AVR-STUDIO, el cual soporta lenguaje C. Como este software es utilizado para la programación de los diversos productos ATMEL, este mismo proporciona ciertas librerías para lograr que el microcontrolador “entienda” las órdenes que deba realizar, y pasa a ser un lenguaje ensamblador.
En el siguiente diagrama de flujo (figura 20) se muestra la lógica que deben y pueden seguir las diferentes poses del caminado para conseguir un ciclo de caminado continuo y decidir cuándo se detendrá o iniciara. Verificado continuamente el estado (valor) de una variable (R en este caso) se decide cuándo se detendrá o iniciara dicho ciclo. -Inicia y la variable R se comenzara a verificar constantemente permitiendo decidir si se iniciara el caminado. -Se decide iniciar el caminado y se procede a realizar el conjunto de poses I_0. -En cuanto inicia el caminado ya es posible decidir detenerlo verificando el estado de R. - Comenzara el ciclo con C_1 seguido de una verificación de estado de R, después C_2 verificando también el estado de R. -Mientras R no sea verdadera el ciclo de caminado continuara. FIGURA 20.- DIAGRAMA DE FLUJODEL
CAMINADO. R= VARIABLE DE INICIO Y FIN DEL CAMINADO. I_0, C_1, C_2, FD_0, FI_0 CONJUNTOS DE POSES.
FIGURA 21.- LIBRERIAS UTILIZADAS PARA EL
CODIGO DEL CAMINADO.
Las librerías incluidas en el código de caminado son las siguientes (figura 21): -avr/io.h: “[…]
acceso de entradas y salidas para diversos micro-controladores AVR […]”12 -avr/interrupt.h: “[…] manipulación global de la bandera de interrupción […]”13 -stdio.h: “[…] archivo de cabecera que contiene las definiciones de macros, las constantes, las d eclaraciones de funciones y la definición de tipos usados por varias operaciones estándar de entrada y salida […]”14 -math.h: “[…] declara un conjunto de funciones para calcular operaciones matemáticas comunes y las transformaciones […]”15 -util/delay.h: “[…] permite utilizar retardos, donde los valores reales de tiempo puede ser especificado en lugar de un número de ciclos que esperar […]” 16 Es esencial conocer la velocidad con la que se comunica el microcontrolador en este caso en la función delay.h se estableció lo siguiente “ #define F_CPU 16000000UL” ya que el dispositivo logra un rendimiento de 16 MIPS a 16 MHz. “http://www.linuxfocus.org/common/src/article231/avrlibc-reference.html (i/o) ” 13“http://www.nongnu.org/avr-libc/usermanual/group__avr__interrupts.html” 14 “http://es.wikipedia.org/wiki/Stdio.h ” 15 “http://www.cplusplus.com/reference/clibrary/cmath/ ” 16“http://www.nongnu.org/avr-libc/usermanual/group__util__delay.html” 12
ROBOTIS proporciona las siguientes librerías: -Dynamixel.h: “[…] es una
librería de programación estándar para el control de los diferentes servomotores Dynamixel. […]”17 Esta misma librería presenta palabras reservadas para lograr comunicación con los servomotores y el microcontrolador que los integra. -Serial.h: “[…] es una librería que le permite la
Se deben establecer cada uno de los valores de la tabla de contenido pero en el caso del caminado solo es necesario trabajar con los datos de posición, velocidad, torque y movimiento (figura 22).
comunicación serial con PC para diversos fines […]”17 -Zigbee.h: “[…] es la librería que le permite la
comunicación del controlador y el control inalámbrico RC-100[…]”17 Las últimas dos librerías solo se utilizan para comprobar el estado del robot y sus funciones ya que para el objetivo de un robot autónomo un control remoto o la comunicación con PC por puerto serial están de más. Se deben declarar valores provenientes de la tabla de control (tabla 2) estos están previamente establecidos por el fabricante. Esta tabla contiene información del estado y operación de cada actuador. Lo que significa que los Dynamixel se operan modificando los valores de la tabla de control.
FIGURA 22.- DECLARACION DE VALORES DE
TABLA DE CONTROL (DIRECCIONES DE DYNAMIXEL).
Se establecen de igual manera los valores de leds y botones que el CM-510 le asigno a cada uno, esto para tener un acceso más fácil y eficaz (figura 23).
FIGURA 23.- DECLARACION DE
VALORES TANTO DE BOTONES Y LEDS QUE LOS REFERENCIA.
Los valores obtenidos de ROBOPLUS MOTION para cada una de las poses del caminado son declaradas en arreglos de [numero de actuadores] por [poses según el paso] (figura 24) incluidos en distintas subrutinas según el paso, esto de igual manera para facilitar su utilización.
TABLA 2.- TABLA DE CONTROL
(DIRECCIONES DE DYNAMIXEL). 18 “[…] Los valores de datos para el área de la RAM se establecen en los valores iniciales por defecto cada vez que está encendido. Sin embargo, los valores de datos para el área de EEPROM no son volátiles y seguirá siendo, incluso después de que el poder está apagado […]”18 17 “http://www.robotis.com (user guide-software help) ” 18“http://robosavvy.com/RoboSavvyPages/Support/Bioloid/A X-12(english).pdf ”
FIGURA 24.- ARREGLO DE VALORES
DE LAS POSES PARA UN PASO DEL CAMINADO (I_0).
Para la lógica del caminado en lenguaje C es necesario pasar la lógica del diagrama de flujo de la figura 20. En el diagrama se establecía una variable denominada R para decidir si comienza o se detiene el caminado. El hardware del kit Bioloid CM-510 tomara la función de R, se decidirá iniciar o detener el caminado con los diferentes botones del controlador. Así mismo encenderán leds para comprobar el estado. En el código de la figura 25 se encontrara que: 1.-Si el botón “U” es presionado y la variable “a” esta reinicializada uno de los leds enciende y se realiza la subrutina de “BALANCE”.
2.-Si el botón “D” es presionado y la variable “a” tiene 1 como valor, leds y todos los torque se apagan.
El microcontrolador se comunica con los Dinamixeles mediante un paquete de instrucciones (figura 26) y viceversa. Esto para llevar un control del estado de cada servomotor. Y modificar el valor de cada información de la tabla de control ya sea RAM o EEPROM. Este paquete de instrucciones está constituido por:
FIGURA 26.- PAQUETE DE INSTRUCCIONES
NECESARIO PARA LA COMUNICACIÓN ENTRE MICRO Y DYNAMIXEL. 19
3.-Si el botón “L” es presionado, la variable “a” toma el valor de 2 y permitirá iniciar el ciclo de caminado.
4.-“i” es una variable bandera que decidirá que función del caminado sigue, ya sea I_0, C_1, C_2 o cuando finaliza con FD_0 o FI_0.
0XFF, 0XFF: “[…] Indicar el inicio de un nuevo paquete[…]”19 ID: “[…] El valor único de cada Dynamixel […]”19 LENGTH: “[…] La longitud del paquete donde su valor es “numero de parámetros (N) +2” […]”19 INSTRUCTION: “[…] La instrucción para
el actuador
Dynamixel que se realizara.
[…]”19 PARAMETER0…N: “[…]
Se usa si hay alguna información adicional que se necesite enviar además de la instrucción […]”19 CHEK SUM: “ […] El método para calcular este es: CHECKSUM = ~ (ID + LENGTH INSTRUCTION + PARAMETER1 …PARAMETER N) […]”19
+ +
Todo este paquete es necesario enviarlo en un formato de lenguaje C, este formato debe ir incluido en cada una de las subrutinas de los pasos del caminado como se muestra a continuación (figura 27):
FIGURA 25.- CODIGO EN LENGUAJE
C DE DIAGRAMA LOGICO DEL CAMINADO.
FIGURA 27.- PAQUETE DE INSTRUCCIONES
EN LENGUAJE C.
19“http://robosavvy.com/RoboSavvyPages/Support/Bioloid/A X-12(english).pdf (paquete de instrucciones) ”
Se tiene lo necesario del caminado tomando en cuenta los diferentes elementos proporcionados por el fabricante del kit adquirido. Es necesario establecer los métodos necesarios para conseguir que el robot sea autónomo, capaz de moverse por sí solo. El procesamiento de imágenes es una buena opción para lograr estos objetivos. Procesador de imagen HV7131RP
Para el procesamiento de las imágenes se utilizara la cámara Havimo 1.5 (figura 28). El procesador de la cámara Havimo 1.5, el HV7131RP es un chip CMOS el cual hace la función de sensor de imagen, tiene una alta sensibilidad y un amplio rango dinámico. Un arreglo de 660x507 pixeles. Cada uno de los pixeles está compuesto por 4 transistores cada uno tiene una microlente para mejorar la sensibilidad, y convierte la energía de los fotones a voltaje análogo de pixel. Cuenta con un ADC de 10 bits y un chip de muestreo doble correlacionado que reduce el ruido dramáticamente.
TABLA 3.- TABLA DE PINES MICRO CAMARA
HAVIMO 1.5. 21
FIGURA 28.- HARDWARE CAMARA HAVIMO
1.520
Entre otras características tenemos: Compensación del nivel de negros. Corrección de Gamma de la imagen. Interpolación del color de 3x3. Mejora de: Contraste, Saturación, Brillo, Tono Conversión de RGB a YCbCr e inversa. Modos de sub-muestreo: 2x2, 2x6, CIF, QCIF Formatos de salida variados: YCbCr 4:2:2, RGB 5:6:6, Bayer. Bus de 8 bits de datos. Control automático de exposición. Control automático de balance de blancos. 30fps
Relación entre Cámara Havimo 1.5 y protocolo Dynamixel
Es muy importante tomar en cuenta que la cámara Havimo 1.5 está basada casi en su totalidad en el protocolo de los servomotores Dynamixel. En la siguiente tabla podemos comprobar lo que se dice con anterioridad:
TABLA DE INSTRUCCIONES DE SERVOMOTORES DYNAMIXEL. 21 TABLA 4
.-
20 “http://pishrobot.com/en/products/robotis.htm ” 21“http://pishrobot.com/files/products/datasheets/havimo.pdf ” FIGURA 29.- MICROCONTROLADOR HAVIMO
1.5. 21
-
Esta instrucción nos sirve para accesar al umbral de valores del filtro de región de la imagen. Estos umbrales definen el número mínimo de pixeles dentro de una región, las regiones con poca cantidad de pixeles son filtradas y eliminadas RD REGTHR, WR REGTHR: “[…]
[…]”22
Se conoce entonces tanto el equipo para el caminado como el equipo de visión. Es necesario unificar ambos en todos los sentidos posibles para lograr conseguir un robot autónomo. TABLA 5.- TABLA DE INSTRUCCIONES DE SISTEMA DE VISION HAVIMO 1.5. 21 Como se puede observar existen muchas similitudes entre ambas tablas de instrucciones, por obviedad las instrucciones de la cámara son más ya que se necesitan otras acciones como la captura de la imagen por ejemplo, que el motor no tiene que realizar. A continuación se describirán cada una de las instrucciones colocadas en la tabla:
-
PING:“[…]
Esta instrucción se utiliza para verificar la existencia de la cámara y para saber si está lista para recibir la siguiente instrucción []” 22
-
READ DATA: “[…]
-
READ REG: “[…]
-
WRITE REG: “[…]
-
CAPTURE: “[…]
-
RAW SAMPLE: “[…]
CONCLUSION
La robótica es un área de la tecnología a la cual se le debe dedicar el tiempo necesario para conseguir buenos resultados, el cual se le está dando al conocer el equipo con en el mas mínimo detalle. Los modelos matemáticos de un robot humanoide son muy complejos debido a sus múltiples grados de libertad, es necesario hacer varios cálculos para conseguir poses precisas. La interfaz de comunicación que desarrollará el Dr. José Víctor Núñez Nalda, también permitirá el trabajar mediante cinemática inversa, lo que facilitara la obtención de modelos matemáticos.
Esta instrucción se utiliza para leer los resultados del procesamiento de la imagen. Es la misma que la instrucción READ en Dynamixel, sólo que el área accesada no es el área registrada.[…]” 22 Lee el contenido de los registros de la cámara. Este comando acepta lectura multi-byte […]”22 Esta instrucción escribe el contenido de los registros de la cámara. Esta acep ta escritura de byte individual […]” 22 Gracias a esta instrucción es posible comenzar a captura y el procesado de los frames. Esto toma aproximadamente entre 100125 ms, pero esta instrucción siempre espera a que se comience a procesar el siguiente frame []”22 Con esta instrucción podemos desplegar los datos obtenidos en el frame. Es muy utilizada cuando queremos observar una muestra de la imagen obtenida []”22 MANAGE: “[…] Después de esta instrucción, el módulo entra en modo de programación, es decir, el dispositivo ya no acepta más paquetes. No debe ser usada esta instrucción en el modo de implementación[…]”22
-
LUT
-
RD FILTHR, WR FILTHR: “[…]
Con esta instrucción tenemos acceso al umbral de valores del filtro de ruido. […]”22
22“http://pishrobot.com/files/products/datasheets/havimo.pdf ”
FIGURA 30.- IMAGEN DE BIOLOID PREMIUM
KIT DE ROBOTIS CON LAS MODIFICACIONES REALIZADAS HASTA AHORA. Los primeros pasos, en la investigación de robots humanoides en nuestra escuela fueron dados. Todavía hay un largo camino por recorrer en esta área y más si se quiere estar preparados para la ROBOCUP del 2012 en MEXICO. Es necesario seguir trabajando, y hacer todo lo posible por conseguir los propósitos deseados. Más adelante se puede pensar en hacer un equipo de robots humanoides desde cero por miembros y estudiantes de la escuela que será bastante trabajo pero no imposible.
19. “http://robosavvy.com/RoboSavvyPag
REFERENCIAS DE INTERNET
1. http://www.thetech.org/robotics/univer sal/index.html
2.
“http://robotechno.us/karel-capekmeaning-robot.html/rossumsuniversal-robots-rur”
3. “http://es.wikipedia.org/wiki/Robot (HISTORIA)”
ate.html”
5.
http://www.robocup.org
6.
“http://www.robotis.com (Bioloid Premium kit CM-510)”
7. http://www.atmel.com/dyn/resources/p rod_documents/2549S.pdf
8. “http://www.robotis.com (user guideparts-
9. http://www.trossenrobotics.com/dyna mixel-ax-12-robot-actuator.aspx
10. “http://robosavvy.com/RoboSavvyPag es/Support/Bioloid/AX-12 (english).pdf”
11. “http://www.robotis.com (user guideproduct information-robot controller-cm-510)”
20. “http://pishrobot.com/en/products/rob otis.htm”
21. “http://pishrobot.com/files/products/da tasheets/havimo.pdf”
22. “http://pishrobot.com/files/products/da
4. “http://www.robothalloffame.org/unim
product information-robot controller-cm-510)”
es/Support/Bioloid/AX-12(english).pdf (paquete de instrucciones)”
parts-
12. “http://www.linuxfocus.org/common/sr c/article231/avr-libc-reference.html (i/o)”
13. “http://www.nongnu.org/avr-libc/usermanual/group__avr__interrupts.html”
14. “http://es.wikipedia.org/wiki/Stdio.h” 15. “http://www.cplusplus.com/reference/c library/cmath/”
16. “http://www.nongnu.org/avr-libc/usermanual/group__util__delay.html”
17. “http://www.robotis.com (user guidesoftware help)”
18. http://robosavvy.com/RoboSavvyPages /Support/Bioloid/AX-12(english).pdf
tasheets/havimo.pdf”