Mobil Donkey Otonom: AI TensorFlow MobileNetV2 untuk Pengumpulan Sampah
Bangun mobil RC otonom yang mendeteksi dan mengumpulkan sampah menggunakan TensorFlow SSD MobileNetV2 pada Raspberry Pi 3 dan Pi Camera.
Ringkasan Proyek
Panduan ini menunjukkan cara mengubah mobil RC standar (Raspberry Pi + Pi Camera) menjadi pengumpul sampah otonom. Solusi ini bergantung pada dua jaringan saraf ringan: satu untuk deteksi objek real-time dan yang lain untuk kontrol arah dan gas. Karena RAM dan CPU Pi 3 yang terbatas hanya dapat menjalankan satu model pada satu waktu, kami bergantian antara deteksi dan pengemudi dengan cara time-sliced.
Ide inti adalah melatih model untuk mengenali tong sampah dan kemudian mengemudi mobil menuju mereka, mengumpulkan sampah secara otonom.
Mengidentifikasi komponen mobil dan laptop
Proyek ini memiliki dua fase utama:
- Deteksi Objek – Jaringan konvolusif sederhana memproses umpan Pi Camera menggunakan TensorFlow dan OpenCV.
- Kloning Perilaku – Mobil belajar untuk menavigasi secara otonom dengan meniru input arah dan gas manusia. Sensor tambahan (ultrasonik, GPS, IMU 6-DOF) memperkaya data pelatihan dan telemetri.
Pendahuluan
MobileNetV2, dirilis pada 2019, dirancang untuk perangkat terintegrasi. CPU Raspberry Pi 3 dapat dengan nyaman menjalankan MobileNetV2 SSD, berbeda dengan varian YOLO yang lebih berat yang memerlukan RAM berlebihan.
Mencoba menjalankan VGG16 (≈350 MB bobot) gagal di Pi, menegaskan kebutuhan akan model yang lebih ramping. Transfer learning dengan MobileNetV2 SSD yang telah dilatih sebelumnya memberikan akurasi tinggi dengan jejak minimal.
Modifikasi Hardware
Kendaraan dasar adalah mobil RC Magnet, yang kami retrofit menjadi chassis DonkeyCar. Perubahan utama meliputi:
- Pembongkaran tutup atas untuk mengakses receiver, ESC, dan servo.
- Pemasang dua adapter cetak 3D untuk mengganti klip asli.
- Pemasang Raspberry Pi dan pengontrol servo khusus pada papan kayu.
- Menghubungkan pengontrol servo ke arah (channel 0) dan gas (channel 1) mobil melalui I²C.
- Menambahkan IMU MPU6050 6-DOF, modul GPS, dan sensor ultrasonik HC-SR04 (memerlukan level shifter 5 V).
Kendaraan yang selesai sekarang mencakup:
- Kamera Pi wide-angle monokular
- Pengontrol servo untuk arah
- IMU 6-DOF untuk data akselerasi dan giroskop
- GPS untuk posisi luar ruangan
- Sensor jarak ultrasonik untuk menghindari rintangan
Semua data sensor dicetak waktu dan dicatat melalui framework tub untuk memperkaya dataset pelatihan.
Pengaturan Perangkat Lunak
Stack perangkat lunak minimal namun kuat: TensorFlow, OpenCV, dan beberapa utilitas Python. Berikut adalah panduan pemasangan langkah demi langkah.
1. Instal TensorFlow, OpenCV, dan Dependensi
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 memerlukan format model sendiri; oleh karena itu kami menggunakan repositori model TensorFlow resmi dan mengatur PYTHONPATH sesuai:
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. Instal Compiler Protocol Buffers
ProtoBuf diperlukan untuk memuat bobot 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. Integrasi IMU dan GPS
Tambahkan MPU6050 ke meta.json dan manage.py untuk menangkap data akselerasi dan giroskop:
{"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"]}
Instal library Python yang diperlukan:
sudo apt-get install python3-smbus pip install mpu6050-raspberrypi pip install RPi.GPIO
4. Langkah Akhir
Setelah menginstal semua dependensi, nonaktifkan lingkungan virtual apa pun dan reboot Pi:
deactivate sudo shutdown -h now
Mobil sekarang siap menjalankan SSD MobileNetV2 untuk deteksi objek dan model kloning perilaku untuk pengemudi otonom.
Kesimpulan
Dengan menggabungkan jaringan saraf ringan dengan integrasi sensor yang kuat, Raspberry Pi 3 dapat dengan andal mendeteksi dan mengumpulkan tong sampah, membuka jalan untuk solusi pengumpulan sampah otonom yang dapat diskalakan dan hemat biaya.