Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Reporte Interno
Coinvestigador
Ing. Luis Fernando Perico Remolina
Resumen
Este documento incluye un estudio detallado de la plataforma
iRobot Create
, presente en el laboratorio
de control y robtica de la Facultad de Ingeniera Mecatrnica de la Universidad Santo Toms, seccional Bucaramanga. Se describen las capacidades de la plataforma y su interfaz de comunicacin serial, haciendo especial nfasis en las posibilidades que ofrece para realizar experimentos de control cooperativo. Se incluye adems un anlisis de la cinemtica de los robots mviles diferenciales.
9 de agosto de 2013
1.
Introduccin
El laboratorio de control y robtica de la Facultad de Ingeniera Mecatrnica de la Universidad Santo Toms,
iRobot Create. stas se encuentran subutilizadas debido a Puesta en Marcha de un Equipo de Robots Mviles para investigacin y Docencia en el rea de Control Cooperativo busca darles
que no existe una base de conocimientos sobre su manejo. El proyecto de investigacin titulado uso a estos equipos y, de paso, abrir una nueva lnea dentro del grupo de investigacin de la facultad. Al emplear estos robots en este proyecto, se espera no slo tener la posibilidad de estudiar algoritmos y problemas de control cooperativo, sino tambin crear documentacin suciente sobre el manejo de los
Create
en otras tareas. En las siguientes secciones este documento se describir la plataforma disponible, de manera fsica en la seccin 3 y su interfaz de comunicacin serial en la seccin 4. Pero primero, la seccin 2 presentar un estudio de la cinemtica de los robots mviles diferenciales, conocimiento necesario para poder implementar algoritmos de control sobre el
Create.
2.
2.1.
Los robots mviles pueden clasicarse de acuerdo con el tipo de elemento que produce la traccin (ruedas, orugas, patas, etc.). Aquellos que operan con ruedas pueden a su vez clasicarse dependiendo de la cantidad, la ubicacin y el tipo de ruedas, adems de la forma en que las ruedas son actuadas. Para la mayora de aplicaciones que implican robots sencillos, la conguracin diferencial es la ms usada [1]. Un robot mvil diferencial tiene dos ruedas que pueden ser actuadas de manera independiente. El diseo de sistemas de control para estos robots presenta un reto especial desde el punto de vista terico debido a que tienen restricciones cinemticas de tipo no holnomo. Es decir, tienen restricciones en las velocidades que no pueden reducirse a una relacin algebraica entre las variables que describen la conguracin del sistema. El estudio terico de estos robots ha sido una rea de investigacin bastante activa en las ltimas tres dcadas. Ac se compilan algunos resultados previos obtenidos por diversos autores y que forman la base matemtica sobre la cual se desarrollarn algoritmos de control cooperativo.
2.2.
Cinemtica
Un robot mvil diferencial es, desde el punto de vista cinemtico, equivalente a un uniciclo, es decir a una rueda que gira sin deslizar sobre una supercie plana. Las variables que describen el estado del uniciclo consisten en las coordenadas de su posicin en el plano, stas se describen en la gura 1. Debido a que la rueda gira sin deslizar, el uniciclo no puede desplazarse en direccin perpendicular a su velocidad. Esta es una restriccin no holnoma que puede expresarse mediante la ecuacin:
(x, y )
x sin y cos = 0 x 2 + y 2 . =
(1)
Las velocidades posibles del uniciclo, y que pueden ser usadas como entradas de control, son entonces la velocidad lineal
v=
y la velocidad angular
x cos 0 y = sin 0 0 1
En el caso de un robot diferencial, como el
(2)
velocidades de cada rueda y de la separacin que entre ellas exista. Normalmente, en una aplicacin prctica, el controlador de nivel ms bajo se encarga de mantener la velocidad de cada motor en el valor requerido por
vr v r vl
el controlador de ms alto nivel. Para obtener la relacin entre las velocidades de las ruedas y las velocidades lineal y angular del robot, se considera una situacin como la de la gura 2. El centro instantneo de rotacin, el punto alrededor del cul est girando el robot en un instante dado, se encuentra en un punto sobre la proyeccin del eje sobre el cual las ruedas estn montadas, a una distancia
angular de todos los puntos sobre el robot es la misma, se pueden obtener las siguientes expresiones:
= =
vr l r+ 2 vl = l r 2
siendo
v r
(3a) (3b)
(3c)
vr
vl
vr = r +
l 2 l vl = r 2 = vr vl l
2
(4a)
(4b)
(5)
Por otro lado, al igualar (3a) con (3b) y con (3c) se consiguen las siguientes expresiones:
vr = v 1 +
r 2 r vl = v 1 2
(6a) (6b)
que al sumarlas producen la relacin entre la velocidad lineal del robot y las velocidades individuales de las ruedas:
v=
vr + vl 2
(7)
A partir de (5) y (7) se obtienen las relaciones directa e inversa entre las velocidades de las ruedas y las velocidades del robot:
v vr vl
2.3.
= =
1 2 1 l
1 1
1 2 1 l l 2 l 2
vr vl v
(8a)
(8b)
Existen dos problemas bsicos que deben ser resueltos por el controlador de un robot diferencial: la estabilizacin de postura y el seguimiento de una trayectoria. El primero consiste en garantizar que el robot se mantiene en un estado dado a medida que el tiempo pasa. El segundo consiste en llevar el error entre el estado y unos valores denidos, tienda a cero. Es bien sabido que estos problemas no pueden ser resueltos para un sistema como el descrito por (2) con el empleo de una ley de control invariante en el tiempo que sea continua y diferenciable. Esto fue declarado por Brokket en [2]. Algunos autores, por lo tanto, han intentado diferentes estrategias para solucionar este problema. Murray y Sastry [3] proponen la generacin de trayectorias mediante el empleo de seales sinusoidales relacionadas armnicamente. Sus resultados pueden emplearse en una clase particular de sistemas dinmicos, aquellos que pueden llevarse a la
forma encadenada.
Astol [4], propone una aproximacin diferente. Usando una tcnica que l denomina
como (2) es transformado en un sistema discontinuo. Este cambio de coordenadas tiene la propiedad de al sistema discontinuo de manera local y, por lo tanto, estabilizar tambin al sistema original.
la resolucin del sistema en un punto dado. Con ello, se puede generar una ley de control continua que estabilizar
Una mejor aproximacin es seguida por Oriolo et al. [1]. En este trabajo ellos presentan una tcnica de linealizacin por realimentacin. sta consiste en una ley de control no lineal, variante con el tiempo, que hace que el sistema se vuelva equivalente a dos sistemas de segundo orden desacoplados. Estos sistemas de segundo orden consisten en integradores dobles, bastante simples, que pueden ser estabilizados por leyes de control lineales. El trabajo [1] presenta resultados tericos y prcticos, los ltimos obtenidos en una plataforma con conguracin similar al
Para la linealizacin por realimentacin de (2), considere un nuevo vector de estado se selecciona de manera tal que las derivadas de las nuevas variables sean iguales a
z 1 z 2
Tomando la segunda derivada del vector
= z
x y
v cos v sin
=v
cos sin
se tiene:
z 1 z 2
(10)
iRobot Create.
siendo
. =
Si la segunda derivada de
linealizado:
z 1 z 2
sistema no lineal:
u1 u2
(11)
Tras igualar (10) y (11), se obtiene una relacin entre la entrada que se emplea para el sistema lineal y la del
u1 u2
(12)
Invirtiendo la transformacin (12) se tiene puede calcular la entrada que debe ser aplicada al robot diferencial para que simule el comportamiento del sistema lineal:
cos 1 v sin
1 v
sin cos
u1 u2 x = z1 , x = z1 , y = z 2
y
(13)
Utilizando (12) y (13), el sistema (2) ser equivalente a (11), es decir denida si
y = z2 .
Evidentemente, (12) y (13) son transformaciones no lineales y variantes con el tiempo. Es ms, (13) no est
v = 0.
3.
3.1.
El
Descripcin del
iRobot Create
Descripcin Bsica
presa introdujo el
iRobot. Cuando esta emRoomba, un robot aspiradora pensado para tareas domsticas, muchos usuarios empezaron a desmontar el robot y a agregar accesorios. viendo esto como una oportunidad de negocio, iRobot desarroll el Create, que es, en esencia, un Roomba sin la aspiradora. Una descripcin detallada se encuentra en [5]. El Create (gura 3) es un robot diferencial bsico. Cuenta con dos ruedas motrices, cada una operada de
es un robot mvil diferencial producido por la empresa estadounidense
Create
manera independiente por un motor. El robot tiene un controlador de nivel bajo en cada rueda, que se encarga de mantener la rapidez indicada por el usuario. Esto facilita la operacin del robot, haciendo posible el uso de modelos cinemticos como los descritos en la seccin 2. Las capacidades del robot pueden extenderse empleando un conector ubicado en la baha de carga. Este permite a un circuito externo comunicarse con el el estado de sus sensores, aparte de controlar sus actuadores. Cada una de las ruedas del robot tiene un sistemas de navegacin.
Create y obtener
encoder
(a) Mini-DIN
(b) DB-25
Create.
encoders, el Create tiene sensores de posicin de cada rueda, para indicar si la rueda se ha cado pared virtual
o la
(lo que puede suceder al encontrar una supercie con baches), sensores de golpe en su parachoques, sensores de seales provenientes de otros robots, de un control remoto o de otros accesorios como la
cli, inclinaciones excesivas, como un escaln) del terreno y un sensor infrarrojo que puede recibir
Create home
tiene sensores que permiten monitorear su estado interno (voltaje y
base.
corriente en la batera, estado de carga de la batera, temperatura de la batera) y el conector de la baha de carga tiene cuatro entradas digitales y una analgica, cuyos estados y valores pueden leerse. En su parte externa, el de los botones de iniciar y avanzar tambin puede ser ledo. Aparte de los motores, los actuadores del
Create cuenta con tres botones: encendido, iniciar (play ) y avanzar advance. El estado Create
incluyen los LED que se encuentran en la parte superior,
tres salidas digitales en el conector de 25 pines de la baha de carga, tres salidas analgicas con alta capacidad de corriente (que pueden ser operadas de manera directa o usando PWM) y un parlante a travs del cual se pueden tocar notas para generar canciones. Es importante notar que el
Create es un robot bastante sencillo. Si bien tiene incorporado un buen nmero de Mdulo de Comando,
que contiene
sensores, no cuenta con gran capacidad de control. Tiene el msculo, pero no el cerebro. Proveer esta capacidad, es tarea del usuario del robot. La compaa fabricante ofrece un accesorio, son posible con tan slo los comandos bsicos. un microcontrolador y permite programar en lenguaje c algunas funciones un poco ms complejas que las que
3.2.
Conexiones
serial, descrita en la seccin 4. Para ello puede conectarse de dos formas: mediante un conector mini-DIN, ubicado a un lado del robot, o mediante 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
La gura 4 presenta la distribucin de pines de los conectores. La descripcin y de los pines se muestra en la tabla 1 para el conector mini-DIN y en la tabla 2 para el conector DB25.
3.3.
El
Create
es una plataforma que permite hacer experimentos de control de robots diferenciales de manera
sencilla. el mdulo de comando es un accesorio que permite ampliar las capacidades de la plataforma bsica. Sin embargo, este robot carece de la habilidad de comunicarse con otros elementos de su tipo. Si bien puede hacerse comunicacin empleando un LED infrarrojo, las capacidades que esta solucin proveera son bastante limitadas. Tras un anlisis detallado de los principales requerimientos se encontr necesario crear un accesorio externo
Voltaje de la batera, no regulado. Voltaje de la batera, no regulado. Entrada serial al robot. Salida serial del robot. Cambio de la tasa de transmisin. Referencia de voltaje. Referencia de voltaje.
que funcione como cerebro y boca para el robot. La propuesta es construir una tarjeta, centrada en un microcontrolador, que se comunique con el ncleo del
Create
su estado y otra informacin pertinente, a sus congneres. Usando este mismo medio, cada robot podr recibir informacin sobre el estado de otros miembros del equipo y tomar decisiones basadas en sta. Esa es la idea bsica del control cooperativo. Puesto que la solucin planteada propone el empleo de un microcontrolador, se hace innecesario usar los mdulos de comando. Instalar stos complicara el trabajo enormemente, pues hara fata programar dos dispositivos diferentes. Por eso se preere hacerlos a un lado y disear una tarjeta de propsito especco, descrita en un documento aparte.
4.
Create permite al usuario leer informacin proveniente delos 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 [6]. 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: Tras encender el robot, el botn de iniciar debe mantenerse presionado durante 4 segundos. Como conrmacin, el robot emite una serie de sonidos con frecuencia descendente. 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.
4.1.
Modos de Operacin
o
(apagado),
passive
(pasivo),
safe
(seguro) y
full
(completo). Las diferencia 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.
RXD TXD PWR AI DI1 DI3 DO1 SW5 Vpwr SWVpwr SWVpwr SWVpwr CHRG GND DD/BRC GND DI0 DI2 DO0 DO2 GND LSD0 LSD1 LSD2 GND
Entrada serial al robot. Salida serial del robot. Control de encendido. Entrada analgica. Entrada digital 1. Entrada digital 3. Salida digital 1. referencia regulada: 5V, 100 mA. Voltaje de la batera, no regulado. Voltaje de la batera, regulado, 1.5A. Voltaje de la batera, regulado, 1.5A. Voltaje de la batera, regulado, 1.5A. Indica si el robot est cargando. Referencia de voltaje. Cambio de la tasa de transmisin. Referencia de voltaje. Entrada digital 0. Salida serial del robot. Salida digital 0. Salida serial del robot. Referencia de voltaje. Salida de 0.5A. Salida de 0.5A. Salida de 1.5A. Referencia de voltaje.
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 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.
Create
al modo
4.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 no, el procesador del
Create
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: la informacin requerida por cada comando.
hasta completar
Comando
START BAUD
OpCode1
128 129
Bytes de datos
Ninguno 1: Cdigo de
Disponible en modos
Cambia a modo
Pasivo No hay cambio.
1 Cdigo de operacin.
Disponible en modos
Cambia a modo
Seguro. Completo.
A continuacin se listan los comandos clasicados por tipo, con su respectivo cdigo de operacin y datos extra.
START BAUD
Este comando inicia la operacin de la interfaz serial, sacndola del modo apagado. Una vez se recibe, el
robot emite un sonido de conrmacin. Este comando cambia la tasa de transmisin de datos al valor especicado en el byte de informacin. una vez cambiada, esta tasa de transmisin se mantiene hasta que el robot sea apagado y vuelto a encender. Una vez se ha cambiado 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 3
START.
Comando
WAIT TIME WAIT DISTANCE WAIT ANGLE WAIT EVENT
OpCode
155 156 157 158
Bytes de datos
1: Un valor entre 0 y 255. 2: Un valor de 16 bits. 2: Un valor de 16 bits. 1: Evento a esperar.
Disponible en modos
Pasivo, seguro, completo. Pasivo, seguro, completo. Pasivo, seguro, completo. Pasivo, seguro, completo.
Cambia a modo
No hay cambio. No hay cambio. No hay cambio. No hay cambio.
Evento
Cada de rueda Cada de rueda frontal Cada de rueda izquierda Cada de rueda derecha Choque Choque izquierdo Choque derecho Pared virtual Pared
Cdigo1
1 2 3 4 5 6 7 8 9 10 11
Contrario2
255 254 253 252 251 250 249 248 247 246 245
Evento
Cdigo Contrario
12 13 14 15 16 17 18 19 20 21 22 244 243 242 241 240 239 238 237 236 235 234
Cli
Cli
izquierdo
1 Si se enva este cdigo, el robot espera 2 Si se enva este cdigo, el robot espera
esta espera, el robot no reacciona ante ninguna entrada. Estos comandos, descritos en la tabla 6, estn pensados para ser usados nicamente en la creacin de Los comandos
WAIT DISTANCE y WAIT ANGLE, requieren valores de 16 bits con signo para indicar la distancia
scripts.
y el ngulo a esperar. En estos casos el byte ms signicativo 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. El comando
WAIT TIME
espera un valor entre 0 y 255 que indica el tiempo a esperar en ms. La resolucin
WAIT EVENT
Create.
Create
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
del
se listan en la tabla 8.
Un
script
script,
que se incluirn en el
script.
Tabla 8: Comandos de
Comando
SCRIPT PLAY SCRIPT SHOW SCRIPT
Disponible en modos
Pasivo, seguro, completo. Pasivo, seguro, completo. Pasivo, seguro, completo.
script
Cambia a modo
No hay cambio. No hay cambio. No hay cambio.
Create
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 de el 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 [6]. La ejecucin de un demos siempre lleva al
Create
al modo pasivo.
DRIVE
DRIVE DIRECT
con signo. Se deben enviar siempre con el byte ms signicativo primero. Cuando se emplea
DRIVE
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
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 contrahorario en su puesto. En el caso del comando
DRIVE DIRECT
DRIVE.
play y advance tienen un solo color, y su estado simplemente se 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, 1 respectivamente . El segundo byte indica el color del LED power, que puede variar entre verde (0) y rojo (255),
cuenta con tres LED. Los LED indica como encendido o apagado. El LED 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 menos signicativos del byte de datos. Para controlar las salidas de alta capacidad de corriente, los llamados dos comandos diferentes. El primero,
Create
DIGITOUT.
comando indica el estado en el que debe ponerse cada una de las tres salidas digitales. ste se indica en los bits
PWM LSD permite seleccionar el ciclo til de cada salida PWM. El comando
se pueden emplear
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,
Comando
DRIVE DRIVE DIRECT LED DIGITOUT PWM LSD LSD SEND IR LSD
emplea un nico byte de datos, en el que los tres bits menos signicativos seleccionan el estado de cada
drivers.
Si el bit 0 est en un valor alto, por ejemplo, el LSD 0, correspondiente al pin 23 del
conector DB-25 (ver gura 4), funcionar con un ciclo til del 100 %, mientras que si este bit est en bajo, el LSD 0 estar apagado. El comando
SEND IR
incorporado. Para usar este comando, es necesario agregar un LED emisor de infrarrojos, conectado al
driver
Create espera. Sin embargo, el robot no tiene un emisor de seales infrarrojas low side 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 [6].
Create,
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 10. La informacin entregada por el
Create
o ms sensores. El contenido de los paquetes de sensores y su etiqueta se describe en la seccin 4.2.8. Para leer los sensores del robot se pueden emplear tres comandos. El comando paquete, por una sola vez, se puede utilizar el comando
SENSORS STREAM,
solicita un paquete
especco de informacin sensores que es entregado una sola vez. Para solicitar la informacin de ms de un
QUERRY LIST.
El comando
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 solicitados previamente. Si el byte de datos esperado por y si ste contiene un valor de 1, se reanudar. El comando
PAUSE
puede emplearse para detener o reiniciar la transmisin de datos sin necesidad de cambiar la lista de paquetes
SENSORS
espera un byte de datos, que debe contener la identicacin del paquete de sensores
QUERRY LIST
STREAM
esperan un total de
que indica cuntos paquetes de sensores se solicitan y los siguientes Tras ejecutar los comandos
QUERRY LIST, el robot entrega la informacin solicitada de manera 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 2 cuntos bytes de datos se van a recibir en la trama . Los siguientes n bytes contienen la informacin entregada
y directa. La informacin entregada por el comando por los sensores y el ltimo byte contiene un dato de vericacin, correspondiente al complemento a 2 de todos
SENSORS
Esto depende de la cantidad de informacin entregada por cada paquete de sensores solicitado
11
Comando
SENSORS QUERRY LIST STREAM PAUSE
Disponible en modos
Cambia a modo
No hay cambio. No hay cambio. No hay cambio. No hay cambio.
Pasivo, seguro, completo. Pasivo, seguro, completo. Pasivo, seguro, completo. Pasivo, seguro, completo.
los bytes entre el encabezado y el byte de vericacin. Estos es, si se suman el encabezado, todos los bytes de datos y el byte de vericacin, el byte menos signicativo del resultado tendr un valor de cero. Este byte hace posible la validacin de los datos recibidos. Es importante recordar que, con el n 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.
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 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.
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 12. Los bits 5 a 7 no se emplean. Este sensor retorna un byte con valor 1 si una pared es visible y un 0 si no. Este sensor retorna un byte con valor 1 si se detecta un escaln del lado izquierdo del robot. Este sensor retorna un byte con valor 1 si se detecta un escaln del lado frontal izquierdo
ID 9: Cli left
del robot.
Tabla 12: Registro del paquete Bit Sensor 7 6 5 4 Tercera Rueda 3 Rueda izq.
12
Tabla 13: Registro del paquete de sobrecorriente Bit Sensor 7 6 5 4 Rueda izq. 3 Rueda der. 2 LSD2 1 LSD0 0 LSD1
Advance
Play
Este sensor retorna un byte con valor 1 si se detecta un escaln del lado frontal
Este sensor retorna un byte con valor 1 si se detecta un escaln del lado derecho del robot. Se entrega un byte con un valor de 1 si se ha detectado una pared virtual. Este paquete entrega un byte con informacin sobre los sensores de
y de los motores que mueven las ruedas, segn se describe en la tabla 13.
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 conveninete 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.
estado de los sensores de sobrecorriente. Entrega el valor del byte recibido por el sensor infrarrojo del
SEND IR
Roomba
o la base del
emiten un cdigo cuyo signicado se puede encontrar en [6]. Si el sensor infrarrojo del robot no
ID 18: Buttons
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 14 Este paquete entrega dos bytes de datos, que contienen la distancia en milmetros recorrida
Este paquete entrega un byte que indica el estado de los botones de iniciar y avanzar del
ID 19: Distance
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 signicativo 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 signicativo primero. Hay que tener en cuenta que si ste dato no se lee con frecuencia, el contador puede saturarse.
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). Entrega un valor de 16 bits sin signo que indica el voltaje de la batera en milivolts.
13
Tabla 15: Registro de entradas digitales Bit Entrada 7 6 5 4 DD/BRC 3 DI3 2 DI2 1 DI1 0 DI0
ID 23: Current
Entrega un valor de 16 bits con signo que indica la corriente que uye hacia la batera del
ID 24: Temperature
Celsius.
Entrega un valor de 8 bits con signo que indica la temperatura de la batera en grados
Entrega un valor de 16 bits sin signo que indica la carga actual, en miliamperes por
Entrega un valor de 16 bits sin signo que indica la capacidad de corriente, en mili-
amperes por hora, de la batera. Entrega un valor de 16 bits sin signo que indica que tan fuerte es la seal de deteccin de
Entrega un valor de 16 bits sin signo que indica que tan fuerte es la seal de deteccin
Entrega un valor de 16 bits sin signo que indica que tan fuerte es la seal de
Entrega un valor de 16 bits sin signo que indica que tan fuerte es la seal de
deteccin de escaln del lado frontal derecho. Entrega un valor de 16 bits sin signo que indica que tan fuerte es la seal de deteccin
ID 32: Cargo bay digital inputs ID 33: Cargo bay analog signal
con la distribucin descrita en la tabla 15. Un dato de 10 bits sin signo indica el voltaje en la entrada analgica. Los dos bits menos signicativos 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). El valor de este byte indica en qu modo se encuentra operando la interfaz serial: apagado
Un byte indica cul de las canciones grabadas est seleccionada. Un byte indica, con un valor de 1, si una cancin est siendo tocada. Indica cuntos paquetes de datos han sido enviados.
Un dato de 16 bits con signo indica cul fue el ltimo valor de rapidez solicitado
DRIVE.
Un dato de 16 bits con signo indica cul fue el ltimo valor de radio de giro solicitado
DRIVE.
Un dato de 16 bits con signo indica cul fue el ltimo valor de rapidez para
DRIVE DIRECT.
14
Un dato de 16 bits con signo indica cul fue el ltimo valor de rapidez para
DRIVE DIRECT.
Puesta en Marcha de un Equipo de Robots Mviles para investigacin y Docencia en el rea de Control Cooperativo. Se
Este documento resume los resultados de la primera fase del proyecto de investigacin titulado gener documentacin concerniente al anlisis cinemtico de robots mviles diferenciales y al manejo especico de la plataforma
iRobot Create.
Se considera que la informacin presentada ac es suciente para que cualquier profesor o estudiante pueda emplear estos equipos sin problemas.
Referencias
[1] G. Oriolo, A. De Luca, and M. Vendittelli, Wmr control via dynamic feedback linearization: Design, implementation, and experimental validation, pp. 835852, 2002. [2] R. W. Brockett, Asymptotic stability and feedback stabilization, in R. W. Brockett, R. S. Millman, and H. J. Sussmann, Eds.
[3] R. M. Murray and S. Sastry, Nonholonomic motion planning. steering using sinusoids,
[5] [6]
iRobot Create Owner's Guide, iRobot Corporation, 2006. [Online]. Available: http://www.irobot.com iRobot Create Open Interface, iRobot Corporation, 2006. [Online]. Available: http://www.irobot.com
15