17
Hoja de Datos Plataforma para experimentación en robótica móvil (individual y cooperativa)

Hoja de datos

Embed Size (px)

DESCRIPTION

Hoja de datos de botánica

Citation preview

Hoja de DatosPlataforma para experimentación en robótica móvil

(individual y cooperativa)

NX-BOT

Índice de contenido1. INTRODUCCIÓN....................................................................................42. DESCRIPCIÓN DE LA PLATAFORMA...........................................................5

2.1. Sensores ....................................................................................52.2. Actuadores..................................................................................72.3. Puertos de expansión....................................................................72.4. Batería, carga y encendido.............................................................7

3. ARQUITECTURA HARDWARE..................................................................104. ARQUITECTURA SOFTWARE...................................................................12

4.1. NXOS........................................................................................134.2. PLAYER/STAGE y OpenWRT..........................................................144.3. NXAPI.......................................................................................15

5. ENLACES Y BIBLIOGRAFÍA....................................................................17

Revisión 1.0 Página 3

NX-BOT

1. INTRODUCCIÓN

Nx-Bot es una plataforma robótica diseñada con el objetivo principal de proveer facilidades para experimentación en robótica móvil (individual y cooperativa). La plataforma se encuentra soportada por el entorno de desarrollo Player/Stage [1], el cual es de fuente abierta (open source) y comúnmente utilizado en el área de robótica en varias universidades alrededor del mundo. Este manual presenta las características hardware y software del sistema.

Revisión 1.0 Página 4

NX-BOT

2. DESCRIPCIÓN DE LA PLATAFORMA

La plataforma NX-Bot se concibió como un robot sencillo en esquemas sensoriales y de actuación, pero robusto en la tarea de comunicación, característica importante en el área de la robótica cooperativa. A continuación se describe el sistema físico de NX-Bot. La figura [1] ilustra imágenes de la plataforma desde diferentes ángulos.

Figura 1: NX-Bot, plataforma robótica

2.1. Sensores El robot NX-Bot cuenta con un anillo de seis (6) sensores infrarrojos distribuidos en los 180° de la zona frontal. Estos sensores se encuentran ubicados tal y como se muestra en la figura [2]. El funcionamiento de los infrarojos es de tipo ON/OFF: Permiten detectar obstáculos, pero no son capaces de deducir a que distancía éste se encuentra.

Revisión 1.0 Página 5

NX-BOT

Figura 2: Cinturón de sensores IR en NX-Bot

Figura 3: Localización de sensores en NX-Bot

NX-Bot también cuenta con cuatro (4) sensores de contacto, distribuidos como se muestra en la figura [3]. Estos sensores son útiles para detección de obstáculos que se encuentren por debajo del cinturón de sensores infrarrojos que posee NX-Bot.

Revisión 1.0 Página 6

Sensores infrarrojos (IR)

NX-BOT

Figura 4: Sensores de contacto frontales y traseros de NX-Bot

Finalmente, NXBot cuenta con un sensor para medir el estado de la batería, de tal manera que alerte al usuario cuando ésta se encuentra descargada.

2.2. ActuadoresNX-Bot cuenta con dos motores distribuidos en una configuración diferencial. Los motores son servos modificados, con un torque suficiente para el peso del robot, y se encuentran equipados con encoders, que generan 360 pulsos por revolución. De esta manera se puede establecer lazos de control de velocidad y de posición.

Asimismo, se cuenta con un Buzzer para generación de sonidos. Normalmente el buzzer es utilizado por el firmware NXOS (descrito más adelante) para alertar sobre eventos de importancia, como la conexión/desconexión de un cliente al robot y la alerta por batería baja.

2.3. Puertos de expansiónNX-Bot cuenta con un puerto de expansión de memoria externa, que permite agregar múltiples dispositivos al sistema. Asimismo, pone a disposición líneas ADC para lectura de señales analógicas y un puerto USB, para conexión de dispositivos que usen esta interfaz, como cámaras web, memorias de almacenamiento externo, tarjetas de sonido, etc.

2.4. Batería, carga y encendidoEl robot NX-Bot cuenta con una batería seca, de 6V-4Ah (próximas modificaciones incluirán una batería de 12V-2.2Ah). Ésta le permite una autonomía aproximada

Revisión 1.0 Página 7

NX-BOTde 4 a 5 horas. Para su recarga el robot cuenta con un puerto de carga localizado en la zona trasera, en donde también se encuentra el botón de encendido. La figura [4] ilustra estos dos elementos.

Figura 5: Zona trasera de Nx-Bot

Cada uno de los NX-bot cuenta con un cargador propio, con el conector especial para el puerto de carga. Simplemente conecte el cargador en la polaridad adecuada (el conector cuenta con una pestaña que permite la conexión del cargador en un único sentido), y enciéndalo definiendo la carga para baterías de 6V. La carga de la batería toma un tiempo de aproximadamente ocho horas. La figura [6] muestra el cargador utilizado y el conector del cargador.

Cargador Puerto del Cargador

Figura 6: Herramientas para carga de la batería del robot

Revisión 1.0 Página 8

Puerto de Carga

Encendido / Apagado

NX-BOT

A continuación se listan las características hardware más sobresalientes de la plataforma.

RESUMEN DE CARACTERÍSTICAS

Dimensiones Altura: 15.5 cmRadio: 11 cm

Sensores

Seis (6) sensores infrarrojos.Máxima distancia de detección: 60 cm.

Cuatro (4) sensores de contacto.

Sensor de estado de la batería.

Actuadores

Dos (2) motores en configuración diferencial con encoders.Ruedas de radio 6 cm.Velocidad máxima: 15 cm/s. (30 cm/s en futuros cambios)Resolución de encoders: 360 puls/rev.

Buzzer piezoeléctrico.

Expansión

Puertos:• USB (1)• Ethernet (4)• SPI (1)• Serial (2)• Memoria Externa (hasta 64KB)• Interrupciones externas (8)• Canales ADC (7).

Tabla 1: Características de NX-Bot

Revisión 1.0 Página 9

NX-BOT

3. ARQUITECTURA HARDWARE

NX-Bot está constituido por dos sistemas de procesamiento. El primero es un sistema microcontrolado, implementado con una arquitectura de 8 bits, que se encarga del control de bajo nivel de los actuadores y sensores del robot. Las características más relevantes de este sistema se muestran a continuación:

• Arquitectura AVR a 16MHz, ATMega 1281, 8 KB RAM, 128 KB FLASH.• Un (1) puerto serial RS232 disponible.• Siete (7) entradas analógicas disponibles.• Interfaz de expansión de memoria, hasta 64KB.• Tres (3) puertos de 8 bits de E/S.• Seis (6) conectores para sensores infrarrojos.• Ocho (8) conectores para sensores de contacto.• Buzzer piezoeléctrico.• Indicador LED de encendido y de estado de batería.• Interfaz para motores, incluyen señales PWM, de dirección, y de lectura de

encoders.• Interfaz serial para control del sistema.

Figura 7: Sistema microcontrolado para control de bajo nivel

Revisión 1.0 Página 10

NX-BOT

El segundo sistema con el que cuenta NX-Bot es un sistema embebido con capacidades mayores de procesamiento, y es utilizado como un computador embebido que se encarga de la comunicación inalámbrica y acceso a redes a través de Wifi, implementa un sistema operativo Linux para facilitar la gestión y configuración del sistema y ejecuta la aplicación servidor que controla el sistema de bajo nivel y permite la conexión/desconexión de usuarios. Las características más relevantes del sistema se describen a continuación:

• Arquitectura MIPSEL de 32 bits a 266 MHz, Broadcom, 32 MB RAM, 8 MB FLASH.

• Dos (2) puertos seriales RS232 disponibles.• Un (1) puerto USB 2.0 disponible.• Cuatro (4) puertos Ethernet disponibles.• Interfaz de comunicación Wifi 802.11b/g.

Figura 8: Sistema embebido para control de alto nivel

Los dos sistemas se comunican a través de un enlace serial configurado a 115.200 bauds, 8 bits de datos, sin paridad, 1 bit de stop.

Revisión 1.0 Página 11

NX-BOT

4. ARQUITECTURA SOFTWARE

El software de NX-Bot se encuentra dividido en tres partes: NXOS (Firmware del sistema microcontrolado), Player (Aplicación que se ejecuta en el sistema embebido) y NXAPI (API de control de alto nivel escrita en Java y que puede ser ejecutada en un computador remoto). A continuación se muestra la distribución de estos tres proyectos.

Figura 9: Software de NX-Bot

Un diagrama más específico mostrando las capas software se ilustra en la figura [10]:

Revisión 1.0 Página 12

NX-BOT

Figura 10: Capas Software del sistema NX-Bot

4.1. NXOSNXOS es el sistema operativo para el sistema de bajo nivel de NX-Bot. Se encarga de la gestión de dispositivos conectados al robot, como los sensores y actuadores. Asimismo establece los lazos de control y de actualización de lecturas, de manera determinística ya que implementa un RTOS (Sistema Operativo de Tiempo Real), que se encarga de gestionar básicamente tres tareas: comunicación con el sistema de alto nivel, actualización de sensores (infrarrojos, bumpers y batería) y control de actuadores (Motores, buzzer, indicadores LED). La figura [11] ilustra la arquitectura general de NXOS.

Revisión 1.0 Página 13

NX-BOT

Figura 11: Arquitectura de NXOS

4.2. PLAYER/STAGE y OpenWRTEl sistema de alto nivel incluye una distribución de Linux (OpenWRT) orientada a sistemas embebidos, de bajos recursos en comparación con un computador moderno. OpenWRT se encarga de la gestión de los sistemas de comunicación, tanto Ethernet como Wifi, y los puertos seriales. Por otro lado, Player es un servidor de interfaces robóticas, que permite el control de múltiples dispositivos al definir una arquitectura basada en drivers. Player ha sido compilado para poder ser ejecutado en la arquitectura del sistema, e implementa cinco interfaces:

• Position2d: Interfaz Para el control directo de motores, tanto de posición (odometría) como de velocidad.

• IR: Interfaz para lectura de los sensores infrarrojos.• Bumper: Interfaz para lectura de los sensores de contacto.• Battery: Interfaz para lectura del estado de la batería.• Sound: Interfaz para control de melodías del Buzzer.

El proyecto Player/Stage incluye el simulador Stage para emulación de las interfaces robóticas. La figura [12] muestra el Stage con tres robots. Por otro lado

Revisión 1.0 Página 14

NX-BOTel proyecto incluye herramientas que facilitan las pruebas y correcto funcionamiento del software. Tal es el caso del PlayerViewer, el cual es un simple cliente que permite observar los datos devueltos por las interfaces, de una manera gráfica fácilmente entendible (figura [12]).

(a) (b)

Figura 12: Herramientas del proyecto Player/Stage: (a) Simulador Stage y (b) PlayerViewer

4.3. NXAPINXAPI es la interfaz de usuario utilizada para programar los controladores del robot. El controlador tiene la versatilidad de que puede ser ejecutado en un PC remoto o incluso como un proceso en el SO del robot. NXAPI se compone de los siguientes paquetes:

Paquete Util

Incluye utilidades para facilitar el manejo de información, como vectores, poses, GUIs, etc.

Paquete Test

Incluye los programas de prueba para validar el funcionamiento de NX-Bot y son programas de ejemplo para familiarizarse con la interfaz.

Revisión 1.0 Página 15

NX-BOTPaquete Robot

Este paquete incluye las clases necesarias para realizar la conexión al servidor Player, gestión de sensores y de actuadores.

Paquete Behaviors

Ya que el control de NX-Bot se realizó siguiendo el paradigma de comportamientos, este paquete contiene todos los comportamientos hasta ahora implementados. Incluye los más sencillos, como GoToPoint, AvoidObstacles, hasta otros más complejos, como Follow, MaintainFormation, etc. Asimismo, este paquete incluye todas las clases necesarias para gestionar la pila de comportamientos, y diferentes tipos de árbitro (colaborativo y competitivo).

Revisión 1.0 Página 16

NX-BOT

5. ENLACES Y BIBLIOGRAFÍA

[1] "Proyecto Player/Stage" [online] http://playerstage.sourceforge.net/[2] "NX-Bot: Formación Flecha" [online] http://www.youtube.com/watch?

v=xNWVuFW0KA4&feature=related[3] "NX-Bot: Formación Columna" [online]

http://www.youtube.com/watch?v=CK5_BR9Ydm0&feature=related[4] "NX-Bot: Formación Cuadrado" [online]

http://www.youtube.com/watch?v=snkjwmBnkmI&feature=related[5] "NX-Bot: Formación Fila" [online] http://www.youtube.com/watch?

v=pP97Qtj2szY&feature=related[6] "NX-Bot, cambio de formación cuadrado (ancho)" [online]

http://www.youtube.com/watch?v=51I7vrg0M1[7] "NX-Bot: Cambio automático de formación en un pasillo de paredes

paralelas" [online] http://www.youtube.com/watch?v=2XOy8fmbDiQ&feature=related

[8] "NX-BOT: Cambio automático de formación en un pasillo de paredes inclinadas" [online] http://www.youtube.com/watch?v=AlhxQNx48JE&feature=related

Revisión 1.0 Página 17