CU Boulder ATLS 5140 Creative Technologies Финальный проект

Введение

За 4 недели я должен был завершить проектный объект по моему выбору, который является интерактивным с использованием Arduino или другого микроконтроллера для взаимодействия.

Идея проекта

Я всегда хотел создать осязаемое решение проблемы реального мира. Сортировка мусора у источника важна, потому что это может увеличить количество отходов, перерабатываемых позже, уменьшая количество отходов, которые попадают на свалки и загрязняют окружающую среду. Сортировка мусора по соответствующим категориям — ежедневная рутинная работа. Кто не стоял перед двумя, тремя, пятью или более баками, раздумывая, в какой из них что-то положить? Я тоже, когда я вижу несколько мусорных баков, мой разум выполняет вычисления, о которых я не знаю. Мы можем буквально видеть, как люди выбрасывают все виды мусора в мусорные баки, помеченные для разных типов мусора. В классе ATLS 5430 Design Methods Designing Error (см. «видео» ниже) я предложил концептуальный прототип. Робот для сортировки мусора, который использует машинное обучение для сортировки мусора в соответствующие корзины. Теперь у меня есть возможность создать его физически на курсе «Креативные технологии» и я подумал про себя: «А почему бы и нет?»

Видение проекта и дизайн

Видение

Цель этого проекта — создать робота, который сортирует мусор на вторсырье, свалку, компост и бумажные отходы. Веб-камера захватывает живое видео и отправляет ему библиотеку javascript p5.js для обработки изображения, которое взаимодействует с микроконтроллером arduino через последовательную связь. Первоначальная идея состоит в том, чтобы использовать механизм конвейерной ленты, в котором объекты мусора перемещаются по конвейерной ленте, а затем выталкиваются/сортируются в мусорные баки с помощью серводвигателей. Отказался от этой идеи из-за потребности в нескольких сервоприводах для разного типа мусора. После нескольких итераций была разработана новая конструкция, в которой робот поворачивается к мусорному баку и выбрасывает в него мусор.

Дизайн проекта

Проект планировалось разделить на три части: 1. Аппаратное проектирование 3D-модели робота с использованием программного обеспечения Solidworks и изготовление. 2. Создайте и обучите модель машинного обучения, которая обнаруживает различные типы мусора. 3. Последовательная связь между p5.js (обученная модель машинного обучения) и Arduino.

Аппаратный дизайн и изготовление:

Деревянное основание поддерживает поворотный стол (см. рисунок 1). Используются два серводвигателя. Я дал им имена, чтобы упростить кодирование. Сервопривод Rotate вращает поворотный стол, а сервопривод Dunk сбрасывает предмет. Крепление Rotate Servo соединяется с верхней частью поворотного стола, а вал сервопривода соединяется с нижней частью поворотного стола. В результате серводвигатель вращает поворотный стол. В верхней части поворотного стола находится L-образный вращающийся клин с прикрепленным к нему серводвигателем Dunk. В результате основной корпус системы сможет вращаться, а мусор, помещенный на клин, можно будет свободно выбрасывать в любой из мусорных баков.

Спроектировал все аппаратные части 3D-модели по отдельности и создал виртуальную сборку всех частей вместе (см. Рисунок 2). Веб-камера установлена ​​на основании, которое обращено к Г-образному клину. Положения сервопривода Rotate и Dunk Servo изначально установлены на 90° и 40°, чтобы камера смотрела на L-образный клин.

Купила Lazy Susan Turntable в homedepot. Станок лазерной резки используется для резки древесной плиты в требуемые формы для изготовления. Вал сервопривода для вращающегося L-образного клина напечатан на 3D-принтере с прорезями, выровненными под углом 90 градусов. Два куска дерева запрессованы в пазы. Arduino был подключен к ЖК-экрану для отображения типа мусора, а также к двум серводвигателям для механизма сортировки (вращения и удаления).

Обучение модели машинного обучения:

Был использован Teachable Machine, представляющий собой веб-инструмент для быстрого и простого создания моделей машинного обучения. Инструмент позволяет нам создавать и классифицировать примеры для изучения модели машинного обучения. С помощью веб-камеры я в режиме реального времени снимал различный мусор. Приблизительно 500–600 изображений каждого предмета снимаются с разных ракурсов и распределяются по классам. Затем модель обучается на собранных данных. Модель, которую мы обучаем, запрограммирована на просмотр всего набора данных 50 раз, что называется числом эпох. По мере увеличения количества эпох будет повышаться и эффективность алгоритма. Каждый класс изображений перед обучением делится на 16 пакетов. Затем обученная модель экспортируется для использования в p5.js.

Связь между p5.js и arduino:

Обученная модель импортируется в скетч p5.js. Самым сложным было выяснить, как заставить скетч p5.js взаимодействовать с микроконтроллером Arduino, который взаимодействует с сервоприводом. После некоторого расследования я обнаружил приложение под названием p5serialcontrol, которое связывается с сервером webSocket в IDE p5.js для предоставления доступа к последовательным устройствам, подключенным к компьютеру. Последовательная связь была успешно установлена.

Возникшие трудности

Делаем робота компактнее:

Модель машинного обучения была впервые протестирована на ноутбуке, на котором был запущен скетч p5.js в веб-браузере. Вместо ноутбука/компьютера идея заключалась в том, чтобы использовать микроконтроллер Jetson nano и подключить его к камере Raspberry Pi, чтобы сделать TRAISH компактным. Микроконтроллеру Jetson nano не удалось установить связь с камерой PI. Пришлось снова прибегнуть к помощи ноутбука.

Камера должна была быть на вершине L-образного клина в первой итерации проекта. Однако для того, чтобы модель была должным образом обучена, нужно было увеличить угол обзора, поэтому пришлось увеличить высоту. В результате положение камеры было изменено.

Ошибки проектирования:

Ось сервопривода и ось поворотного стола не были совмещены в первоначальной конструкции. Сервопривод, прикрепленный к поворотному столу, не вращался после изготовления и сборки. Пришлось перепроектировать 3D-модель, чтобы исправить проблему.

Несоответствие модели ML:

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

Конечный продукт

TRAISH разделяет мусор на четыре типа. Свалка, вторсырье, картон и компост. Когда элементы обнаружены и классифицированы, сервопривод Rotate поворачивается в положение, указанное ниже, прежде чем вернуться в исходное положение на 90°.

0° для свалки, 40° для переработки, 130° для картона и 170° для компоста.

Чтобы сбросить мусор, сервопривод Dunk поворачивается от 40° до 150°, а затем возвращается в исходное положение 40°.

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

Работа - Сторона машины

Работа — сторона дисплея

АТЛАС ЭКСПО 2022

Институт Roser ATLAS в Калифорнийском университете в Боулдере ежегодно проводит выставку EXPO, чтобы студенты ATLAS могли продемонстрировать свою работу. В этом году более 70 групп представили публике свои работы в таких областях, как робототехника, удобство использования, социальное влияние и творческие технологии. Я представил TRAISH на выставке ATLAS EXPO 2022, где получил много положительных отзывов, а также предложения по дальнейшему развитию.

Прощальные мысли

Этот проект помог изучить методы изготовления, такие как лазерная резка, 3D-печать и другие процессы механической обработки. Если машинное обучение работает с небольшим количеством элементов, его можно масштабировать до бесконечного числа элементов. Работа над идеей, в которую я верю и которая мне небезразлична, и доведение ее до конца дали мне большую поддержку и мотивацию. Будущее технологий всегда в руках дизайнеров, способных принимать этичные решения. Ключевым моментом является выявление областей, в которых технологии действительно отсутствуют или приносят пользу обществу, и решение реальных проблем.

Забавный факт

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