Carro Autônomo Donkey Car: IA TensorFlow MobileNetV2 para Coleta de Lixo
Construa um carro RC autônomo que detecta e coleta lixo usando TensorFlow SSD MobileNetV2 em um Raspberry Pi 3 e Pi Camera.
Visão Geral do Projeto
Este guia demonstra como transformar um carro RC padrão (Raspberry Pi + Pi Camera) em um coletor de lixo autônomo. A solução depende de duas redes neurais leves: uma para detecção de objetos em tempo real e outra para controle de direção e aceleração. Como a RAM e CPU limitadas do Pi 3 só podem rodar um modelo por vez, alternamos entre detecção e direção de forma fatiada no tempo.
A ideia central é treinar um modelo para reconhecer lixeiras e então dirigir o carro até elas, coletando resíduos autonomamente.


Identificando os componentes do carro e laptop
O projeto tem duas fases principais:
- Detecção de Objetos – Uma rede convolucional modesta processa o feed da Pi Camera usando TensorFlow e OpenCV.
- Clonagem Comportamental (Behavioral Cloning) – O carro aprende a navegar autonomamente imitando entradas humanas de direção e aceleração. Sensores adicionais (ultrassônico, GPS, IMU 6-DOF) enriquecem os dados de treinamento e telemetria.
Introdução
MobileNetV2, lançado em 2019, é projetado para dispositivos embarcados. A CPU do Raspberry Pi 3 roda confortavelmente o MobileNetV2 SSD, ao contrário de variantes YOLO mais pesadas que demandam RAM excessiva.
Tentar rodar VGG16 (≈350 MB de pesos) falhou no Pi, reforçando a necessidade de modelos mais enxutos. Transfer learning com MobileNetV2 SSD pré-treinado fornece alta precisão com pegada mínima.
Modificações de Hardware
O veículo base é um carro RC Magnet, que retrofitamos em um chassi DonkeyCar. Mudanças principais incluem:
- Desmontagem da tampa superior para acessar receptor, ESC e servo.
- Instalação de dois adaptadores impressos em 3D para substituir os clipes originais.
- Montagem do Raspberry Pi e controlador de servo dedicado em uma placa de madeira.
- Conexão do controlador de servo à direção do carro (canal 0) e aceleração (canal 1) via I²C.
- Adição de IMU MPU6050 6-DOF, módulo GPS e sensor ultrassônico HC-SR04 (requer level shifter 5 V).
O veículo finalizado agora inclui:
- Câmera Pi monocular grande angular
- Controlador de servo para direção
- IMU 6-DOF para dados de aceleração e giroscópio
- GPS para posicionamento externo
- Sensor de distância ultrassônico para evasão de obstáculos
Todos os dados dos sensores são carimbados com timestamp e registrados via framework tub para aumentar datasets de treinamento.
Configuração de Software
A stack de software é mínima mas poderosa: TensorFlow, OpenCV e alguns utilitários Python. Abaixo, guia de instalação passo a passo.
1. Instale TensorFlow, OpenCV e Dependências
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 requer seu próprio formato de modelo; usamos o repositório oficial de modelos do TensorFlow e definimos o PYTHONPATH conforme necessário:
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. Instale Compilador Protocol Buffers
ProtoBuf é necessário para carregar os pesos do 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. Integre IMU e GPS
Adicione o MPU6050 ao meta.json e scripts manage.py para capturar dados de aceleração e giroscópio:
{
"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"]
}
Instale as bibliotecas Python necessárias:
sudo apt-get install python3-smbus
pip install mpu6050-raspberrypi
pip install RPi.GPIO
4. Passos Finais
Após instalar todas as dependências, desative qualquer ambiente virtual e reinicie o Pi:
deactivate
sudo shutdown -h now
O carro agora está pronto para rodar o SSD MobileNetV2 para detecção de objetos e o modelo de clonagem comportamental para direção autônoma.
Conclusão
Combinando redes neurais leves com integração robusta de sensores, um Raspberry Pi 3 pode detectar e coletar lixeiras de forma confiável, pavimentando o caminho para soluções escaláveis e de baixo custo de coleta autônoma de resíduos.
Processo de manufatura
- Planejamento de Movimento em Tempo Real para Veículos Autônomos em Ambientes Urbanos: Estudo de Protótipo em Escala Reduzida
- Transformando Operações e Manutenção: Guia Prático para Planejamento Eficaz
- Preparando para Futuro Autônomo: Como Donos de Frotas Podem Sair na Frente
- Como 5G Está Transformando Carros Conectados: Velocidade, Segurança e Recursos Inteligentes
- Segurança em Primeiro Lugar: Como Europeus Veem os Carros Conectados do Futuro
- 7 Dicas Essenciais para Operações Seguras de Coletores de Pó: Protegendo Trabalhadores e Meio Ambiente
- Sistema Avançado de Rastreamento de Movimento 3D: Sensor de Próxima Geração para Tecnologia Autônoma
- Sistema Autônomo de Recarga de Enxame de Drones: Estendendo Tempo de Missão com VANTs Terrestres
- Daimler e BMW Anunciam Aliança Estratégica para Avançar Tecnologias de Direção Autônoma
- Continental Apresenta Soluções de Ponta para Direção Autônoma no Futuro da Mobilidade