Autonome Donkey Car: TensorFlow MobileNetV2 AI voor Afvalopruiming
Bouw een zelfrijdende RC-auto die afval detecteert en ophaalt met TensorFlow's SSD MobileNetV2 op een Raspberry Pi 3 en Pi Camera.
Projectoverzicht
Deze gids demonstreert hoe je een standaard RC-auto (Raspberry Pi + Pi Camera) kunt transformeren in een autonoom vuilnisverzamelaar. De oplossing steunt op twee lichtgewicht neurale netwerken: één voor real-time objectdetectie en een ander voor stuur- en gasbesturing. Omdat de Pi 3's beperkte RAM en CPU maar één model tegelijk kan draaien, wisselen we af tussen detectie en rijden in een time-sliced manier.
Het kernidee is om een model te trainen om vuilnisbakken te herkennen en de auto ernaartoe te laten rijden, om afval autonoom op te ruimen.
Inleiding
MobileNetV2, uitgebracht in 2019, is ontworpen voor embedded-apparaten. De Raspberry Pi 3's CPU kan comfortabel MobileNetV2 SSD draaien, in tegenstelling tot zwaardere YOLO-varianten die excessieve RAM eisen.
Het poging om VGG16 (≈350 MB gewichten) te draaien, mislukte op de Pi, wat de noodzaak voor slankere modellen benadrukt. Transfer learning met een pre-getrainde MobileNetV2 SSD biedt hoge nauwkeurigheid met een minimaal voetafdruk.
Hardware-aanpassingen
Het basisvoertuig is een Magnet RC-auto, die we ombouwen tot een DonkyCar-chassis. Belangrijke wijzigingen zijn:
- Demontage van de top-cover om toegang te krijgen tot de ontvanger, ESC, en servo.
- Installatie van twee 3D-geprinte adapters om de originele clips te vervangen.
- Montage van de Raspberry Pi en een toegewejde servo-controller op een houten plaat.
- Verbinding van de servo-controller met de auto's stuur (kanaal 0) en gas (kanaal 1) via I²C.
- Toevoegen van een 6-DOF MPU6050 IMU, een GPS-module, en een HC-SR04 ultrasoonsensor (vereist een 5 V level-shifter).
Het afgeronde voertuig bevat nu:
- Monoculair wide-angle Pi Camera
- Servo-controller voor stuur
- 6-DOF IMU voor versnelling en gyroscopische data
- GPS voor outdoor-positionering
- Ultrasoon-afstandssensor voor obstakelvermijding
Alle sensordata worden getimestamped en gelogd via het tub framework om trainingsdatasets te verrijken.
Software-instelling
De software-stack is minimaal maar krachtig: TensorFlow, OpenCV, en een paar Python-utilities. Hieronder een stap-voor-stap installatiegids.
1. TensorFlow, OpenCV, en Afhankelijkheden Installeren
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 vereist zijn eigen modelformaat; we gebruiken daarom de officiële TensorFlow models repository en stellen de PYTHONPATH dienovereenkomstig in:
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 Installeren
ProtoBuf is nodig om de MobileNetV2 SSD-gewichten te 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 en GPS Integreren
Voeg de MPU6050 toe aan meta.json en manage.py scripts om versnellings- en gyroscopedata vast te leggen:
{
"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"]
}
Installeer de benodigde Python-bibliotheken:
sudo apt-get install python3-smbus
pip install mpu6050-raspberrypi
pip install RPi.GPIO
4. Laatste Stappen
Na het installeren van alle afhankelijkheden, deactiveer eventuele virtuele omgevingen en herstart de Pi:
deactivate
sudo shutdown -h now
De auto is nu klaar om de SSD MobileNetV2 voor objectdetectie en het behavioral cloning-model voor autonoom rijden te draaien.
Conclusie
Door lichtgewicht neurale netwerken te combineren met robuuste sensor-integratie, kan een Raspberry Pi 3 betrouwbaar vuilnisbakken detecteren en verzamelen, wat de weg baant voor schaalbare, laag-kost autonoome afvalopruimingsoplossingen.
Productieproces
- Operaties & Onderhoud Transformeren: Een Praktische Gids voor Effectieve Planning
- Real-time Bewegingsplanning voor Autonome Voertuigen in Stedelijke Omgevingen: Een Geschaalde Prototype-studie
- Olie-mist Afvangsystemen: Bescherming van Werkomgevingen tegen Schadelijke Aerosolen
- Daimler en BMW kondigen strategische alliantie aan voor autonoom rijden
- Continental Onthult Baanbrekende Autonome Rijoplossingen voor de Toekomst van Mobiliteit
- 7 Essentiële Tips voor Veilige Stofafscheider Operaties: Werknemers & Milieu Beschermen
- Geavanceerd 3D-bewegingsvolgsysteem: next-gen sensor voor autonome technologie
- Autonome dronezwerm oplaadsysteem: Missietijd verlengen met UGV's
- Voorbereiden op een Autonome Toekomst: Hoe Floteigenaren Voorsprong Kunnen Krijgen
- Hoe 5G Connected Cars Transformeert: Snelheid, Veiligheid en Slimme Features
- Veiligheid Eerst: Hoe Europeanen Toekomstige Connected Cars Bekijken