Оглавление:

Робот-сортировщик для вторичной переработки: 15 шагов (с изображениями)
Робот-сортировщик для вторичной переработки: 15 шагов (с изображениями)

Видео: Робот-сортировщик для вторичной переработки: 15 шагов (с изображениями)

Видео: Робот-сортировщик для вторичной переработки: 15 шагов (с изображениями)
Видео: Что выгоднее: точечная или комплексная роботизация: II сессия НАУРР на Агропродмаш 2023 2024, Ноябрь
Anonim
Image
Image
Получение данных
Получение данных

Знаете ли вы, что средний уровень загрязнения в сообществах и на предприятиях составляет до 25%? Это означает, что каждый четвертый предмет вторичной переработки, который вы выбрасываете, не перерабатывается. Это вызвано ошибкой человека в центрах утилизации. Традиционно рабочие сортируют мусор по разным контейнерам в зависимости от материала. Люди неизбежно совершают ошибки и в конечном итоге не сортируют мусор должным образом, что приводит к заражению. Поскольку загрязнение и изменение климата становятся все более значительными в современном обществе, переработка отходов играет огромную роль в защите нашей планеты. Используя роботов для сортировки мусора, уровень загрязнения резко снизится, не говоря уже о том, что он станет намного дешевле и экологичнее. Чтобы решить эту проблему, я создал робота-сортировщика вторичного сырья, который использует машинное обучение для сортировки различных вторичных материалов.

Шаг 1: Детали

Убедитесь, что у вас есть следующие части, которым нужно следовать вместе с этим руководством:

Детали, напечатанные на 3D-принтере (см. Шаг ниже)

Raspberry Pi RPI 4 4 ГБ

Google Coral USB Accelerator

Arduino Uno R3

Модуль камеры Raspberry Pi V2

Настенный источник питания постоянного тока 5 В, 2 А

Источник питания постоянного тока 12 В

SG90 9g Micro Servos 4шт.

M3 x 0,5 мм Нержавеющая сталь Самоблокирующаяся гайка шестигранная, нейлоновая 100шт.

Титановые винты M3x20 с цилиндрической головкой 10 шт.

Аналоговый серводвигатель MG996R Metal Gear Torque 4 шт.

Карта памяти Samsung 32 ГБ Select

Шлейф Adafruit для камеры Raspberry Pi - 1 метр

M2 Наружная и внутренняя латунная распорная втулка, винт, гайка, набор

60-мм вентилятор 12 В

Коробка Project 6,69 x 5,12 x 2,95 дюйма

Шаг 2: детали, напечатанные на 3D-принтере

Вам нужно будет напечатать на 3D-принтере все детали манипулятора. Вы можете найти все файлы здесь.

Шаг 3: Код

Пожалуйста, клонируйте мой репозиторий GitHub, чтобы следовать этому руководству.

Шаг 4: Получение данных

Чтобы обучить модель обнаружения объектов, которая может обнаруживать и распознавать различные вторичные материалы, я использовал набор данных trashnet, который включает 2527 изображений:

  • 501 стакан
  • 594 бумага
  • 403 картон
  • 482 пластик
  • 410 металл
  • 137 мусор

Изображение выше - это пример одного из изображений из набора данных.

Этот набор данных очень мал для обучения модели обнаружения объектов. Есть только около 100 изображений мусора, которых слишком мало для обучения точной модели, поэтому я решил не включать его.

Вы можете использовать эту папку на Google Диске для загрузки набора данных. Обязательно загрузите файл dataset-resized.zip. Он содержит набор изображений, размер которых уже уменьшен для ускорения обучения. Если вы хотите изменить размер необработанных изображений по своему вкусу, загрузите файл dataset-original.zip.

Шаг 5. Маркировка изображений

Маркировка изображений
Маркировка изображений

Затем нам нужно пометить несколько изображений различных вторсырья, чтобы мы могли обучить модель обнаружения объектов. Для этого я использовал labelImg, бесплатное программное обеспечение, которое позволяет помечать ограничивающие рамки объекта на изображениях.

Пометьте каждое изображение подходящей этикеткой. Из этого туториала Вы узнаете, как это сделать. Убедитесь, что каждая ограничивающая рамка расположена как можно ближе к границе каждого объекта, чтобы модель обнаружения была максимально точной. Сохраните все файлы.xml в папку.

На фото выше показано, как маркировать ваши изображения.

Это очень утомительный и ошеломляющий опыт. К счастью для вас, я уже пометил все изображения для вас! Вы можете найти это здесь.

Шаг 6: Обучение

Что касается обучения, я решил использовать трансферное обучение с помощью Tensorflow. Это позволяет нам обучать достаточно точную модель без большого количества данных.

Есть несколько способов сделать это. Мы можем сделать это на нашем локальном настольном компьютере в облаке. Обучение на нашей локальной машине займет очень много времени в зависимости от мощности вашего компьютера и наличия мощного графического процессора. На мой взгляд, это, наверное, самый простой способ, но опять же с обратной стороной скорости.

Следует отметить несколько важных моментов, касающихся трансферного обучения. Вам необходимо убедиться, что предварительно обученная модель, которую вы используете для обучения, совместима с Coral Edge TPU. Здесь вы можете найти совместимые модели. Я использовал модель MobileNet SSD v2 (COCO). Не стесняйтесь экспериментировать и с другими.

Для обучения на вашем локальном компьютере я бы порекомендовал следовать руководству Google или руководству EdjeElectronics, если он работает в Windows 10. Лично я протестировал руководство EdjeElectroncs и добился успеха на своем рабочем столе. Я не могу подтвердить, что учебник Google будет работать, но я был бы удивлен, если это не так.

Для обучения в облаке вы можете использовать AWS или GCP. Я нашел этот учебник, который вы можете попробовать. Он использует облачные TPU от Google, которые могут очень быстро обучить вашу модель обнаружения объектов. Не стесняйтесь использовать и AWS.

Независимо от того, тренируетесь ли вы на своей локальной машине или в облаке, вы должны получить обученную модель тензорного потока.

Шаг 7: Составление обученной модели

Составление обученной модели
Составление обученной модели

Чтобы ваша обученная модель могла работать с Coral Edge TPU, вам необходимо ее скомпилировать.

Выше представлена схема рабочего процесса.

После обучения нужно сохранить его как замороженный график (файл.pb). Затем вам нужно преобразовать его в модель Tensorflow Lite. Обратите внимание, как написано «Квантование после обучения». Если вы использовали совместимые предварительно обученные модели при использовании трансферного обучения, вам не нужно этого делать. Ознакомьтесь с полной документацией по совместимости здесь.

С моделью Tensorflow Lite вам необходимо скомпилировать ее в модель Edge TPU. Подробнее о том, как это сделать, читайте здесь.

Шаг 8: Модель обнаружения повторного использования

Если вы не хотите мучиться с обучением, преобразованием и компиляцией модели обнаружения объектов, ознакомьтесь с моей моделью обнаружения повторного использования здесь.

Шаг 9: Разверните модель

Разверните модель
Разверните модель

Следующим шагом является настройка Raspberry Pi (RPI) и Edge TPU для запуска модели обнаружения обученных объектов.

Сначала настройте RPI с помощью этого руководства.

Затем настройте Edge TPU, следуя этому руководству.

Наконец, подключите модуль камеры RPI к raspberry pi.

Теперь вы готовы протестировать свою модель обнаружения объектов!

Если вы уже клонировали мой репозиторий, вам нужно перейти в каталог RPI и запустить файл test_detection.py:

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.

Должно появиться небольшое окно, и если вы поместите пластиковую бутылку с водой или другой переработанный материал, оно должно обнаружить это, как на изображении выше.

Нажмите букву «q» на клавиатуре, чтобы завершить программу.

Шаг 10: Создайте роботизированную руку

Создайте роботизированную руку
Создайте роботизированную руку

Роботизированная рука - это рука, напечатанная на 3D-принтере, которую я нашел здесь. Просто следуйте инструкциям по настройке.

На изображении выше показано, какой оказалась моя роботизированная рука.

Убедитесь, что вы подключили выводы сервопривода к выводам ввода-вывода Arduino в моем коде. Подключите сервоприводы снизу вверх рычага в следующем порядке: 3, 11, 10, 9, 6, 5. Если не подключить его в этом порядке, рычаг переместит неправильный сервопривод!

Проверьте, работает ли он, перейдя в каталог Arduino и запустив файл basicMovement.ino. Это просто захватит объект, который вы поместите перед рукой, и уроните его сзади.

Шаг 11: Подключение RPI и роботизированного манипулятора

Подключение RPI и роботизированного манипулятора
Подключение RPI и роботизированного манипулятора

Сначала нам нужно прикрепить модуль камеры к нижней части когтя. На изображении выше показано, как это должно выглядеть.

Постарайтесь выровнять камеру как можно прямее, чтобы свести к минимуму ошибки при захвате распознанного вторичного материала. Вам понадобится длинный ленточный кабель модуля камеры, как показано в списке материалов.

Затем вам нужно загрузить файл roboticArm.ino на плату Arduino.

Наконец, нам просто нужно подключить USB-кабель между USB-портом RPI и USB-портом Arduino. Это позволит им общаться через последовательный порт. Следуйте этому руководству, чтобы узнать, как это настроить.

Шаг 12: Последние штрихи

Последние штрихи
Последние штрихи
Последние штрихи
Последние штрихи

Этот шаг не является обязательным, но мне нравится складывать все свои компоненты в небольшую симпатичную коробку проекта.

На изображениях выше показано, как это выглядит.

Вы можете найти коробку проекта в списке материалов. Я просто просверлил несколько отверстий и использовал латунные стойки для крепления электроники. Я также установил 4 охлаждающих вентилятора, чтобы поддерживать постоянный поток воздуха через RPI и TPU в горячем состоянии.

Шаг 13: бег

Теперь вы готовы включить роботизированную руку и RPI! На RPI вы можете просто запустить файл recycle_detection.py. Это откроет окно, и роботизированная рука начнет работать, как в демонстрационном видео! Нажмите букву «q» на клавиатуре, чтобы завершить программу.

Не стесняйтесь экспериментировать с кодом и получайте удовольствие!

Шаг 14: Дальнейшая работа

Я надеюсь использовать R. O. S. для управления роботизированной рукой более точными движениями. Это позволит более точно собирать предметы.

Шаг 15: Вопросы?

Не стесняйтесь оставлять комментарии ниже, если у вас есть какие-либо вопросы!

Рекомендуемые: