2 descripcion del robot

11
Capítulo 2 - Descripción del robot 15 Capítulo 2. Descripción del robot En este capítulo se introducirá el robot utilizado en el proyecto, tanto la parte mecánica como la electrónica utilizada. El objetivo es entender todo el hardware del que dispone el robot y que será programado para un fin concreto. La parte software se detalla en el capítulo siguiente, sin embargo se introducirá brevemente el algoritmo utilizado por la IMU para obtener la actitud del robot. Entre la electrónica utilizada también se detalla la comunicación inalámbrica con el PC a través de módulos Zigbee y el funcionamiento de estos. 2.1. BASE DE LOCOMOCIÓN Como base de locomoción del robot se ha utilizado una base comercial que consta de cuatro ruedas en una configuración llamada Skid Steer. Esta configuración es similar a la diferencial, pero al constar de cuatro ruedas se produce deslizamiento transversal, cosa que no ocurre con la diferencial. A efectos del control puede manejarse de manera similar si no se tiene en cuenta el deslizamiento.

Upload: harry-prado

Post on 15-Sep-2015

212 views

Category:

Documents


0 download

DESCRIPTION

arducopter

TRANSCRIPT

  • Captulo 2 - Descripcin del robot 15

    Captulo 2. Descripcin del robot

    En este captulo se introducir el robot utilizado en el proyecto, tanto la

    parte mecnica como la electrnica utilizada. El objetivo es entender todo el

    hardware del que dispone el robot y que ser programado para un fin concreto. La

    parte software se detalla en el captulo siguiente, sin embargo se introducir

    brevemente el algoritmo utilizado por la IMU para obtener la actitud del robot.

    Entre la electrnica utilizada tambin se detalla la comunicacin inalmbrica con el

    PC a travs de mdulos Zigbee y el funcionamiento de estos.

    2.1. BASE DE LOCOMOCIN

    Como base de locomocin del robot se ha utilizado una base comercial que

    consta de cuatro ruedas en una configuracin llamada Skid Steer. Esta

    configuracin es similar a la diferencial, pero al constar de cuatro ruedas se

    produce deslizamiento transversal, cosa que no ocurre con la diferencial. A efectos

    del control puede manejarse de manera similar si no se tiene en cuenta el

    deslizamiento.

  • Captulo 2 - Descripcin del robot 16

    Figura 6. Modelo en 3D de la base de locomocin utilizada

    Esta base posee un motor para cada rueda y un chasis de aluminio de

    dimensiones 280x297x126 mm. Esta configuracin est preparada para

    maniobrar sobre terrenos no preparados.

    Esta base incluye la electrnica de potencia para manejar los motores de

    cada lado por separado y un microcontrolador Atmel ATMega168 para realizar el

    control a bajo nivel de los motores.

  • Captulo 2 - Descripcin del robot 17

    Figura 7. Placa de electrnica de control a bajo nivel de motores

    La programacin del microcontrolador se realiza mediante la interfaz de

    Arduino. La placa consta de un chip FTDI que proporciona un enlace entre el

    puerto USB y el puerto serie (USART) del microcontrolador. El ordenador se

    conecta a la placa con un cable USB, el cual, gracias al driver FTDI es emulado por

    el ordenador como si fuese un puerto serie estndar.

    2.2. ARDUPILOT MEGA

    Ardupilot Mega es un autopiloto diseado para el control de todo tipo de

    UAVs. Est basado en el microcontrolador ATmega2560 e incorpora el software

    necesario para usarlo sin necesidad de programarlo, pero al ser de cdigo abierto

    deja la puerta abierta a modificaciones del cdigo y utilizarlo para cualquier otra

    funcin, por este motivo se ha elegido como la placa apropiada para el objetivo de

    este proyecto de controlar un robot terrestre.

    Actualmente, los desarrolladores del Ardupilot Mega estn desarrollando el

    software para utilizarlo con robots terrestres llamado ArduRover, aunque todava

    se halla en una fase inicial de su desarrollo.

  • Captulo 2 - Descripcin del robot 18

    Figura 8. Placa Ardupilot Mega e indicacin de conexiones

    2.2.a. Descripcin del Ardupilot Mega

    Este controlador se encuentra dividido en dos placas electrnicas: la placa

    de microcontrolador y la de sensores o IMU. Los sensores que incluye esta placa

    son los siguientes:

    Acelermetro de 3 ejes

    Giroscopio de 3 ejes

    Magnetmetro de 3 ejes

    Sensor de presin absoluta

    GPS: mdulo Mediatek MT3329 con firmware 1.6. Puede

    proporcionar la posicin a una frecuencia mxima de 5Hz a travs de

    un puerto con niveles TTL a 3.3V.

    Segn la hoja de especificaciones del fabricante, tiene una precisin

    en las medidas de 3 metros de valor cuadrtico medio en el plano

    horizontal y 0.1 m/s de error en velocidad.

  • Captulo 2 - Descripcin del robot 19

    Figura 9. Mdulo GPS Mediatek con antena integrada

    Otras caractersticas que posee el Ardupilot Mega son:

    Entradas de radio control y salidas para servos

    Chip de failsafe capaz de reiniciar el microcontrolador principal y

    conmutar el control de salida de los servos en caso de fallo.

    Rel para conmutacin.

    USB 2.0

    Monitorizacin de bateras

    El microcontrolador usado es compatible con el entorno de programacin

    Arduino. En este entorno se puede modificar el cdigo proporcionado por el

    desarrollador libremente. En este caso se ha realizado la transformacin a un

    controlador de robot mvil, ya que dispone de los sensores suficientes para

    controlarlo. La parte del cdigo original encargada de la IMU se mantendr para

    realizar los clculos para obtener los ngulos de inclinacin del robot tomando la

    notacin de las aeronaves: guiada (yaw), cabeceo (pitch) y alabeo (roll), tambin

    llamados ngulos de Euler.

    Al igual que la placa controladora de los motores del robot, la placa de

    sensores incluye un chip FTDI para comunicar el microcontrolador con un

    ordenador a travs de USB. Esta comunicacin, como se explica anteriormente

    permite programar la placa y realizar una comunicacin serie con el ordenador.

    2.2.b. Funcionamiento de la IMU

    La IMU que incorpora el Ardupilot Mega posee nueve grados de libertad

    (tres del acelermetro, tres del giroscopio y tres del magnetmetro), es decir

    nueve medidas de los sensores que hay que convertir en los tres grados de libertad

    de rotacin de un cuerpo en el espacio. Para estimar estos tres ngulos de

    orientacin es necesario programar un filtro que unifique toda la informacin para

    corregir los errores de los sensores.

  • Captulo 2 - Descripcin del robot 20

    Se disponen sensores inerciales (acelermetros y giroscopio) que dan

    informacin precisa a corto plazo, pero tienden a ser poco fiables con el tiempo, y

    dos dispositivos que dan informacin absoluta a lo largo del tiempo que son el GPS

    y el magnetmetro. Combinando los sensores se obtiene una informacin mucho

    ms fiable y precisa de la actitud de la que tendran cada uno por separado.

    Los giroscopios dan informacin de la velocidad de giro en cada eje, por lo

    que se podra estimar la rotacin del robot con solo integrar la velocidad de giro.

    Sin embargo, esta informacin no es suficiente, pues a lo largo del tiempo se

    acumulan errores numricos.

    Con un acelermetro de tres ejes se puede determinar la orientacin del

    robot fijo respecto a la superficie terrestre. En cambio, si el robot se mueve con

    cierta aceleracin se medir la combinacin de la aceleracin con la gravedad y

    ambas sern indistinguibles. Por tanto, un acelermetro por s solo no puede

    utilizarse para obtener la orientacin del robot.

    Se suele usar un filtro de Kalman para integrar las medidas de los sensores

    y corregir sus errores. Este filtro funciona bastante bien en la prctica pero es

    computacionalmente costoso, por eso el Ardupilot Mega utiliza otro mtodo para

    identificar la orientacin llamado "Premerlani-Bizard robust direction cosine

    matrix estimator" basado en el trabajo de Mahony et al [4].. El esquema del

    proceso es el siguiente:

    Figura 10. Esquema del proceso de estimacin de la orientacin

    Si se quisiera transformar un vector de un sistema de referencia a otro se

    puede hacer utilizando una matriz de rotacin o tambin llamada matriz de

    cosenos directores. Esta matriz describe la orientacin de un sistema de

    coordenadas con respecto al otro. La transformacin contraria se realizara con la

    inversa de la matriz de rotacin, que resulta ser idntica a la matriz transpuesta al

  • Captulo 2 - Descripcin del robot 21

    tratarse de una matriz ortogonal. La matriz de cosenos directores se encuentra

    relacionada con los ngulos de Euler (, , ) de la siguiente manera:

    [

    ]

    Esta matriz va cambiando segn vaya cambiando la orientacin del robot.

    [

    ]

    La integracin numrica se realiza aplicando sucesivas multiplicaciones

    cada pocos milisegundos con las nuevas medidas de los giroscopios .

    Al transcurrir el tiempo se van acumulando errores numricos que hacen

    que la matriz de rotacin pierda la propiedad de ortogonalidad. Esta propiedad

    indica que si dos vectores son perpendiculares en un sistema de referencia

    seguirn sindolo despus del cambio de sistema de referencia, y que la longitud

    de un vector ser la misma en ambos sistemas de referencia. Si bien el error no

    aumenta rpidamente puede ser importante despus de unos minutos y es

    necesario corregirlo.

    Para corregir los errores primero se tiene en cuenta las propiedades que la

    matriz de cosenos directores debe cumplir. Para ello se hacen pequeos ajustes

    para renormalizar la matriz y reescalar las filas de la matriz para que sean vectores

    de magnitud 1.

    Despus hay que tomar medidas para los errores que aaden un offset a las

    medidas de los giroscopios. Para corregir los offsets se compensa con una medida

    de orientacin absoluta que no tenga offsets como son el GPS y acelermetros o

    magnetmetros. Aunque estos sensores no tienen una respuesta tan rpida como

    puede hacerlo el giroscopio.

    Utilizar el GPS para corregir los offsets es vlido nicamente para usarlo en

    un avin, ya que siempre se est desplazando, y a partir del desplazamiento se

    puede obtener la direccin en la que se mueve el avin que es una medida absoluta

    del ngulo de guiada (yaw), asumiendo que el avin se mueve en la direccin

    hacia la que est apuntando, lo cual no es cierto con vientos cruzados. Los

    acelermetros se utilizan para proporcionar informacin sobre el eje Z. Para un

  • Captulo 2 - Descripcin del robot 22

    robot terrestre o un UAV de despegue vertical no podra ser vlido el GPS debido a

    que puede permanecer esttico, por lo que se recurre a un magnetmetro de tres

    ejes que proporciona la misma medida. El error se puede medir como el producto

    vectorial del vector de referencia con el correspondiente de la matriz de cosenos

    directores. Ese error es realimentado negativamente con un controlador PI para

    neutralizarlo. El trmino integral asegura que se cancele totalmente el offset.

    Los ngulos obtenidos como resultado se almacenan en variables de 32 bits

    en punto fijo con dos cifras decimales. El hecho de utilizar un mayor nmero de

    bits respecto a los 8 bits con los que trabaja el procesador es para evitar un

    aumento de los errores numricos al realizar operaciones. Por otra parte, trabajar

    con 32 bits en un procesador de 8 bits hace ms lentas las operaciones. En este

    caso se est utilizando un microcontrolador lo suficientemente potente como para

    realizar los clculos en tiempo real.

    2.3. ZIGBEE

    El controlar el robot a distancia desde el ordenador hace necesario utilizar

    algn modo de comunicacin inalmbrica, tanto para la telemetra como el control

    del movimiento. Para ello se han empleado un par de mdulos Zigbee que

    proporcionan una comunicacin serie bidireccional entre el ordenador y el

    Ardupilot Mega.

    Zigbee se trata de un protocolo estandarizado para redes inalmbricas.

    Dicho estndar es abierto y fue desarrollado por ZigBee Alliance, que la componen

    un conjunto de empresas internacionales, muchas de ellas fabricantes de

    semiconductores.

    Este estndar fue desarrollado para cumplir ciertas especificaciones como

    son: bajo coste, bajo consumo, crear redes de manera flexible y fcil de usar.

    Adems, utiliza tres posibles bandas de frecuencia de uso pblico, entre ellas la de

    2.4GHz

    Ya que ZigBee se ha creado como un estndar abierto, las distintas

    empresas han creado sus productos interpretando la definicin de las normas. Esto

    hace que mdulos de distintos fabricantes no tengan por qu ser compatibles entre

    s.

    Muchas veces se suele comparar ZigBee a Bluetooth, aunque estos no han

    sido diseados para las mismas aplicaciones. Por un lado, ZigBee consigue unos

    consumos insignificantes que permiten que funcionen con bateras durante aos,

    con una tasa de transferencia de hasta 250 kbps. Por otro lado Bluetooth tiene un

    consumo mayor, teniendo una mayor diferencia del consumo en el reposo, donde

    bluetooth debe permanecer comunicndose, aunque la velocidad es mucho mayor

  • Captulo 2 - Descripcin del robot 23

    hasta 3 Mbps. Sobre todo, con ZigBee se consigue un consumo mnimo dejando el

    dispositivo en reposo durante grandes periodos de tiempo.

    El rango de transmisin con un dispositivo estndar suele ser de unos 200m

    en exterior y 30m en interior, aunque depende de la potencia de los mdulos

    utilizados y las antenas. Tambin se puede aumentar el rango de transmisin

    colocando nodos intermedios que unan los nodos lejanos, utilizando las topologas

    de red en malla o rbol.

    Una ventaja ms de ZigBee es la fiabilidad de la red. Emplea tcnicas que

    aseguran que los datos lleguen correctamente a su destino, y en caso de no llegar

    reenviar de nuevo los datos. Todo ello de manera transparente al usuario. Todos

    los datos se envan encriptados en 128 bits, con lo que tambin logramos

    seguridad ante intrusiones en nuestra red.

    Con ZigBee podemos crear una red de hasta nodos, distribuidos en

    subredes de 255 nodos. Sin embargo, con Bluetooth solo podemos contar con 8

    nodos. Estos nodos organizados en topologa de rbol o mallada se comunican

    entre s para hacer llegar los mensajes al nodo destinatario y son capaces de

    encontrar la ruta ptima entre los distintos nodos.

    Los mdulos utilizados en este proyecto son unos mdulos Xbee Pro de la

    compaa Digi con antena integrada tipo cable y potencia de transmisin de

    100mW. Se ha demostrado que la antena tipo cable tiene un rango de transmisin

    mucho mayor que la antena integrada en un chip, aunque para aplicaciones en

    interiores ambas antenas son equivalentes. La banda de frecuencia en la que

    operan es 2.4GHz que comprende desde los 2.4 hasta los 2.4835 GHz y se divide en

    16 canales espaciados 5 MHz uno de otro.

    Los Xbee funcionan con un mnimo de conexiones: alimentacin a 3.3V y

    entrada y salida serie (UART). En este caso se han acoplado los mdulos a un

    zcalo que convierte los niveles de 3.3V a los 5V con los que funciona el Ardupilot

    Mega. Para transmitir datos a un ordenador, el zcalo donde se inserta el Xbee

    incorpora un conversor de puerto serie a USB basado en un chip FTDI.

    2.3.a. Configuracin de los mdulos Xbee

    Antes de comenzar a usar los mdulos Xbee es necesario configurarlos para

    que los mdulos se encuentren emparejados y transmitan a la tasa de datos

    deseada. En este caso se van a utilizar dos mdulos. Para configurarlos existe una

    herramienta software de la misma compaa Digi llamada X-CTU, sta se comunica

    con los mdulos enviando comandos AT, que son instrucciones de configuracin.

    La conexin de los mdulos al ordenador se realiza a travs de un puerto USB

    conectado al zcalo que contiene un conversor USB-serie.

  • Captulo 2 - Descripcin del robot 24

    La configuracin bsica a modificar es el PANID y el Baudrate. El PANID es

    el nmero que identifica la red, que debe ser idntico en todos los mdulos que se

    quieran interconectar y el Baudrate es la velocidad del puerto serie que se crea

    hacia afuera de los Xbee, por defecto es 9600 bps pero para utilizarlo con el

    Ardupilot Mega se debe configurar a 57600 bps. Es posible utilizar velocidades

    diferentes en ambos mdulos pero no es recomendable pues se puede desbordar el

    buffer interno de los Xbee y perder bytes en la comunicacin.

    Figura 11. Programa X-CTU y configuracin del mdulo Xbee

    Adems de la configuracin bsica se han configurado otros parmetros de

    los mdulos como son el Node Identifier (NI) que es un nombre que se asigna a

    cada mdulo, el Packetization Timeout (RO) que define el nmero de bytes que se

    transmitir en un mismo paquete de datos, y el Destination Address (DH y DL) que

    indica la direccin del mdulo con el que se va a comunicar. Tambin se ha

    definido el mdulo conectado al PC como un nodo coordinador, aunque este

    parmetro no es necesario modificarlo para el funcionamiento.

    Para introducir esta configuracin en el programa primero se elige el puerto

    COM asociado al Xbee y seleccionar la velocidad a la que se han configurado (si es

    la primera vez ser 9600bps). Luego hay que ir a la pestaa Modem Configuration

    para introducir los parmetros definidos anteriormente. Pulsamos el botn Read

    para adquirir la configuracin actual del mdulo, luego modificamos los

    parmetros deseados y pulsamos el botn Write para cargarlos al Xbee. Desde esta

  • Captulo 2 - Descripcin del robot 25

    interfaz tambin se puede modificar la versin del firmware para cargar la ltima

    versin por ejemplo.