Оглавление:

Использование сонара, лидара и компьютерного зрения на микроконтроллерах для помощи слабовидящим: 16 шагов
Использование сонара, лидара и компьютерного зрения на микроконтроллерах для помощи слабовидящим: 16 шагов

Видео: Использование сонара, лидара и компьютерного зрения на микроконтроллерах для помощи слабовидящим: 16 шагов

Видео: Использование сонара, лидара и компьютерного зрения на микроконтроллерах для помощи слабовидящим: 16 шагов
Видео: СПОСОБЫ РЕАЛИЗАЦИИ МАШИННОГО ЗРЕНИЯ В ПРОЕКТАХ УЧЕНИКОВ КРУЖКОВ ПО РОБОТОТЕХНИКЕ 2024, Ноябрь
Anonim
Использование сонара, лидара и компьютерного зрения на микроконтроллерах для помощи слабовидящим
Использование сонара, лидара и компьютерного зрения на микроконтроллерах для помощи слабовидящим

Я хочу создать интеллектуальную «трость», которая может помочь людям с нарушениями зрения гораздо больше, чем существующие решения. Трость сможет уведомлять пользователя об объектах спереди или по бокам, издавая шум в наушниках с объемным звуком. У трости также будет небольшая камера и LIDAR (обнаружение света и дальность), чтобы он мог распознавать объекты и людей в комнате и уведомлять пользователя с помощью наушников. По соображениям безопасности наушники не будут блокировать весь шум, поскольку будет микрофон, который может отфильтровать все ненужные звуки и заставить гудки автомобиля и людей разговаривать. Наконец, система будет иметь GPS, чтобы она могла указывать направление и показывать пользователю, куда идти.

Пожалуйста, проголосуйте за меня в конкурсах «Микроконтроллер» и «Outdoor Fitness»!

Шаг 1: Обзор проекта

Обзор проекта
Обзор проекта
Обзор проекта
Обзор проекта
Обзор проекта
Обзор проекта

Согласно World Access for the Blind, физическое движение - одна из самых серьезных проблем для слепых. Путешествовать или просто идти по людной улице может быть очень сложно. Традиционно единственным решением было использование широко известной «белой трости», которая в основном используется для сканирования окружающей среды путем столкновения с препятствиями в непосредственной близости от пользователя. Лучшим решением было бы устройство, которое могло бы заменить зрячего помощника, предоставляя информацию о местоположении препятствий, чтобы слепой человек мог выйти в неизвестную среду и чувствовать себя в безопасности. В ходе этого проекта было разработано небольшое устройство с батарейным питанием, отвечающее этим критериям. Устройство может определять размер и местоположение объекта с помощью датчиков, которые измеряют положение объектов по отношению к пользователю, передают эту информацию микроконтроллеру, а затем преобразовывают ее в аудио для предоставления информации пользователю. Устройство было построено с использованием доступных коммерческих LIDAR (обнаружение света и определение дальности), SONAR (звуковая навигация и определение дальности) и технологий компьютерного зрения, связанных с микроконтроллерами и запрограммированных для обеспечения вывода необходимой звуковой информации с помощью наушников-вкладышей или наушников. Технология обнаружения была встроена в «белую трость», чтобы указывать другим на состояние пользователя и обеспечивать дополнительную безопасность.

Шаг 2: предварительное исследование

Фундаментальные исследования
Фундаментальные исследования
Фундаментальные исследования
Фундаментальные исследования
Фундаментальные исследования
Фундаментальные исследования
Фундаментальные исследования
Фундаментальные исследования

В 2017 году Всемирная организация здравоохранения сообщила, что во всем мире насчитывается 285 миллионов людей с нарушениями зрения, из которых 39 миллионов полностью слепы. Большинство людей не думают о проблемах, с которыми люди с ослабленным зрением сталкиваются каждый день. Согласно World Access for the Blind, физическое движение - одна из самых серьезных проблем для слепых. Путешествовать или просто идти по людной улице может быть очень сложно. Из-за этого многие люди с ослабленным зрением предпочитают брать с собой зрячих друзей или членов семьи, чтобы они помогали ориентироваться в новых условиях. Традиционно единственным решением было использование широко известной «белой трости», которая в основном используется для сканирования окружающей среды путем столкновения с препятствиями в непосредственной близости от пользователя. Лучшим решением было бы устройство, которое могло бы заменить зрячего помощника, предоставляя информацию о местоположении препятствий, чтобы слепой человек мог выйти в неизвестную среду и чувствовать себя в безопасности. NavCog, результат сотрудничества IBM и Университета Карнеги-Меллона, попытался решить эту проблему, создав систему, которая использует маяки Bluetooth и смартфоны в качестве помощи. Однако это решение было громоздким и оказалось очень дорогостоящим для крупномасштабных внедрений. Мое решение решает эту проблему, устраняя необходимость во внешних устройствах и используя голос, чтобы направлять пользователя в течение дня (рис. 3). Преимущество технологии, встроенной в «белую трость», состоит в том, что она сигнализирует остальному миру о состоянии пользователя, которое вызывает изменение поведения окружающих людей.

Шаг 3: Требования к дизайну

Требования к дизайну
Требования к дизайну

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

Особенность - Описание:

  • Вычисления - система должна обеспечивать быструю обработку информации, которой обмениваются пользователь и датчики. Например, система должна иметь возможность информировать пользователя о препятствиях впереди, которые находятся на расстоянии не менее 2 метров.
  • Охват - система должна предоставлять свои услуги в помещении и на открытом воздухе, чтобы улучшить качество жизни людей с ослабленным зрением.
  • Время - система должна работать как в дневное, так и в ночное время.
  • Дальность - Дальность - это расстояние между пользователем и объектом, обнаруживаемым системой. Идеальная минимальная дальность - 0,5 м, максимальная - более 5 м. Дальнейшие расстояния были бы даже лучше, но их сложнее вычислить.
  • Тип объекта - система должна обнаруживать внезапное появление объектов. Система должна отличать движущиеся объекты от статических.

Шаг 4: инженерное проектирование и выбор оборудования

Инженерное проектирование и подбор оборудования
Инженерное проектирование и подбор оборудования
Инженерное проектирование и подбор оборудования
Инженерное проектирование и подбор оборудования
Инженерное проектирование и подбор оборудования
Инженерное проектирование и подбор оборудования

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

Цена выбранных запчастей:

  • Zungle Panther: 149,99 долларов
  • LiDAR Lite V3: 149,99 долларов
  • LV-MaxSonar-EZ1: 29,95 доллара США.
  • Ультразвуковой датчик - HC-SR04: 3,95 доллара США
  • Raspberry Pi 3: 39,95 долларов
  • Arduino: 24,95 доллара
  • Kinect: 32,44 доллара
  • Floureon 11.1v 3s 1500mAh: 19,99 доллара США
  • LM2596HV: 9,64 доллара

Шаг 5: Выбор оборудования: метод взаимодействия

Подбор оборудования: способ взаимодействия
Подбор оборудования: способ взаимодействия
Подбор оборудования: способ взаимодействия
Подбор оборудования: способ взаимодействия

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

Устройство: Плюсы --- Минусы:

  • Кнопки: нет ошибки команды при нажатии правой кнопки --- Может быть сложно убедиться, что нажаты правильные кнопки
  • Голосовое управление: легко, потому что пользователь может использовать предустановленные команды --- Неправильное произношение может вызвать ошибки

Шаг 6: Выбор оборудования: микроконтроллер

Выбор оборудования: микроконтроллер
Выбор оборудования: микроконтроллер
Выбор оборудования: микроконтроллер
Выбор оборудования: микроконтроллер
Выбор оборудования: микроконтроллер
Выбор оборудования: микроконтроллер

В устройстве использовался Raspberry Pi из-за его низкой стоимости и достаточной вычислительной мощности для расчета карты глубины. Intel Joule был бы предпочтительным вариантом, но его цена удвоила бы стоимость системы, что не было бы идеальным для этого устройства, которое разработано, чтобы предоставить пользователям более дешевый вариант. Arduino был использован в системе, потому что он может легко получать информацию от датчиков. BeagleBone и Intel Edison не использовались из-за низкого соотношения цены и производительности, что плохо для этой недорогой системы.

Микроконтроллер: Плюсы --- Минусы:

  • Raspberry Pi: обладает достаточной вычислительной мощностью для поиска препятствий и имеет встроенный Wi-Fi / Bluetooth --- Не так много вариантов получения данных с датчиков
  • Arduino: легко получать данные с небольших датчиков. т.е. LIDAR, Ultrasonic, SONAR и т. Д. - недостаточно вычислительной мощности для поиска препятствий
  • Intel Edison: может быстро обрабатывать препятствия с помощью быстрого процессора --- Требуются дополнительные компоненты разработчика для работы системы
  • Intel Joule: имеет вдвое большую скорость обработки, чем любой из микроконтроллеров на потребительском рынке на сегодняшний день --- Очень высокая стоимость для этой системы и трудность взаимодействия с GPIO для взаимодействия с сенсором
  • BeagleBone Black: компактный и совместимый с датчиками, используемыми в проекте, за счет использования универсального ввода-вывода (GPIO) --- Недостаточная вычислительная мощность для эффективного поиска объектов

Шаг 7: Выбор оборудования: датчики

Выбор оборудования: датчики
Выбор оборудования: датчики
Выбор оборудования: датчики
Выбор оборудования: датчики
Выбор оборудования: датчики
Выбор оборудования: датчики

Для получения высокой точности определения местоположения используется комбинация нескольких датчиков. Kinect является основным сенсором из-за большой площади, которую он может сканировать на предмет препятствий за один раз. LIDAR (LIght Detection and Ranging) - это метод дистанционного зондирования, который использует свет в форме импульсного лазера для быстрого измерения расстояний от места расположения датчика до объектов; этот датчик используется, потому что он может отслеживать область на расстоянии до 40 метров (м) и поскольку он может сканировать под разными углами, он может определять, идут ли какие-либо шаги вверх или вниз. Датчики SOund Navigation And Ranging (SONAR) и ультразвуковые датчики используются в качестве резервного средства отслеживания на случай, если Kinect пропустит столб или неровность земли, которая может представлять опасность для пользователя. Датчик 9 степеней свободы используется для отслеживания направления, в котором смотрит пользователь, чтобы устройство могло хранить информацию для более точного направления в следующий раз, когда человек пойдет в том же месте.

Датчики: Плюсы --- Минусы:

  • Kinect V1: может отслеживать 3D-объекты с --- Только одна камера для обнаружения окружающей среды
  • Kinect V2: имеет 3 инфракрасные камеры и камеру с красной, зеленой, синей и глубиной (RGB-D) для высокоточного обнаружения 3D-объектов --- Может нагреваться и может потребоваться охлаждающий вентилятор, он больше, чем другие датчики
  • ЛИДАР: Луч, который может отслеживать местоположения на расстоянии до 40 м --- должен быть направлен к объекту и может смотреть только в этом направлении
  • СОНАР: луч, который может отслеживать на расстоянии 5 м, но на большом расстоянии --- небольшие объекты, такие как перья, могут срабатывать датчик
  • Ультразвуковой: имеет радиус действия до 3 м и стоит очень недорого --- иногда могут быть неточными расстояниями
  • Датчик 9 степеней свободы: подходит для определения ориентации и скорости пользователя --- Если что-то мешает датчикам, расчеты расстояния могут быть неправильно рассчитаны

Шаг 8: Выбор оборудования: программное обеспечение

Выбор оборудования: программное обеспечение
Выбор оборудования: программное обеспечение
Выбор оборудования: программное обеспечение
Выбор оборудования: программное обеспечение
Выбор оборудования: программное обеспечение
Выбор оборудования: программное обеспечение

Для первых нескольких прототипов, построенных с сенсором Kinect V1, было выбрано программное обеспечение Freenect, но оно не было очень точным. При переходе на Kinect V2 и Freenect2 результаты отслеживания были значительно улучшены благодаря улучшенному отслеживанию, поскольку V2 имеет камеру HD и 3 инфракрасные камеры, а не одну камеру на Kinect V1. Когда я использовал OpenNi2 с Kinect V1, функции были ограничены, и я не мог управлять некоторыми функциями устройства.

Программное обеспечение: Плюсы --- Минусы:

  • Freenect: имеет более низкий уровень контроля для всего --- поддерживает только Kinect V1
  • OpenNi2: можно легко создать данные облака точек из информационного потока от Kinect --- поддерживает только Kinect V1 и не поддерживает управление на низком уровне.
  • Freenect2: имеет более низкий уровень управления сенсорной панелью --- Работает только для Kinect V2
  • ROS: операционная система, идеально подходящая для программирования функций камеры --- должна быть установлена на быструю SD-карту, чтобы программное обеспечение работало.

Шаг 9: Выбор оборудования: другие детали

Выбор оборудования: другие детали
Выбор оборудования: другие детали
Выбор оборудования: другие детали
Выбор оборудования: другие детали

Литий-ионные батареи были выбраны из-за того, что они легкие, обладают большой емкостью и могут быть перезаряжаемыми. Литий-ионный аккумулятор 18650 имеет цилиндрическую форму и идеально вписывается в прототип трости. Трость 1-го прототипа изготовлена из трубы ПВХ, потому что она полая и снижает вес трости.

Шаг 10: Разработка системы: создание оборудования, часть 1

Разработка системы: создание оборудования, часть 1
Разработка системы: создание оборудования, часть 1
Разработка системы: создание оборудования, часть 1
Разработка системы: создание оборудования, часть 1
Разработка системы: создание оборудования, часть 1
Разработка системы: создание оборудования, часть 1

Сначала нам нужно разобрать Kinect, чтобы он стал легче и поместился внутри трости. Я начал с того, что снял весь внешний кожух с Kinect, поскольку использованный пластик весит ОЧЕНЬ МНОГО. Затем пришлось отрезать кабель, чтобы можно было снять основание. Я взял провода из разъема, показанного на картинке, и припаял их к кабелю USB с сигнальными проводами, а два других разъема были для входного питания 12 В. Поскольку я хотел, чтобы вентилятор внутри трости работал на полную мощность для охлаждения всех других компонентов, я отрезал разъем вентилятора от Kinect и подключил 5 В от Raspberry Pi. Я также сделал небольшой адаптер для провода LiDAR, чтобы он мог подключаться напрямую к Raspberry Pi без каких-либо других систем между ними.

Я случайно припаял белый провод к черному, поэтому не смотрите на изображения для схем подключения

Шаг 11: Разработка системы: создание оборудования, часть 2

Разработка системы: создание оборудования, часть 2
Разработка системы: создание оборудования, часть 2
Разработка системы: создание оборудования, часть 2
Разработка системы: создание оборудования, часть 2
Разработка системы: создание оборудования, часть 2
Разработка системы: создание оборудования, часть 2
Разработка системы: создание оборудования, часть 2
Разработка системы: создание оборудования, часть 2

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

Шаг 12: Разработка системы: программирование системы, часть 1

Разработка системы: программирование системы, часть 1
Разработка системы: программирование системы, часть 1
Разработка системы: программирование системы, часть 1
Разработка системы: программирование системы, часть 1
Разработка системы: программирование системы, часть 1
Разработка системы: программирование системы, часть 1

Одна из самых сложных частей этой системы - это программирование. Когда я впервые получил Kinect, чтобы поиграть с ним, я установил программу под названием RTAB Map, которая берет поток данных от Kinect и преобразует его в облако точек. С помощью облака точек он создал трехмерное изображение, которое можно повернуть, чтобы увидеть глубину расположения всех объектов. Поигравшись с ним некоторое время и отрегулировав все настройки, я решил установить на Raspberry Pi некоторое программное обеспечение, чтобы я мог видеть поток данных от Kinect. Последние два изображения выше показывают, что Raspberry Pi может выдавать со скоростью примерно 15-20 кадров в секунду.

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