¿Funciona la Raspberry Pi como cerebro robótico?

Alejandro Perez Malagon
R. Olivaw
Published in
4 min readDec 4, 2017

Voy a empezar con un spoiler: Pues DEPENDE. Claro que sí, depende de lo que te estes proponiendo lograr con tu robot.

Si has estado viviendo en una cueva todos estos años y no has oído hablar de la Raspberry Pi no te preocupes que te lo explico. La Pi es una computadora en una sola placa. Se llama así porque no está diseñada como una motherboard a la que se le cambian componentes, como es el caso de tu PC de escritorio.

La Raspberry es muy similar a las placas bases que poseen los teléfonos inteligentes. Tiene un procesador de la misma familia y muchos de los mismos periféricos (USB, audio, micrófono, conector de tarjeta SD). Las variantes más modernas incluso traen Bluetooth y WiFi. A un precio de 35 dólares es extremadamente barata para su potencia.

Foto de la RPi - www.raspberrypi-spy.co.uk

Hay cientos de ejemplos en la web de proyectos de hardware libre construidos usando la Raspberry Pi como placa controladora. Unos cuantos de estos son robots. Antes fue el Arduino, una placa base de similares dimensiones, pero con un procesador mucho menos potente.

En una comparación muy superficial se podría decir que la Raspberry Pi es 75 veces más rápida que Arduino. Si profundizamos en el tema descubriremos que es incluso mucho más veloz aún que esto. Además posee mucha más memoria RAM (1 GB comparado con los 2 MB del Arduino). Lo cual es muy positivo, la mayoría de los robots autónomos requieren de mucha capacidad de procesamiento.

El último modelo de la RPi, la Raspberry Pi 3 B, tiene las siguientes prestaciones:

  • Procesador Quad Core 1.2GHz Broadcom BCM2837 64bit CPU
  • 1GB RAM
  • WiFi y Bluetooth Low Energy (BLE)
  • Conector de entrada salida de propósito general de 40 pines
  • 4 USB 2.0
  • Salida stereo y de video compuesto
  • HDMI
  • Interfaz CSI de cámara
  • Interfaz DSI para display tácticl
  • Puerto Micro SD

Sus interfaces la hacen interesante para controlar plataformas robóticas. El hecho de poseer una interfaz de cámara CSI le permite incluso utilizar técnicas de procesamiento digital de imágenes. Su gran cantidad de puertos USB se presta para conectar periféricos como micrófonos, placas controladoras de motores o arreglos de sensores como el Kinect de Microsoft.

El Arduino no desaparece, sino que ha sido relegado a tareas subordinadas en los sistemas robóticos, como el control de motores o el procesamiento de los sensores más sencillos. Es, básicamente, el subordinado ideal de la RPi.

Rasperry Pi y el Kinect — tomado de 3dprint.com

Un robot necesita sensores para poder comprender e interactuar con el medio en el que se esta desplegando. Las cámaras y los sensores de rango son muy populares para estas funciones. La cámara de la RPi es bastante decente para aplicaciones de procesamiento digital de imágenes.

Uno de los problemas más serios de la RPi es a la hora de procesar estas imágenes que recibe desde la cámara. Su microprocesador de cuatro núcleos y 64 bits es relativamente potente, pero no lo suficiente para la muchas de las aplicaciones de procesamiento de imagen necesarias en la robótica, como el SLAM visual.

SLAM usando Google Cartographer — https://geoawesomeness.com

También es posible utilizar la GPU de este chip para mejorar la capacidad de procesamiento de video (link en inglés). Desafortunadamente la documentación disponible para hacerlo es escasa. Las herramientas de programación que pueden utilizar también dejan mucho que desear.

Es importante notar que una de las bibliotecas más completas que existen para realizar SLAM de calidad comercial (Google Cartographer) requiere de 16GB de memoria RAM. Como ya habíamos mencionado, la RPi solo posee 1GB. Para cosas tan serias todavía tenemos que contar con Intel y con placas bases más complejas, a nivel de notebook, como las que usa TurtleBot.

Para otras aplicaciones, como el procesamiento de voz o de lenguaje natural la Raspberry Pi es bastante potente. De todas maneras la costumbre actual es realizar el procesamiento de voz en la nube, con servicios como la API de Google o Sphinx.

Como resumen, la Raspberry es una placa controladora muy decente para robots con bajo y medio grado de autonomía. Si los requerimientos de autonomía son elevados entonces su capacidad de computo y de memoria no es suficiente para respaldar las necesidades. Aun así su precio reducido hace que perfectamente pueda mantenerse como parte de un sistema robótico, colaborando con otras placas base más poderosas.

--

--

Alejandro Perez Malagon
R. Olivaw

Robotista por vocación, code monkey por necesidad. Ya que conozco el teclado de mi thinkpad no me cuesta nada poner en texto plano las ideas que se me ocurren.