lunes, 1 de junio de 2015

Holodeck

Necesito una sala de entrenamiento para probar estrategias con Ambrosio. Algo así como la Sala de Hologramas de Star Trek, el Holodeck.


Acabo de encontrar un sencillísimo simulador robótico que me va a ir de perlas para planear algoritmos de movimiento para Ambrosio. Se trata de RobotBASIC.

Fácilmente introduzco el área del jardín y empiezo a jugar con un Ambrosio virtual para simular formas de moverse y de reaccionar ante los obstáculos.
Este el el jardín desde arriba...

Este es el simulador RobotBASIC con una estrategia de movimiento describiendo ochos...

lunes, 11 de mayo de 2015

Welcome to reality

Las pruebas de campo con Ambrosio me han devuelto a la cruda realidad. Las dificultades en maniobrar, las irregularidades del terreno y la particular distribución del jardín hacen que el comportamiento en movimiento del robot no sea el esperado.

He probado dos estrategias de control automático: el movimiento caótico (eligiendo aleatoriamente entre seguir recto, girar a derecha o girar a izquierda) y el movimiento en espiral (describiendo círculos en forma parecida a las pulidoras de hielo en pistas de patinaje)

Las conclusiones son las siguientes:

  • Movimiento caótico: esta estrategia es muy ineficiente. El robot llega rápidamente a los límites del terreno y se queda mucho tiempo cortando la misma zona de forma que tarda mucho en salir de las esquinas. Requeriría muchísimo tiempo garantizar que pasa y repasa la zona central (que es la que más me interesa) y no tengo autonomía suficiente (sólo dispongo de unos 50 minutos de batería)
  • Movimiento en espiral: esta estrategia corta mejor la zona central pero no gestiona bien la forma como encara los obstáculos. Los círculos reales que describe Ambrosio son imperfectos, siempre distintos y, debido al movimiento circular, llega a los obstáculos en ángulos muy diversos por lo que la estrategia de 'rebote' a veces le deja encallado.
Aquí os dejo un video de Ambrosio trabajando...(video a velocidad x3):

domingo, 1 de febrero de 2015

Bienvenidos al norte


El mapa de medidas obtenidas con el magnetómetro al girar 360 grados el robot tiene una distribución descentrada. Está claro que los componentes del robot provocan distorsiones en las medidas.

Tenemos que calibrar el sensor corrigiendo las medidas mediante el siguiente cálculo:

    X = Xmedida * Xf + Xoff
    Y = Ymedida * Yf + Yoff

siendo
  Xf = 1  ó
  Xf = (Ymax - Ymin) / (Xmax - Xmin)  si el resultado es  >1
  Yf = 1  ó
  Yf = (Xmax - Xmin) / (Ymax - Ymin)  si el resultado es  >1

  Xoff = ((Xmax - Xmin)/2 - Xmax) * Xf
  Yoff = ((Ymax - Ymin)/2 - Ymax) * Yf
 

Ahora sí. Una vez compensadas las medidas, el cálculo del ángulo con respecto al norte magnético ya es más fiable y coincide razonablemente con lo que nos indica una brújula tradicional. ¡Bienvenidos al norte!
   

viernes, 30 de enero de 2015

He perdido el norte

Aprovechando el parón invernal, que no me permite continuar con las pruebas de campo, he aprovechado para explorar las posibilidades de los sensores de navegación.
Es increíble. Por menos de 10 € existen en el mercado módulos que incorporan distintos tipos de sensores junto con la electrónica necesaria para su control y comunicación.

Me compro uno con 9 grados de libertad (acelerómetro, giróscopo y magnetómetro) que admite alimentación a 5 V y puede comunicarse por protocolo I2C al igual que mis sensores de ultrasonidos. Se trata de un MPU-9250

Una vez lo tengo acoplado a mi robot, lo primero que intento hacer es probar el magnetómetro que incorpora (un AK8975) para usarlo como brújula. La teoría es muy simple, con las medidas obtenidas en los ejes X e Y podemos calcular fácilmente el ángulo respecto al Norte magnético terrestre:

Pero la realidad es siempre más complicada. Las medidas que obtengo son muy extrañas y encima descubro que donde tengo mi 'laboratorio' hasta una brújula tradicional hace 'cosas raras'.