Anda di halaman 1dari 11

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

15

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

16

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

17

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

18

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

19

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

20

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

21

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

22

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

23

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

24

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

Captulo 2 - Descripcin del robot

25

Anda mungkin juga menyukai