• No se han encontrado resultados

Capítulo 2. Descripción del robot

N/A
N/A
Protected

Academic year: 2021

Share "Capítulo 2. Descripción del robot"

Copied!
11
0
0

Texto completo

(1)

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.

(2)

Figura 6. Modelo en 3D de la base de locomoción utilizada

Esta base posee un motor para cada rueda y un chasis de aluminio de dimensiones 280x297x126 mm. Esta configuración está preparada para maniobrar sobre terrenos no preparados.

Esta base incluye la electrónica 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.

(3)

Figura 7. Placa de electrónica de control a bajo nivel de motores

La programación 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 estándar.

2.2. ARDUPILOT MEGA

Ardupilot Mega es un autopiloto diseñado 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 código abierto deja la puerta abierta a modificaciones del código y utilizarlo para cualquier otra función, 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 están desarrollando el software para utilizarlo con robots terrestres llamado ArduRover, aunque todavía se halla en una fase inicial de su desarrollo.

(4)

Figura 8. Placa Ardupilot Mega e indicación de conexiones

2.2.a. Descripción del Ardupilot Mega

Este controlador se encuentra dividido en dos placas electrónicas: la placa de microcontrolador y la de sensores o IMU. Los sensores que incluye esta placa son los siguientes:

 Acelerómetro de 3 ejes

 Giroscopio de 3 ejes

 Magnetómetro de 3 ejes

 Sensor de presión absoluta

 GPS: módulo Mediatek MT3329 con firmware 1.6. Puede proporcionar la posición a una frecuencia máxima de 5Hz a través de un puerto con niveles TTL a 3.3V.

Según la hoja de especificaciones del fabricante, tiene una precisión en las medidas de 3 metros de valor cuadrático medio en el plano horizontal y 0.1 m/s de error en velocidad.

(5)

Figura 9. Módulo GPS Mediatek con antena integrada

Otras características 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 conmutación.

 USB 2.0

 Monitorización de baterías

El microcontrolador usado es compatible con el entorno de programación Arduino. En este entorno se puede modificar el código proporcionado por el desarrollador libremente. En este caso se ha realizado la transformación a un controlador de robot móvil, ya que dispone de los sensores suficientes para controlarlo. La parte del código original encargada de la IMU se mantendrá para realizar los cálculos para obtener los ángulos de inclinación del robot tomando la notación de las aeronaves: guiñada (yaw), cabeceo (pitch) y alabeo (roll), también 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 través de USB. Esta comunicación, como se explica anteriormente permite programar la placa y realizar una comunicación 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 acelerómetro, tres del giroscopio y tres del magnetómetro), es decir nueve medidas de los sensores que hay que convertir en los tres grados de libertad de rotación de un cuerpo en el espacio. Para estimar estos tres ángulos de orientación es necesario programar un filtro que unifique toda la información para corregir los errores de los sensores.

(6)

Se disponen sensores inerciales (acelerómetros y giroscopio) que dan información precisa a corto plazo, pero tienden a ser poco fiables con el tiempo, y dos dispositivos que dan información absoluta a lo largo del tiempo que son el GPS y el magnetómetro. Combinando los sensores se obtiene una información mucho más fiable y precisa de la actitud de la que tendrían cada uno por separado.

Los giroscopios dan información de la velocidad de giro en cada eje, por lo que se podría estimar la rotación del robot con solo integrar la velocidad de giro.

Sin embargo, esta información no es suficiente, pues a lo largo del tiempo se acumulan errores numéricos.

Con un acelerómetro de tres ejes se puede determinar la orientación del robot fijo respecto a la superficie terrestre. En cambio, si el robot se mueve con cierta aceleración se medirá la combinación de la aceleración con la gravedad y ambas serán indistinguibles. Por tanto, un acelerómetro por sí solo no puede utilizarse para obtener la orientación 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 práctica pero es computacionalmente costoso, por eso el Ardupilot Mega utiliza otro método para identificar la orientación 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 estimación de la orientación

Si se quisiera transformar un vector de un sistema de referencia a otro se puede hacer utilizando una matriz de rotación o también llamada matriz de cosenos directores. Esta matriz describe la orientación de un sistema de coordenadas con respecto al otro. La transformación contraria se realizaría con la inversa de la matriz de rotación, que resulta ser idéntica a la matriz transpuesta al

(7)

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 según vaya cambiando la orientación del robot.

[

]

La integración numérica se realiza aplicando sucesivas multiplicaciones cada pocos milisegundos con las nuevas medidas de los giroscopios .

Al transcurrir el tiempo se van acumulando errores numéricos que hacen que la matriz de rotación pierda la propiedad de ortogonalidad. Esta propiedad indica que si dos vectores son perpendiculares en un sistema de referencia seguirán siéndolo después 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 rápidamente puede ser importante después 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 pequeños ajustes para renormalizar la matriz y reescalar las filas de la matriz para que sean vectores de magnitud 1.

Después hay que tomar medidas para los errores que añaden un offset a las medidas de los giroscopios. Para corregir los offsets se compensa con una medida de orientación absoluta que no tenga offsets como son el GPS y acelerómetros o magnetómetros. Aunque estos sensores no tienen una respuesta tan rápida como puede hacerlo el giroscopio.

Utilizar el GPS para corregir los offsets es válido únicamente para usarlo en un avión, ya que siempre se está desplazando, y a partir del desplazamiento se puede obtener la dirección en la que se mueve el avión que es una medida absoluta del ángulo de guiñada (yaw), asumiendo que el avión se mueve en la dirección hacia la que está apuntando, lo cual no es cierto con vientos cruzados. Los acelerómetros se utilizan para proporcionar información sobre el eje Z. Para un

(8)

robot terrestre o un UAV de despegue vertical no podría ser válido el GPS debido a que puede permanecer estático, por lo que se recurre a un magnetómetro 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 término 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 número de bits respecto a los 8 bits con los que trabaja el procesador es para evitar un aumento de los errores numéricos al realizar operaciones. Por otra parte, trabajar con 32 bits en un procesador de 8 bits hace más lentas las operaciones. En este caso se está utilizando un microcontrolador lo suficientemente potente como para realizar los cálculos en tiempo real.

2.3. ZIGBEE

El controlar el robot a distancia desde el ordenador hace necesario utilizar algún modo de comunicación inalámbrica, tanto para la telemetría como el control del movimiento. Para ello se han empleado un par de módulos Zigbee que proporcionan una comunicación serie bidireccional entre el ordenador y el Ardupilot Mega.

Zigbee se trata de un protocolo estandarizado para redes inalámbricas.

Dicho estándar es abierto y fue desarrollado por ZigBee Alliance, que la componen un conjunto de empresas internacionales, muchas de ellas fabricantes de semiconductores.

Este estándar fue desarrollado para cumplir ciertas especificaciones como son: bajo coste, bajo consumo, crear redes de manera flexible y fácil de usar.

Además, utiliza tres posibles bandas de frecuencia de uso público, entre ellas la de 2.4GHz

Ya que ZigBee se ha creado como un estándar abierto, las distintas empresas han creado sus productos interpretando la definición de las normas. Esto hace que módulos de distintos fabricantes no tengan por qué ser compatibles entre sí.

Muchas veces se suele comparar ZigBee a Bluetooth, aunque estos no han sido diseñados para las mismas aplicaciones. Por un lado, ZigBee consigue unos consumos insignificantes que permiten que funcionen con baterías durante años, 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

(9)

hasta 3 Mbps. Sobre todo, con ZigBee se consigue un consumo mínimo dejando el dispositivo en reposo durante grandes periodos de tiempo.

El rango de transmisión con un dispositivo estándar suele ser de unos 200m en exterior y 30m en interior, aunque depende de la potencia de los módulos utilizados y las antenas. También se puede aumentar el rango de transmisión colocando nodos intermedios que unan los nodos lejanos, utilizando las topologías de red en malla o árbol.

Una ventaja más de ZigBee es la fiabilidad de la red. Emplea técnicas 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 envían encriptados en 128 bits, con lo que también 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 topología 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 módulos utilizados en este proyecto son unos módulos Xbee Pro de la compañía Digi con antena integrada tipo “cable” y potencia de transmisión de 100mW. Se ha demostrado que la antena tipo cable tiene un rango de transmisión 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 mínimo de conexiones: alimentación a 3.3V y entrada y salida serie (UART). En este caso se han acoplado los módulos a un zócalo que convierte los niveles de 3.3V a los 5V con los que funciona el Ardupilot Mega. Para transmitir datos a un ordenador, el zócalo donde se inserta el Xbee incorpora un conversor de puerto serie a USB basado en un chip FTDI.

2.3.a. Configuración de los módulos Xbee

Antes de comenzar a usar los módulos Xbee es necesario configurarlos para que los módulos se encuentren emparejados y transmitan a la tasa de datos deseada. En este caso se van a utilizar dos módulos. Para configurarlos existe una herramienta software de la misma compañía Digi llamada X-CTU, ésta se comunica con los módulos enviando comandos AT, que son instrucciones de configuración.

La conexión de los módulos al ordenador se realiza a través de un puerto USB conectado al zócalo que contiene un conversor USB-serie.

(10)

La configuración básica a modificar es el PANID y el Baudrate. El PANID es el número que identifica la red, que debe ser idéntico en todos los módulos 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 módulos pero no es recomendable pues se puede desbordar el buffer interno de los Xbee y perder bytes en la comunicación.

Figura 11. Programa X-CTU y configuración del módulo Xbee

Además de la configuración básica se han configurado otros parámetros de los módulos como son el Node Identifier (NI) que es un nombre que se asigna a cada módulo, el Packetization Timeout (RO) que define el número de bytes que se transmitirá en un mismo paquete de datos, y el Destination Address (DH y DL) que indica la dirección del módulo con el que se va a comunicar. También se ha definido el módulo conectado al PC como un nodo coordinador, aunque este parámetro no es necesario modificarlo para el funcionamiento.

Para introducir esta configuración 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 pestaña Modem Configuration para introducir los parámetros definidos anteriormente. Pulsamos el botón Read para adquirir la configuración actual del módulo, luego modificamos los parámetros deseados y pulsamos el botón Write para cargarlos al Xbee. Desde esta

(11)

interfaz también se puede modificar la versión del firmware para cargar la última versión por ejemplo.

Referencias

Documento similar

95 Los derechos de la personalidad siempre han estado en la mesa de debate, por la naturaleza de éstos. A este respecto se dice que “el hecho de ser catalogados como bienes de

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

El nuevo Decreto reforzaba el poder militar al asumir el Comandante General del Reino Tserclaes de Tilly todos los poderes –militar, político, económico y gubernativo–; ampliaba

Esto viene a corroborar el hecho de que perviva aún hoy en el leonés occidental este diptongo, apesardel gran empuje sufrido porparte de /ue/ que empezó a desplazar a /uo/ a

De este modo se constituye un espacio ontológico y epistemológico a la vez, en el que cada elemento (cada principio) ocupa un lugar determinado en la totalidad, y desde ahí está

Las solicitudes de reconocimiento presentadas, en las que se aleguen créditos obtenidos en títulos universitarios oficiales de Máster Universitario o Doctor (Períodos de

El contar con el financiamiento institucional a través de las cátedras ha significado para los grupos de profesores, el poder centrarse en estudios sobre áreas de interés

The LOMCE specifies that the education system must promote “Values that are pillars of democracy and human rights, including, in any case, the prevention of gender violence