Este documento describe el diseño de un módulo de extensión para aplicaciones de control cooperativo utilizando la plataforma iRobot Create. El módulo permitirá controlar varios robots simultáneamente y recolectar datos de sensores para investigación y docencia sobre control cooperativo. Se presenta una descripción del robot iRobot Create y sus especificaciones. Luego, se detalla el diseño del módulo de extensión, incluyendo el circuito impreso y la interfaz de comunicación. Finalmente, se explica que el módulo permitirá a la univers
Este documento describe el diseño de un módulo de extensión para aplicaciones de control cooperativo utilizando la plataforma iRobot Create. El módulo permitirá controlar varios robots simultáneamente y recolectar datos de sensores para investigación y docencia sobre control cooperativo. Se presenta una descripción del robot iRobot Create y sus especificaciones. Luego, se detalla el diseño del módulo de extensión, incluyendo el circuito impreso y la interfaz de comunicación. Finalmente, se explica que el módulo permitirá a la univers
Este documento describe el diseño de un módulo de extensión para aplicaciones de control cooperativo utilizando la plataforma iRobot Create. El módulo permitirá controlar varios robots simultáneamente y recolectar datos de sensores para investigación y docencia sobre control cooperativo. Se presenta una descripción del robot iRobot Create y sus especificaciones. Luego, se detalla el diseño del módulo de extensión, incluyendo el circuito impreso y la interfaz de comunicación. Finalmente, se explica que el módulo permitirá a la univers
DISEO DE UN MDULO DE EXTENSIN PARA APLICACIONES DE
CONTROL COOPERATIVO CON LA PLATAFORMA IROBOT CREATE
HERMES RICARDO LOPEZ MORENO
UNIVERSIDAD SANTO TOMS DIVISIN DE INGENIERAS Y ARQUITECTURA FACULTAD DE INGENIERA MECATRNICA BUCARAMANGA 2014 DISEO DE UN MDULO DE EXTENSIN PARA APLICACIONES DE CONTROL COOPERATIVO CON LA PLATAFORMA IROBOT CREATE
HERMES RICARDO LOPEZ MORENO
Trabajo de Grado con el fin de optar el ttulo de Ingeniero Mecatrnico.
Director Ms.C(c) Luis Fernando Perico. Ingeniero de Sistemas.
UNIVERSIDAD SANTO TOMS DIVISIN DE INGENIERAS Y ARQUITECTURA FACULTAD DE INGENIERA MECATRNICA BUCARAMANGA 2014 TABLA DE CONTENIDO
1. INTRODUCCION ..................................................................................... 8 2. JUSTIFICACIN ....................................................................................... 9 3. ALCANCE ............................................................................................... 11 4. OBJETIVOS .................................................................................................. 12 4.1. OBJETIVO GENERAL ............................................................................... 12 4.2. OBJETIVOS ESPECFICOS ...................................................................... 12 5. DESCRIPCIN DEL IROBOT CREATE ....................................................... 13 5.1 CONEXIONES ............................................................................................ 13 5.2 LA INTERFAZ DE COMUNICACIN SERIAL ............................................ 15 5.2.1. Modos de Operacin ............................................................................... 16 5.1.2. Comandos ............................................................................................... 17 5.1.2.1. Comandos Bsicos .............................................................................. 17 5.1.2.2. Comandos de Modo ............................................................................. 18 5.1.2.3. Comandos de Espera .......................................................................... 18 5.1.2.4 Comandos de Script ............................................................................. 19 5.1.2.5. Comandos de Demostracin ................................................................ 20 5.1.2.6. Comandos de Actuacin ...................................................................... 20 5.1.2.7. Comandos de Sensores ....................................................................... 22 5.1.2.8. Paquetes de Sensores ......................................................................... 23 6. DISEO DEL MDULO DE EXTENSIN ...... Error! Bookmark not defined. 6.1 Diseo del circuito impreso ........................... Error! Bookmark not defined. 7. ALGORITMO DE CONTROL .......................... Error! Bookmark not defined. 7.2 Cinemtica .................................................... Error! Bookmark not defined. 7.3 Control de un robot no holnomo: linealizacin por realimentacin ...... Error! Bookmark not defined. 8. PRUEBAS Y RESULTADOS .......................... Error! Bookmark not defined. 8.1. Interfaz ......................................................... Error! Bookmark not defined. 8.2 Datos recividos ............................................. Error! Bookmark not defined. 9. CONCLUSIONES ........................................... Error! Bookmark not defined. Bibliografa .......................................................... Error! Bookmark not defined. ANEXO ............................................................... Error! Bookmark not defined.
LISTA DE TABLAS
pg.
Tabla 5.1: Descripcin de los pines del conector mini-DIN ............................... 15 Tabla 5.3. Comandos Bsicos .......................................................................... 17 Tabla 5.4. Cdigos de las Tasas de Transmisin ............................................. 18 Tabla 5.5. Comandos de Modo ......................................................................... 18 Tabla 5.6. Comandos de Espera ...................................................................... 18 Tabla 5.7. Cdigos de los Eventos ................................................................... 19 Tabla 5.9: Comandos de actuacin .................................................................. 21 Tabla 5.10: Comandos de sensores ................................................................. 23 Tabla 5.11: Grupos de sensores ....................................................................... 23 Tabla 5.12: Registro del paquete Bumps and Wheel Drops ............................. 24 Tabla 5.13: Registro del paquete de sobrecorriente ......................................... 24 Tabla 5.14: Registro del paquete de botones ................................................... 24 Tabla 5.15: Registro de entradas digitales ........................................................ 26 Tabla 8.1. Cadena de transmisin. ..................... Error! Bookmark not defined.
LISTA DE FIGURAS
pg.
Figura 5.1: Irobot Create vista frontal. Fuente [12]. ................................................ 13 Figura 5.2: Irobot Create vista inferior. Fuente [12] ................................................ 14 Figura 5.3: Distribucin de pines de los conectores del Create Fuente [12] .......... 14 Figura 6.1: Diagrama esquemtico de la tarjeta de control. Fuente: autor ...... Error! Bookmark not defined. Figura 6.2: Diseo del circuito impreso: cara inferior. Fuente: autor. ............... Error! Bookmark not defined. Figura 6.3: Diseo del circuito impreso: cara superior. Fuente: autor. ............. Error! Bookmark not defined. Figura 6.4: Fotografa de las tarjeta de control construidas. Fuente: autor. ..... Error! Bookmark not defined. Figura 6.5: Instalacin de la tarjeta en el iRobot Create. Fuente: autor. .......... Error! Bookmark not defined. Figura 7.1: Variables que describen el estado de un uniciclo. Fuente: autor. .. Error! Bookmark not defined. Figura 7.2: Velocidades en un robot diferencial. Fuente. autor. .... Error! Bookmark not defined. Figura 8.1 Control en accin sobre los robots en movimiento.Error! Bookmark not defined. Figura 8.2 Trayectoria recorrida para coordenadas iniciales ID 1(0,0) ID2(-300,- 300) .......................................................................... Error! Bookmark not defined. Figura 8.3. Red de Broadcast. ................................. Error! Bookmark not defined.
1. INTRODUCCION
El principal objetivo del control cooperativo es sintetizar leyes de control que permitan a un grupo de agentes autnomos efectuar una tarea coordinada, generalmente basndose en informacin local, sin una entidad central que dirija a cada miembro del equipo. Las aplicaciones de esta clase de sistemas son variadas y esto ha llevado a un creciente inters y a un abundante cuerpo de literatura en el rea [1]. Los trabajos que se han publicado en los ltimos aos cubren todo el espectro, desde desarrollos tericos [2-4] hasta implementaciones prcticas [5,6]. Considerando el elevado nmero de aplicaciones y el gran inters que est rea despierta, resulta importante para el Grupo de investigacin en Aplicaciones Mecatrnicas, GRAM, contar con la capacidad de efectuar investigacin sobre el tema. Por supuesto, para la formulacin de algoritmos y la ejecucin de investigacin terica bsica, el grupo no requiere mayor equipamiento. Sin embargo, para poder poner en prctica las tcnicas de control sintetizadas, hace falta una plataforma adecuada. Contar con sta permitira tambin actividades de docencia en este mismo campo.
Con el objetivo de dotar a la Facultad de Ingeniera Mecatrnica de la Universidad Santo Toms, sede Bucaramanga, de una plataforma sobre la cual realizar actividades de docencia e investigacin en esta rea, se formul un proyecto de investigacin con financiacin interna. Dentro de este proyecto de investigacin, el presente trabajo de grado propuso un estudio preliminar sobre las posibilidades que ofrecen los equipos con los que cuenta la Universidad en este momento.
En este proyecto se dise, fabric y puso en marcha, una versin prototipo de un mdulo de extensin. Con estos primeros pasos, se espera que la facultad pueda contar, dentro de muy poco tiempo, con un nmero adecuado de robots para la experimentacin en esta rea.
2. JUSTIFICACIN
Para tareas de investigacin y extensin en control cooperativo, existen en el mercado varias soluciones comerciales, ofrecidas por diversos proveedores. Entre ellas se pueden contar los epuck [7], Amigobot [8], Khepera [9] y algunos otros. Tambin hay plataformas experimentales creadas por grupos de investigacin de diversas universidades y laboratorios [10,11]. Muchas de las soluciones comerciales requieren una considerable inversin monetaria para ser adoptadas, y las soluciones propias, por su misma naturaleza, no estn disponibles de manera abierta.
Como alternativa a ellas, este proyecto plante crear una plataforma propia para estas labores. Para lograr esto, se explotaron las capacidades de unos equipos ya existentes en la Universidad Santo Toms.
En este momento el laboratorio de Control de Procesos y Robtica de la Facultad de Ingeniera Mecatrnica, cuenta con seis robots mviles iRobot Create. Estos equipos son ofrecidos por su fabricante como plataformas de para exploracin, docencia e investigacin [12]. La principal ventaja que presentan es su arquitectura abierta, que permite programar diferentes tipos de comportamiento sin necesidad de preocuparse por ajustes mecnicos o codificacin de bajo nivel. Aparte de esto, los robots cuentan con un puerto de extensin al que se pueden conectar componentes externos segn necesidad o inters del usuario. Con estos mdulos es posible expandir las capacidades de cada robot.
La principal extensin disponible en el mercado para los Create es el mdulo de comando, [13] ofrecido por el mismo fabricante. Con esta extensin el usuario puede descargar cdigo escrito en C/C++ al robot y ejecutar comportamientos propios sin necesidad de mantener el robot conectado a un computador. El laboratorio cuenta tambin con estos mdulos.
Los robots Create, sin embargo, no cuentan con capacidades de comunicacin, hecho que imposibilita su empleo en labores de control cooperativo. De cualquier manera, su arquitectura abierta puede ser explotada para agregar estas capacidades y construir un equipo de robots con habilidades de cooperacin.
Como prueba de la flexibilidad de empleo de esta plataforma, se puede mencionar la experiencia del Autonomy Lab, de Simon Fraser University [14]. Este grupo de investigacin cuenta con un total de 30 unidades del tipo Create a los que les han sido adaptados diversos sensores y extensiones.
Resulta claro que la Universidad Santo Toms cuenta con un equipo verstil, en nmero considerable, al cual se le puede sacar provecho fcilmente. Esta es la principal meta de este proyecto. An ms importante, gracias a su estructura modular y arquitectura abierta, la extensin de las capacidades de los Create para la tarea de control cooperativo no va en perjuicio de otras aplicaciones para las que pudieran ser usados.
La propuesta del proyecto incluye la construccin de una tarjeta, basada en un microcontrolador, que se comunique con el ncleo del Create para controlarlo y pueda transmitir, va inalmbrica, su estado y otra informacin pertinente, a sus congneres. Usando este mismo medio, cada robot puede recibir informacin sobre el estado de otros miembros del equipo y tomar decisiones basadas en sta. Esa es la idea bsica del control cooperativo.
3. ALCANCE
Por tratarse de un proyecto piloto, el alcance de este trabajo se limit al estudio preliminar de la arquitectura de los equipos disponibles y a la puesta en marcha del primer prototipo de los mdulos de expansin en dos de los robots disponibles.
Se construirn dos tarjetas de las mismas. La extensin de los mdulos a todos los equipos se dejar para futuros desarrollos.
La funcionalidad se verificar con un ejercicio bsico de control cooperativo el cual consistir en la indicacin de una coordenada a la cual tendr que llegar el agente uno y este agente debe enviar constantemente a un agente dos en reposo el cual apenas reciba las indicaciones de las coordenadas del uno comenzara a seguir al mismo a una distancia de seguridad hasta que ambos converjan al punto deseado.
Se creara un software para indicar las coordenadas deseadas, guardar los datos recibidos para su posterior anlisis y a su vez monitorear el correcto desempeo de los agentes.
4. OBJETIVOS
4.1. OBJETIVO GENERAL
Dotar a la Facultad de Ingeniera Mecatrnica de la Universidad Santo Toms, sede Bucaramanga, de una plataforma para la docencia e investigacin en el rea de control cooperativo.
4.2. OBJETIVOS ESPECFICOS
Definir de manera precisa las habilidades requeridas por el equipo de robots para poder ejecutar experimentos de control cooperativo. Disear y construir un mdulo de extensin capaz de extender las capacidades de cooperacin del sistema en existencia. Integrar los mdulos construidos con dos de los equipos existentes. Validar la funcionalidad de los sistemas expandidos mediante experimentos bsicos de control cooperativo.
5. DESCRIPCIN DEL IROBOT CREATE
El iRobot Create es un kit robtico de desarrollo completo que permite programar nuevos comportamientos del robot sin tener que preocuparse del montaje mecnico y el cdigo de bajo nivel [12].
La base mvil iRobot Create (ver figuras 1 y 2) est diseada para maniobrar sobre superficies planas, adems puede llevar cargas de hasta 2.26kg. Tambin cuenta con un puerto de propsito general el cual permite tener control sobre el sistema y comunicarse con los actuadores y sensores. Posee tambin entradas y salidas digitales disponibles para adicionar elementos electrnicos propios o de terceros al sistema.
El Create tiene una interfaz de comunicacin llamada Open Interface (OI) o interfaz abierta, que permite ejecutar muchas ideas para casos prcticos y de una manera sencilla. Comandos como Drive (manejar) que pone en manchar la plataforma, comandos de demostracin, y comandos de tocar canciones, que animan al propio desarrollo de nuevos algoritmos [12].
5.1 CONEXIONES
Un controlador externo, que pretenda enviar comandos al Create, debe emplear la interfaz de comunicacin serial, descrita ms adelante. Para ello puede conectarse de dos formas: mediante un conector mini-DIN, ubicado a un lado del robot, o con
Figura 5.1: Irobot Create vista frontal. Fuente [12].
Figura 5.2: Irobot Create vista inferior. Fuente [12]
el conector DB25 ubicado en la baha de carga. El segundo tiene la ventaja de aumentar el nmero de conexiones posibles: las entradas y salidas analgicas y digitales, no estn conectadas al mini-DIN.
La conexin serial utiliza niveles lgicos TTL, es decir, de 0 a 5 V. El protocolo RS232 funciona con voltajes diferentes, y un convertidor de niveles se hace necesario si se pretende conectar el robot a un PC. Para ello, el Create viene con un cable que incorpora este accesorio.
La figura 3 presenta la distribucin de pines de los conectores. La descripcin y de los pines se muestra en la tabla 5.1 para el conector mini-DIN y en la tabla 5.2 para el conector DB25.
(a) MiniDIN (b) DB-25 Figura 5.3: Distribucin de pines de los conectores del Create Fuente [12]
Tabla 5.1: Descripcin de los pines del conector mini-DIN Pin Nombre Funcin 1 Vpwr Voltaje de la batera, no regulado. 2 Vpwr Voltaje de la batera, no regulado. 3 RXD Entrada serial al robot. 4 TXD Salida serial del robot. 5 BRC Cambio de la tasa de transmisin. 6 GND Referencia de voltaje. 7 GND Referencia de voltaje.
Tabla 5.2: Descripcin de los pines del conector DB25 Pin Nombre Funcin 1 RXD Entrada serial al robot. 2 TXD Salida serial del robot. 3 PWR Control de encendido. 4 AI Entrada analgica. 5 DI1 Entrada digital 1. 6 DI3 Entrada digital 3. 7 DO1 Salida digital 1. 8 SW5 referencia regulada: 5V, 100 mA. 9 Vpwr Voltaje de la batera, no regulado. 10 SWVpwr Voltaje de la batera, regulado, 1.5A. 11 SWVpwr Voltaje de la batera, regulado, 1.5A. 12 SWVpwr Voltaje de la batera, regulado, 1.5A. 13 CHRG Indica si el robot est cargando. 14 GND Referencia de voltaje. 15 DD/BRC Cambio de la tasa de transmisin. 16 GND Referencia de voltaje. 17 DI0 Entrada digital 0. 18 DI2 Salida serial del robot. 19 DO0 Salida digital 0. 20 DO2 Salida serial del robot. 21 GND Referencia de voltaje. 22 LSD0 Salida de 0.5A 23 LSD1 Salida de 0.5A 24 LSD2 Salida de 1.5A. 25 GND Referencia de voltaje.
5.2 LA INTERFAZ DE COMUNICACIN SERIAL
La interfaz abierta del Create permite al usuario leer informacin proveniente de los sensores del robot y enviar comandos a los actuadores. Cualquier procesador capaz de generar comandos seriales, como un computador o un microcontrolador, puede tener acceso a la interfaz del robot. El manual completo de la interfaz, proporcionado por el fabricante se encuentra en [14].
Esta interfaz serial puede operar a tasas de transmisin que van desde 300 hasta 115200, siendo la tasa por defecto 57600 baudios. Esta tasa puede cambiarse mediante un comando que ser descrito ms adelante. Sin embargo, si el procesador que se va a usar no puede comunicarse a esta velocidad, sta puede cambiarse por hardware, empleando uno de dos mtodos.
El primer mtodo es manual. Tras encender el robot, el botn de iniciar debe mantenerse presionado durante 4 segundos. Como confirmacin, el robot emite una serie de sonidos con frecuencia descendente.
El segundo mtodo requiere un procesador conectado a la interfaz. Tras encender el robot, se debe esperar dos segundos para luego enviar tres pulsos bajos a travs del pin BRC de cualquiera de los dos conectores. Cada pulso debe durar entre 50 y 500 ms.
Tras cualquiera de estas dos operaciones, el robot se comunicar a 19200 baudios hasta que la energa se desconecte o hasta que la tasa de transmisin se cambie explcitamente mediante el comando serial descrito ms adelante. 5.2.1. Modos de Operacin
El robot puede operar en cuatro modos diferentes: off (apagado), passive (pasivo), safe (seguro) y full (completo). Las diferencias entre modos se encuentran en las restricciones de operacin que cada uno presenta. El modo apagado, por supuesto, es el modo de operacin inicial, al que el robot llega cuando recin se enciende. En modo apagado, el robot no recibe comando alguno, excepto el comando de inicio, despus del cual se entra al modo pasivo. En este modo el usuario puede utilizar la interfaz serial nicamente para leer el estado de los sensores o ejecutar uno de los demos que el robot tiene incorporados. En el modo pasivo no es posible cambiar el estado de los actuadores del robot.
Para mover al robot, es necesario entrar en el modo seguro o en el modo completo. La diferencia entre estos dos modos es que, en el modo seguro, existen tres condiciones de seguridad que devuelven al Create al modo pasivo si llegaran a presentarse. Estas condiciones son:
Deteccin de una inclinacin cuando el vehculo se mueve hacia adelante o hacia atrs con un radio de giro muy pequeo. Deteccin de la cada de una rueda. Deteccin de un cargador conectado y energizado.
5.1.2. Comandos
Cada uno de los comandos que se pueden enviar al robot tiene un cdigo de operacin que debe ser transmitido por el puerto serial. Adems del cdigo de operacin, algunos comandos requieren informacin dato extra. Por ejemplo, si se entrega el comando drive, el Create esperar recibir 4 bytes ms, con informacin sobre la velocidad y el radio de giro con que debe ejecutar la maniobra. Es importante que se enven todos los bytes de datos que el comando requiere. Si esto no ocurre, el procesador del Create entrar en un modo de espera, en el que se detienen todas las acciones hasta que se reciban todos los datos. Para cada comando, el procesador que se est comunicado con el robot, deber enviar una secuencia serial de tipo: [OpCode][Data Byte 1][Data Byte 2]... hasta completar la informacin requerida por cada comando.
A continuacin se listan los comandos clasificados por tipo, con su respectivo cdigo de operacin y datos extra.
5.1.2.1. Comandos Bsicos Se emplean para activar la interfaz de comunicacin del robot y para cambiar la tasa de transmisin. Los comandos bsicos son:
START Este comando inicia la operacin de la interfaz serial, sacndola del modo apagado. Una vez se recibe, el robot emite un sonido de confirmacin. BAUD Este comando cambia la tasa de transmisin de datos al valor especificado en el byte de informacin. Una vez cambiada, esta tasa de transmisin se mantiene hasta que el robot sea apagado y vuelto a encender. Despus de cambiar la tasa de transmisin, es necesario esperar al menos 100ms antes de empezar a transmitir informacin con la nueva tasa.
La descripcin de su operacin se encuentra en la tabla 5.3 Tabla 5.3. Comandos Bsicos Comando OpCode Bytes de datos Disponible en modos Cambio a modo START 128 Ninguno Apagado, Pasivo, Seguro, Completo. Pasivo BAUD 129 1: Nueva tasa de transmisin. Ver tabla 5.2 Pasivo, Seguro Completo No hay cambio
Tabla 5.4. Cdigos de las Tasas de Transmisin Cdigo Tasa en BPS Cdigo Tasa en BPS 0 300 6 14400 1 600 7 19200 2 1200 8 28800 3 2400 9 38400 4 4800 10 57600 9600 11 115200 Tabla 5.5. Comandos de Modo Comando OpCode Bytes de datos Disponible en modos Cambio a modo SAFE 131 Ninguno Pasivo, Seguro Completo Seguro FULL 132 Ninguno Pasivo, Seguro Completo Completo
5.1.2.2. Comandos de Modo Estos comandos, descritos en la tabla 5.5, permiten llevar al robot a los modos seguro y completo. Si se quiere pasar al modo pasivo, el comando START debe usarse.
5.1.2.3. Comandos de Espera Estos comandos hacen que el robot entre en un modo de espera y mantenga su estado actual hasta que pase un cierto tiempo, se haya recorrido una distancia, se haya rotado un ngulo o un evento haya ocurrido. Durante esta espera, el robot no reacciona ante ninguna entrada. Estos comandos, descritos en la tabla 5.6, estn pensados para ser usados nicamente en la creacin de scripts.
Los comandos WAIT DISTANCE y WAIT ANGLE, requieren valores de 16 bits con signo para indicar la distancia y el ngulo a esperar. En estos casos el byte ms significativo siempre debe enviarse primero. La distancia positiva se mide hacia adelante, mientras que el ngulo de giro positivo visto desde arriba. El Create interpreta la distancia a esperar como un valor en mm, mientras que el ngulo se medir en grados.
Tabla 5.6. Comandos de Espera Comando OpCode Bytes de datos Disponible en modos Cambio a modo WAIT TIME 155 1: Valor entre 0 y 255 Pasivo, Seguro Completo No hay cambio WAIT DISTANCE 156 2: Distancia a esperar Pasivo, Seguro Completo No hay cambio WAIT ANGLE 157 2: ngulo a esperar Pasivo, Seguro Completo No hay cambio WAIT EBENT 158 1: Cdigo del evento a esperar Pasivo, Seguro Completo No hay cambio
El comando WAIT TIME espera un valor entre 0 y 255 que indica el tiempo a esperar en ms. La resolucin posible es de 15ms, tiempo de muestreo interno del Create.
Tras el comando WAIT EVENT debe enviarse el cdigo de un evento que se ha de esperar. Los eventos disponibles y sus cdigos estn descritos en la tabla 5.7.
5.1.2.4 Comandos de Script Estos comandos permiten cargar en el Create una serie de comandos para ser ejecutados ms tarde. Son especialmente tiles si el robot se est programando desde un computador, caso en el que los comandos pueden cargarse con el robot conectado mediante el cable serial y ser ejecutados tras la desconexin. Los comandos de script se listan en la tabla 5.8. Tabla 5.7. Cdigos de los Eventos Evento Cdigo 1 Contrario 2 Evento Cdigo Contrario Cada de rueda 1 255 Cliff delantero-izquierdo 12 244 Cada de rueda frontal 2 254 Cliff delantero-derecho 13 243 Cada de rueda derecha 3 253 Cliff derecho 14 242 Cada de rueda izquierda 4 252 Base 15 241 Choque 5 251 Botn avanzar 16 240 Choque izquierdo 6 250 Botn iniciar 17 239 Choque derecho 7 249 Entrada digital 0 18 238 Pared virtual 8 248 Entrada digital 1 19 237 Pared 9 247 Entrada digital 2 20 236 Cliff 10 246 Entrada digital 3 21 235 Cliff izquierdo 11 245 Modo pasivo 22 234 1 Si se enva este cdigo, el robot espera hasta que el evento ocurra. 2 Si se enva este cdigo, el robot espera mientras el evento ocurra.
Tabla 5.8 Comandos de Script Comando OpCode Bytes de datos Disponible en modos Cambio a modo SCRIPT 152 N+1 Pasivo, Seguro Completo No hay cambio PLAY SCRIPT 153 Ninguno Pasivo, Seguro Completo No hay cambio SHOW SCRIPT 154 Ninguno Pasivo, Seguro Completo No hay cambio
Un script puede tener una duracin de hasta 100 bytes. El comando SCRIPT le indica al robot que se le entregarn los comandos a ser guardados. El primer byte tendr un valor N, correspondiente al nmero de bytes del script, mientras los siguientes N bytes tendrn los cdigos de operacin y bytes de datos de los comandos que se incluirn en el script. 5.1.2.5. Comandos de Demostracin El Create tiene 9 secuencias de comandos pre programadas, que permiten demostrar diferentes capacidades del robot. Los comandos de demostracin indican al robot que ejecute un demo. Tres de ellos pueden solicitarse directamente mientras que los dems se solicitan con el cdigo de operacin 136 seguido del cdigo de la demostracin. Debido a su poca utilidad en el proyecto propuesto, no se considera necesario describir con detalles las demostraciones disponibles. El lector interesado puede remitirse a [12]. La ejecucin de un demos siempre lleva al Create al modo pasivo.
5.1.2.6. Comandos de Actuacin Los comandos de actuacin permiten mover el robot, controlar el estado de los LED, utilizar el parlante, controlar las salidas digitales y las salidas analgicas de PWM, conocidas como low side drivers. Estos comandos se describen en la tabla 5.9.
Los comandos DRIVE y DRIVE DIRECT interpretan los bytes de informacin como valores enteros de 16 bits con signo. Se deben enviar siempre con el byte ms significativo primero.
Cuando se emplea DRIVE la velocidad, correspondiente a los dos primeros bytes de la trama, puede tomar un valor de entre -500 y 500 mm/s y el radio de giro, dos ltimos bytes, puede estar entre -2000 y 2000 mm. La velocidad positiva indica movimiento hacia adelante, mientras que un radio de giro positivo indica una curva hacia la izquierda. Cuando se usa el comando DRIVE existen algunos casos especiales para el radio de giro:
Los valores 32768 o 32767 (0x8000 o 0x7FFF) hacen que el robot ande directo, sin girar. El valor 0xFFFF har que el robot gire en sentido horario en su puesto. El valor 0x0001 har que el robot gire en sentido contra horario en su puesto.
En el caso del comando DRIVE DIRECT no hay casos especiales, y las velocidades de cada rueda estn restringidas al mismo intervalo que en el comando DRIVE. Los dos primeros bytes dan la informacin de velocidad de la rueda derecha, los otros dos la de la rueda izquierda.
El Create cuenta con tres LED. Los LED play y advance tienen un solo color, y su estado simplemente se indica como encendido o apagado. El LED power tiene dos colores, y su intensidad puede variarse. El comando LED recibe tres bytes de datos. El primero indica el estado de los LED power y advance en sus bits 1 y 3, respectivamente[1] {El bit menos significativo es el bit 0.}. El segundo byte indica el color del LED power, que puede variar entre verde (0) y rojo (255), pasando por diferentes tonalidades de amarillo y anaranjado. El tercer byte indica la intensidad con la que alumbrar este LED: un valor de 0 indica apagado y uno de 255 indica intensidad completa.
El estado de las salidas digitales se controla con el comando DIGITOUT. El byte de datos requerido por este comando indica el estado en el que debe ponerse cada una de las tres salidas digitales. ste se indica en los bits menos significativos del byte de datos.
Para controlar las salidas de alta capacidad de corriente, los llamados low side drivers, se pueden emplear dos comandos diferentes. El primero, PWM LSD permite seleccionar el ciclo til de cada salida PWM. El comando espera tres bytes de datos, cada uno con el valor del ciclo til correspondiente a uno de los drivers. Si se quiere entregar un ciclo til del 100%, se debe indicar un valor de 128 en el byte correspondiente. El otro comando, LSD emplea un nico byte de datos, en el que los tres bits menos significativos seleccionan el estado de cada uno de los tres drivers. Si el bit 0 est en un valor alto, por ejemplo, el LSD 0, correspondiente al pin 23 del conector DB-25 (ver figura 5.3), funcionar con un ciclo til del 100%, mientras que si este bit est en bajo, el LSD 0 estar apagado.
Tabla 5.9: Comandos de actuacin Comando OpCode Bytes de datos Disponible en modos Cambia a modo DRIVE 137 4 Seguro o completo No hay cambio DRIVE DIRECT 145 4 Seguro o completo No hay cambio LED 139 3 Seguro o completo No hay cambio DIGITOUT 147 1 Seguro o completo No hay cambio PWM LSD 144 3 Seguro o completo No hay cambio LSD 138 1 Seguro o completo No hay cambio SEND IR 151 1 Seguro o completo No hay cambio
El comando SEND IR est programado para simplificar la comunicacin, enviando un byte de datos con el formato que el sensor infrarrojo del Create espera. Sin embargo, el robot no tiene un emisor de seales infrarrojas incorporado. Para usar este comando, es necesario agregar un LED emisor de infrarrojos, conectado al low side driver 1. En el manual de la interfaz [12] se encuentra la descripcin del circuito apropiado.
Los comandos de las canciones permiten usar el Create como un instrumento musical. La descripcin de las frecuencias y duraciones de las notas se omite en este documento porque no se consideran de inters para el objetivo del proyecto. Esta informacin se puede encontrar en [12].
5.1.2.7. Comandos de Sensores Los comandos de sensores permiten leer el estado de los sensores del Create, de sus entradas analgicas y digitales y el valor de algunas variables internas. Puesto que el perodo de muestreo interno del robot es de 15ms, los comandos de lectura de sensores no deben enviarse con mayor frecuencia. Estos comandos se describen en la tabla 5.10.
La informacin entregada por el Create se organiza en 43 paquetes. Cada paquete contiene el valor de uno o ms sensores. El contenido de los paquetes de sensores y su etiqueta se describe en la seccin 5.1.2.8.
Para leer los sensores del robot se pueden emplear tres comandos. El comando SENSORS solicita un paquete especfico de informacin sensores que es entregado una sola vez. Para solicitar la informacin de ms de un paquete, por una sola vez, se puede utilizar el comando QUERRY LIST. El comando STREAM, por otro lado, inicia una transmisin continua de paquetes de sensores, enviando la informacin solicitada cada 15ms. Este comando es especialmente til en tareas de control, pues automatiza el muestreo del estado del robot. El comando PAUSE puede emplearse para detener o reiniciar la transmisin de datos sin necesidad de cambiar la lista de paquetes solicitados previamente. Si el byte de datos esperado por PAUSE contiene un valor de 0, la transmisin se detendr, y si ste contiene un valor de 1, se reanudar.
El comando SENSORS espera un byte de datos, que debe contener la identificacin del paquete de sensores solicitado. Los comandos QUERRY LIST y STREAM esperan un total de N+1 bytes: el primero tendr un valor N, que indica cuntos paquetes de sensores se solicitan y los siguientes N bytes contendrn la identificacin de los paquetes solicitados.
Tras ejecutar los comandos SENSORS y QUERRY LIST, el robot entrega la informacin solicitada de manera directa. La informacin entregada por el comando STREAM tiene un formato diferente. La trama entregada inicia con un encabezado, correspondiente a un byte con valor 19. El segundo byte tendr un valor n, que indica cuntos bytes de datos se van a recibir en la trama[Esto depende de la cantidad de informacin entregada por cada paquete de sensores solicitado]. Los siguientes n bytes contienen la informacin entregada por los sensores y el ltimo byte contiene un dato de verificacin, correspondiente al complemento a 2 de todos los bytes entre el encabezado y el byte de verificacin.
Tabla 5.10: Comandos de sensores Comando OpCode Bytes de datos Disponible en modos Cambia a modo SENSORS 142 1 Pasivo, seguro, completo. No hay cambio. QUERRY LIST 149 1+N. Pasivo, seguro, completo. No hay cambio. STREAM 148 1+N Pasivo, seguro, completo. No hay cambio. PAUSE 150 1 Pasivo, seguro, completo. No hay cambio.
Tabla 5.11: Grupos de sensores ID Tamao en Bytes Paquetes que Contiene 0 26 7 a 26 1 10 7 a 16 2 6 17 a 20 3 10 21 a 26 4 14 27 a 34 5 12 35 a 42 6 52 7 a 42
Estos es, si se suman el encabezado, todos los bytes de datos y el byte de verificacin, el byte menos significativo del resultado tendr un valor de cero. Este byte hace posible la validacin de los datos recibidos.
Es importante recordar que, con el fin de mantener una comunicacin correcta, no se deben solicitar ms datos de los que es posible transmitir en 15ms dada la tasa de transmisin seleccionada. Por ejemplo, con una tasa de 57600 baudios, se pueden enviar un mximo de 86 bytes en 15ms. Por lo tanto, el total de informacin transmitido por los paquetes de sensores solicitados no puede contener ms de 83 bytes.
5.1.2.8. Paquetes de Sensores El Create organiza la informacin de los sensores en 43 paquetes de datos, etiquetados del 0 al 42. Los paquetes 7 a 42 contienen la informacin de sensores individuales, mientras que los paquetes 0 a 5 agrupan algunos sensores. El paquete 6 enva la informacin de todos los sensores del create. La tabla 5.11 indica cmo se agrupan los sensores en los paquetes 0 a 6.
A continuacin se describen cada uno de los 36 paquetes de sensores individuales.
ID 7: Bumps and wheel drops Un byte describe el estado de los sensores de choque en la parte frontal del robot (1 indica que hay choque) y del estado d elas ruedas (1 indica que la rueda est cada). Los datos se organizan segn se ve en la tabla 5.12. Los bits 5 a 7 no se emplean.
ID 8: Wall Este sensor retorna un byte con valor 1 si una pared es visible y un 0 si no.
ID 9: Cliff left Este sensor retorna un byte con valor 1 si se detecta un escaln del lado izquierdo del robot.
Tabla 5.12: Registro del paquete Bumps and Wheel Drops Bit 7 6 5 4 3 2 1 0 Sensor
Tercera Rueda Rueda izq. Rueda der. Choque izq. Choque der. Tabla 5.13: Registro del paquete de sobrecorriente Bit 7 6 5 4 3 2 1 0 Sensor
Rueda izq. Rueda der. LSD2 LSD0 LSD1
Tabla 5.14: Registro del paquete de botones Bit 7 6 5 4 3 2 1 0 Botn
Advance Play
ID 10: Cliff front left Este sensor retorna un byte con valor 1 si se detecta un escaln del lado frontal izquierdo del robot.
ID 11: Cliff front right Este sensor retorna un byte con valor 1 si se detecta un escaln del lado frontal derecho del robot.
ID 12: Cliff right Este sensor retorna un byte con valor 1 si se detecta un escaln del lado derecho del robot.
ID 13: Virtual wall Se entrega un byte con un valor de 1 si se ha detectado una pared virtual.
ID 14: LSD and wheel overcurrents Este paquete entrega un byte con informacin sobre los sensores de corriente de los low side drivers y de los motores que mueven las ruedas, segn se describe en la tabla []. Si la capacidad de corriente de los LSD o de los motores de las ruedas es superada, el bit correspondiente se pondr en alto. Es conveniente recordar que los LSD 0 y 1 tienen capacidad de hasta 0.5 A, mientras el LSD 2 puede proporcionar hasta 1.5 A. Los motores de las ruedas, por su parte, tienen cada uno una capacidad de hasta 1 A.
ID 15 y 16: No usados En los paquetes 0, 1 y 6, siempre se envan 2 bytes con valor 0 despus de enviar el estado de los sensores de sobre corriente.
ID 17: Infrared byte Entrega el valor del byte recibido por el sensor infrarrojo del create. La seal puede ser emitida por accesorios como el control remoto del Roomba o la base del create, otro Create empleando el comando SEND IR o dispositivos creados por el usuario. Los dispositivos producidos por la compaa iRobot emiten un cdigo cuyo significado se puede encontrar en [12]. Si el sensor infrarrojo del robot no est detectando seal alguna, se entrega un byte con valor 255.
ID 18: Buttons Este paquete entrega un byte que indica el estado de los botones de iniciar y avanzar del create. Si el bit correspondiente a un botn est en alto, ste est siendo presionado. La distribucin de los bits se muestra en la tabla
ID 19: Distance Este paquete entrega dos bytes de datos, que contienen la distancia en milmetros recorrida por el robot desde la ltima vez que se solicit la informacin de distancia. El valor se enva como un dato de 16 bits con signo, con el byte ms significativo primero. Hay que tener en cuenta que si ste dato no se lee con frecuencia, el contador puede saturarse.
ID 20: Angle Este paquete entrega dos bytes de datos, que contienen el ngulo en grados recorrido por el robot desde la ltima vez que se solicit la informacin de ngulo. El valor se enva como un dato de 16 bits con signo, con el byte ms significativo primero. Hay que tener en cuenta que si ste dato no se lee con frecuencia, el contador puede saturarse.
ID 21: Charging state Entrega un byte con un valor que indica el estado de carga del robot. ste puede ser no cargando (0), carga de reacondicionamiento (1), carga total (2), mantenimiento de carga (3), en espera (4) o condicin de falla en la carga (5).
ID 22: Voltage Entrega un valor de 16 bits sin signo que indica el voltaje de la batera en milivolts.
Tabla 5.15: Registro de entradas digitales Bit 7 6 5 4 3 2 1 0 Entrada
DD/BRC DI3 DI2 DI1 DI0
ID 23: Current Entrega un valor de 16 bits con signo que indica la corriente que fluye hacia la batera del robot. Valores negativos indican que la batera est entregando corriente.
ID 24: Temperature Entrega un valor de 8 bits con signo que indica la temperatura de la batera en grados Celsius.
ID 26: Battery capacity Entrega un valor de 16 bits sin signo que indica la carga actual, en miliamperes por hora, de la batera.
ID 27: Wall signal Entrega un valor de 16 bits sin signo que indica que tan fuerte es la seal de deteccin de pared.
ID 28: Cliff left signal Entrega un valor de 16 bits sin signo que indica que tan fuerte es la seal de deteccin de escaln del lado izquierdo.
ID 29: Cliff front left signal Entrega un valor de 16 bits sin signo que indica que tan fuerte es la seal de deteccin de escaln del lado frontal izquierdo.
ID 30: Cliff front right signal Entrega un valor de 16 bits sin signo que indica que tan fuerte es la seal de deteccin de escaln del lado frontal derecho.
ID 31: Cliff right signal Entrega un valor de 16 bits sin signo que indica que tan fuerte es la seal de deteccin de escaln del lado derecho.
ID 32: Cargo bay digital inputs Indica el estado de las entradas digitales de la baha de carga, de acuerdo con la distribucin descrita en la tabla [5.15].
ID 33: Cargo bay analog signal Un dato de 10 bits sin signo indica el voltaje en la entrada analgica.
ID 34: Charging sources available Los dos bits menos significativos del byte entregado por este sensor indican si el robot est conectado y recibiendo carga de la base (bit 1) o del cargador interno (bit 0).
ID 35: OI mode El valor de este byte indica en qu modo se encuentra operando la interfaz serial: apagado (0), pasivo (1), seguro (2) o completo (3).
ID 36: Song number Un byte indica cul de las canciones grabadas est seleccionada.
ID 37: Song playing Un byte indica, con un valor de 1, si una cancin est siendo tocada.
ID 38: Number of Stream Packets Indica cuntos paquetes de datos han sido enviados.
ID 39: Requested velocity Un dato de 16 bits con signo indica cul fue el ltimo valor de rapidez solicitado por un comando DRIVE.
ID 40: Requested radius Un dato de 16 bits con signo indica cul fue el ltimo valor de radio de giro solicitado por un comando DRIVE.
ID 41: Requested right velocity Un dato de 16 bits con signo indica cul fue el ltimo valor de rapidez para la rueda derecha solicitado por un comando DRIVE DIRECT.
ID 42: Requested left velocity Un dato de 16 bits con signo indica cul fue el ltimo valor de rapidez para la rueda izquierda solicitado por un comando DRIVE DIRECT.