Vehículo Robótico con Raspberry Pi

Estamos desarrollando un vehículo robótico con la plataforma Raspberry Pi.

Los vehículos robóticos de exploración nos permiten la adquisición de datos en entornos de imposible o difícil acceso humano, bien por razones de lejanía, de coste o de peligrosidad o incluso la suma de ellos. Algunas de las aplicaciones que desempeñan, son apoyo de misiones de exploración planetarias, robots teleoperados para investigación de materiales peligrosos, derramamientos,  o similares. Sin embargo y dependiendo del fin para el que son construidos, estos robots, tendrán que tener un nivel más alto de autonomía tanto en movimiento y control del robot, como en la propia alimentación del mismo.

Para ello ejemplos de exploración espacial como los Rovers de Marte, o robots como Oberon o Dante II,

mars-rovers-engineers
Curiosity
dante_ii
Dante II
Oberon2
Oberon

Con este proyecto se ha creado un vehículo robótico de exploración de entornos terrestres, principalmente de interiores. Este robot es capaz de captar información sobre el ambiente gracias a distintos transductores de que dispone y enviarla a un ordenador  a través de wifi.

Los transductores que conforman el robot son un acelerómetro, un transductor de temperatura y humedad, dos encoders, uno en cada eje lateral y tres ultrasónicos, uno de ellos incorpora además un sensor de luminosidad.

Desde el ordenador además de las mediciones realizadas por los transductores, pueden visualizarse, simultáneamente las imágenes captadas por una cámara ubicada en la parte delantera del robot, siendo visualizados en una interfaz gráfica ejecutada en dicho ordenador.

Desde la misma interfaz, se manejan los actuadores (motores, servos y un buzzer de aviso) del robot. Este puede ser manejado en dos modos:

  • Funcionamiento manual: Desde el ordenador que recibe los datos y mediante una interfaz de flechas y botones, se podrán dirigir los distintos componentes del robot.
  • Funcionamiento automático: Será el propio robot el que de manera autónoma, y gracias a los datos recibidos de los transductores evite obstáculos, pueda, mediante algoritmos, generar una ruta de recorrido por el entorno, y maneje sus propios componentes.

Además el robot debe ser capaz de dibujar un plano, en dos dimensiones, de la superficie recorrida hasta el momento.

La placa principal que maneja todo el robot, es la Raspberry Pi 3 y los sistemas operativos que vamos a utilizar son dos:

  • Raspbian, sistema operativo oficial para dicha placa
  • Un sistema embebido creado para el propio robot y para esa Raspberry Pi en concreto, que será desarrollado utilizando la herramienta Buildroot.

En cuanto a los lenguajes de programación que se ha decidido emplear son Python y Java. Python para todo lo relacionado con los módulos de la Raspberry, los transductores, los actuadores, así como la cámara, una pantalla LCD y otros componentes del robot, mientras que Java se ha usado para desarrollar el cliente ejecutado en el ordenador mediante una interfaz gráfica generada con el programa Netbeans.

Todo los comandos intercambiados entre ordenador y Raspberry Pi, siguen un protocolo de comunicación definido específicamente por nosotros y quedarán registrados en un fichero almacenado en la Raspberry Pi que permita hacer un seguimiento del funcionamiento del mismo, para poder analizarlo en caso de fallo.

Por ahora el robot tiene el siguiente aspecto:

RobotRaispi

El esquema de los módulos que componen el robot, es el siguiente:

Esquema

 

El módulo de los sensores ultrasónicos mide distancias entre el robot y los objetos más próximos para que este pueda evitarlos, y conozca el entorno. En concreto se han utilizado 3, uno en cada lateral, y otro en la parte delantera del robot.

El acelerómetro se utiliza para calcular la pendiente del entorno.

También hay un módulo que capta la húmedad y la temperatura del ambiente.

Dos encoders que permiten calcular el sentido de giro de cada par de ruedas, así como la velocidad a la que lo hacen.

Una cámara para tomar fotos y grabar el entorno.

Una pantalla LCD para mostrar información del robot.

Y como actuadores, dos motores DC, dos servos, un buzzer y unos leds infrarrojos.

Iremos explicando cada uno de esos módulos en otras entradas.

La ventana principal de la interfaz que maneja el robot, y que se ha diseñado en Java, tiene el siguiente aspecto:

InterfazGrafica

Aquí tenéis  un video de las primeras pruebas hechas con el robot.

 

Anuncios

3 thoughts on “Vehículo Robótico con Raspberry Pi

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s