You are on page 1of 26

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.

You might also like