Autonomes Donkey Car: TensorFlow MobileNetV2 KI für Müllsammler
Bauen Sie ein selbstfahrendes RC-Auto, das Müll erkennt und einsammelt – mit TensorFlows SSD MobileNetV2 auf Raspberry Pi 3 und Pi Camera.
Projektüberblick
Diese Anleitung zeigt, wie man ein Standard-RC-Auto (Raspberry Pi + Pi Camera) in einen autonomen Müllsammler verwandelt. Die Lösung nutzt zwei leichte neuronale Netze: eines für Echtzeit-Objekterkennung, eines für Lenkung und Gassteuerung. Da der Pi 3 mit begrenztem RAM und CPU nur ein Modell gleichzeitig ausführen kann, wechseln wir im Zeitmultiplex zwischen Erkennung und Fahren.
Die Kernidee: Ein Modell trainieren, um Mülltonnen zu erkennen, und das Auto darauf zufahren zu lassen, um Abfall autonom aufzusammeln.
Galerie-Platzhalter für Fahrzeugbilder
Auto- und Laptop-Komponenten identifiziert
Das Projekt hat zwei Hauptphasen:
- Objekterkennung – Ein modestes Convolutional Network verarbeitet den Pi Camera Feed mit TensorFlow und OpenCV.
- Behavioral Cloning – Das Auto lernt autonomes Navigieren durch Nachahmung menschlicher Lenk- und Gasbefehle. Zusätzliche Sensoren (Ultraschall, GPS, 6-DOF IMU) bereichern Trainingsdaten und Telemetrie.
Einführung
MobileNetV2 (2019) ist für eingebettete Geräte konzipiert. Die CPU des Raspberry Pi 3 kann MobileNetV2 SSD bequem ausführen, im Gegensatz zu schweren YOLO-Varianten, die exzessiven RAM fordern.
Der Versuch, VGG16 (≈350 MB Gewichte) zu starten, scheiterte am Pi – ein Beleg für die Notwendigkeit schlanker Modelle. Transfer Learning mit vortrainiertem MobileNetV2 SSD liefert hohe Genauigkeit bei minimalem Footprint.
Hardware-Modifikationen
Basis-Fahrzeug ist ein Magnet RC-Auto, das wir in ein DonkeyCar-Chassis umbauen. Wichtige Änderungen:
- Obere Abdeckung demontieren für Zugriff auf Empfänger, ESC und Servo.
- Zwei 3D-gedruckte Adapter ersetzen die Original-Clips.
- Raspberry Pi und dedizierter Servo-Controller auf Holzplatte montieren.
- Servo-Controller an Lenkung (Kanal 0) und Gas (Kanal 1) via I²C anschließen.
- 6-DOF MPU6050 IMU, GPS-Modul und HC-SR04 Ultraschallsensor hinzufügen (benötigt 5 V Level-Shifter).
Das fertige Fahrzeug umfasst nun:
- Monokulares Weitwinkel-Pi-Camera
- Servo-Controller für Lenkung
- 6-DOF IMU für Beschleunigungs- und Gyroskopdaten
- GPS für Outdoor-Positionierung
- Ultraschall-Distanzsensor für Hindernisvermeidung
Alle Sensordaten werden zeitgestempelt und via tub-Framework geloggt, um Trainingsdatasets anzureichern.
Software-Setup
Der Software-Stack ist minimal, aber leistungsfähig: TensorFlow, OpenCV und einige Python-Utilities. Hier eine Schritt-für-Schritt-Installationsanleitung.
1. TensorFlow, OpenCV und Abhängigkeiten installieren
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 benötigt eigenes Modellformat; wir nutzen daher das offizielle TensorFlow Models Repository und setzen PYTHONPATH entsprechend:
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. Protocol Buffers Compiler installieren
ProtoBuf wird benötigt, um MobileNetV2 SSD Gewichte zu laden.
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. IMU und GPS integrieren
MPU6050 zu meta.json und manage.py Skripten hinzufügen, um Beschleunigungs- und Gyroskopdaten zu erfassen:
{
"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"]
}
Benötigte Python-Bibliotheken installieren:
sudo apt-get install python3-smbus
pip install mpu6050-raspberrypi
pip install RPi.GPIO
4. Finale Schritte
Nach Installation aller Abhängigkeiten Virtual Environment deaktivieren und Pi neu starten:
deactivate
sudo shutdown -h now
Das Auto ist nun bereit, SSD MobileNetV2 für Objekterkennung und Behavioral Cloning Modell für autonomes Fahren auszuführen.
Fazit
Durch Kombination leichter neuronaler Netze mit robuster Sensorintegration kann ein Raspberry Pi 3 zuverlässig Mülltonnen erkennen und einsammeln – ein Wegbereiter für skalierbare, kostengünstige autonome Abfallsammellösungen.
Herstellungsprozess
- Echtzeit-Bewegungsplanung für autonome Fahrzeuge in urbanen Umgebungen: Skalierter Prototyp
- Transformation von Betrieb & Instandhaltung: Praktischer Leitfaden für effektive Planung
- Vorbereitung auf eine autonome Zukunft: Wie Flottenbetreiber vorausfahren können
- Wie 5G Connected Cars transformiert: Speed, Safety, Smart Features
- Sicherheit zuerst: Wie Europäer vernetzte Autos der Zukunft sehen
- 7 essenzielle Tipps für sicheren Staubsammlerbetrieb: Schutz von Arbeitern & Umwelt
- Fortschrittliches 3D-Bewegungstracking-System: Next-Gen-Sensor für autonome Technologien
- Autonomes Drohnenschwarm-Ladesystem: Missionszeitverlängerung mit UGVs
- Daimler und BMW kündigen strategische Allianz für autonomes Fahren an
- Continental präsentiert zukunftsweisende Lösungen für autonomes Fahren und nachhaltige Mobilität