Робот для сортировки мусора на Google Coral Edge TPU
Проблема
Знаете ли вы, что уровень загрязнений на сортировочных заводах может достигать 25%? Это значит, что одна из четырёх единиц никогда не попадает в переработку, в основном из-за человеческих ошибок при сортировке. По мере обострения изменения климата снижение загрязнений становится критически важным. Наше решение — автономный сортировочный робот, использующий Google Coral Edge TPU и машинное обучение для детекции объектов — кардинально сокращает загрязнения и операционные расходы.
Демонстрация
Репозиторий кода
Клонируйте полный проект на GitHub для следования за процессом.
Шаг 1: Получение датасета
Для обучения точной модели детекции объектов нужен разнообразный набор размеченных изображений. Мы использовали датасет TrashNet, содержащий 2527 изображений в шести классах:
- Стекло — 501 изображение
- Бумага — 594
- Картон — 403
- Пластик — 482
- Металл — 410
- Мусор (неперерабатываемый) — 137
Датасет доступен для скачивания на Google Drive. Для быстрого обучения скачайте предварительно изменённый архив (dataset-resized.zip). Для кастомного ресайза — dataset-original.zip.
Шаг 2: Разметка изображений
Использовали labelImg для аннотации ограничивающих рамок вокруг каждого объекта. Рамки должны плотно облегать предметы для максимальной точности. Все файлы аннотаций (.xml) хранятся в отдельной папке. Если разметка занимает много времени, скачайте наш предразмеченный датасет здесь.
Шаг 3: Обучение модели
Применяли пайплайн transfer learning TensorFlow с базовым MobileNet-SSD v2 (COCO), полностью совместимым с Coral Edge TPU. Обучение можно проводить локально или в облаке. Локально — просто, но медленно; для ускорения используйте Google Cloud TPU или AWS GPU инстансы по гайду Google или руководству EdjeElectronics.
Шаг 4: Компиляция для Coral Edge TPU
После обучения экспортируйте модель как замороженный граф (.pb), затем конвертируйте в TensorFlow Lite с пост-обучающей квантизацией. Финально скомпилируйте TFLite-модель в бинарник Edge TPU с помощью edgetpu_compiler. Полные инструкции в документации компилятора Edge TPU.
Шаг 5: Развёртывание на Raspberry Pi
Настройте Raspberry Pi 4 с Coral USB Accelerator и модулем камеры Raspberry Pi по официальному гайду. Готово — запустите:
python test_detection.py \
--model recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/detect_edgetpu.tflite \
--labels recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/labels.txt
Откроется окно с детекциями; нажмите q для выхода.
Шаг 6: Сборка манипулятора
Манипулятор — 3D-печатный, 6 степеней свободы, из Thingiverse. Следуйте инструкции по сборке и подключите сервоприводы в порядке (снизу вверх): 3, 11, 10, 9, 6, 5. Загрузите basicMovement.ino в Arduino для теста захвата и размещения.
Шаг 7: Интеграция RPi и манипулятора
Установите камеру у основания клешни манипулятора для минимизации перспективных искажений. Загрузите roboticArm.ino в Arduino, соедините Raspberry Pi с Arduino по USB для последовательного обмена. Настройте последовательный порт в коде Arduino под /dev/ttyUSB0 Pi.
Шаг 8: Финальные штрихи
Поместите электронику в кастомный корпус для безопасности и эстетики. Готовая сборка выглядит так:

Готовая предобученная модель
Если хотите пропустить обучение, скачайте готовый к развёртыванию модель здесь.
Используя машинное обучение на Coral Edge TPU, этот робот обеспечивает точную, низкозагрязняющую сортировку за долю стоимости ручного труда.
Производственный процесс
- Модельные поезда Lionel: история, производство и будущее
- Python/MicroPython логгер датчиков: бесшовное сохранение данных в Google Sheets
- Визионный мобильный робот, избегающий препятствия, на Raspberry Pi
- gatoBot: Веб-управляемый робот на Raspberry Pi Zero W с живым видеопотоком
- Робот УФ-дезинфекции на Arduino Mega: дистанционно управляемая гермицидная система
- Робот-ускользатор на сервоприводе: сборка на Arduino и HC-SR04
- Управление Roomba Create 2 через Arduino и Android: пошаговое руководство
- Голосовое управление бытовыми приборами: Bluetooth-управление через Google Assistant
- Мастерство PID-управления 3D-моделью робота-захвата в MATLAB/Simulink
- Yama Seiki GA-2000CR: компактный токарный центр с роботом-манипулятором и паллетной системой