Coche Autónomo Donkey Car: TensorFlow MobileNetV2 IA para Recogida de Basura
Construye un coche RC autónomo que detecta y recoge basura usando TensorFlow SSD MobileNetV2 en una Raspberry Pi 3 y Pi Camera.
Resumen del Proyecto
Esta guía demuestra cómo transformar un coche RC estándar (Raspberry Pi + Pi Camera) en un recolector de basura autónomo. La solución se apoya en dos redes neuronales ligeras: una para detección de objetos en tiempo real y otra para control de dirección y aceleración. Dado que la RAM y CPU limitadas de la Pi 3 solo pueden ejecutar un modelo a la vez, alternamos entre detección y conducción de forma temporal.
La idea central es entrenar un modelo para reconocer contenedores de basura y luego conducir el coche hacia ellos, recogiendo residuos de forma autónoma.
Identificando componentes del coche y portátil
El proyecto tiene dos fases principales:
- Detección de Objetos – Una red convolucional modesta procesa el feed de la Pi Camera usando TensorFlow y OpenCV.
- Clonación Conductual – El coche aprende a navegar autónomamente imitando entradas humanas de dirección y aceleración. Sensores adicionales (ultrasónico, GPS, IMU 6-DOF) enriquecen los datos de entrenamiento y telemetría.
Introducción
MobileNetV2, lanzado en 2019, está diseñado para dispositivos embebidos. La CPU de la Raspberry Pi 3 puede ejecutar cómodamente MobileNetV2 SSD, a diferencia de variantes YOLO más pesadas que demandan RAM excesiva.
Intentar ejecutar VGG16 (≈350 MB pesos) falló en la Pi, subrayando la necesidad de modelos más ligeros. Transfer learning con MobileNetV2 SSD pre-entrenado proporciona alta precisión con huella mínima.
Modificaciones de Hardware
El vehículo base es un coche RC Magnet, que adaptamos a chasis DonkeyCar. Cambios clave:
- Desmontaje de la cubierta superior para acceder al receptor, ESC y servo.
- Instalación de dos adaptadores impresos en 3D para reemplazar los clips originales.
- Montaje de la Raspberry Pi y un controlador de servo dedicado en una placa de madera.
- Conexión del controlador de servo a dirección del coche (canal 0) y aceleración (canal 1) vía I²C.
- Añadir IMU 6-DOF MPU6050, módulo GPS y sensor ultrasónico HC‑SR04 (requiere level shifter 5 V).
El vehículo final incluye:
- Cámara Pi monocular gran angular
- Controlador de servo para dirección
- IMU 6-DOF para datos de aceleración y giroscopio
- GPS para posicionamiento exterior
- Sensor de distancia ultrasónico para evitación de obstáculos
Todos los datos de sensores se marcan con timestamp y registran vía framework tub para aumentar datasets de entrenamiento.
Configuración de Software
La pila de software es mínima pero potente: TensorFlow, OpenCV y unas utilidades Python. Guía de instalación paso a paso:
1. Instalar TensorFlow, OpenCV y Dependencias
pip install tensorflow[pi]
pip install matplotlib raspberry
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install qt4-dev-tools
pip3 install opencv-python
TensorFlow requiere su propio formato de modelo; usamos el repositorio oficial TensorFlow models y establecemos PYTHONPATH accordingly:
git clone --recurse-submodules https://github.com/tensorflow/models.git
export PYTHONPATH=$PYTHONPATH:/home/pi/tensorflow1/models/research:/home/pi/tensorflow1/models/research/slim
2. Instalar Compilador Protocol Buffers
ProtoBuf es necesario para cargar pesos MobileNetV2 SSD.
sudo apt-get install autoconf automake libtool curl
wget https://github.com/google/protobuf/releases/download/v3.5.1/protobuf-all-3.5.1.tar.gz
tar -zxvf protobuf-all-3.5.1.tar.gz
cd protobuf-3.5.1
./configure
make
make check
sudo make install
cd python_export
python3 setup.py build --cpp_implementation
python3 setup.py test --cpp_implementations
sudo python3 setup.py install --cpp_implementation
export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp
export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION=3
sudo ldconfig
protoc --version
3. Integrar IMU y GPS
Añade el MPU6050 a meta.json y scripts manage.py para capturar datos de aceleración y giroscopio:
{
"inputs": ["cam/image_array", "user/angle", "user/throttle", "user/mode",
"imu/acl_x", "imu/acl_y", "imu/acl_z", "imu/gyr_x", "imu/gyr_y", "imu/gyr_z"],
"types": ["image_array", "float", "float", "str", "float", "float", "float", "float", "float", "float"]
}
Instala librerías Python requeridas:
sudo apt-get install python3-smbus
pip install mpu6050-raspberrypi
pip install RPi.GPIO
4. Pasos Finales
Tras instalar todas las dependencias, desactiva cualquier entorno virtual y reinicia la Pi:
deactivate
sudo shutdown -h now
El coche ya está listo para ejecutar SSD MobileNetV2 para detección de objetos y el modelo de clonación conductual para conducción autónoma.
Conclusión
Combinando redes neuronales ligeras con integración robusta de sensores, una Raspberry Pi 3 puede detectar y recoger contenedores de basura de forma fiable, allanando el camino para soluciones escalables y de bajo coste de recogida autónoma de residuos.
Proceso de manufactura
- Transformando Operaciones y Mantenimiento: Guía Práctica para Planificación Efectiva
- Planificación de Movimiento en Tiempo Real para Vehículos Autónomos en Entornos Urbanos: Estudio de Prototipo a Escala
- Sistemas Colectores de Niebla de Aceite: Protegiendo Entornos de Trabajo de Aerosoles Nocivos
- Daimler y BMW anuncian alianza estratégica para avanzar en tecnologías de conducción autónoma
- Continental presenta soluciones de conducción autónoma de vanguardia para el futuro de la movilidad
- 7 Consejos Esenciales para Operaciones Seguras con Colectores de Polvo: Protegiendo Trabajadores y Medio Ambiente
- Sistema avanzado de seguimiento de movimiento 3D: Sensor de próxima generación para tecnología autónoma
- Sistema de carga autónomo para enjambres de drones: Extendiendo tiempo de misión con Vehículos Terrestres No Tripulados
- Preparándose para un Futuro Autónomo: Cómo los Propietarios de Flotas Pueden Adelantarse
- Cómo el 5G Transforma los Coches Conectados: Velocidad, Seguridad y Funciones Inteligentes
- Seguridad ante todo: Cómo los europeos ven los coches conectados del futuro