Датчики препятствия: как роботы ориентируются в пространстве
Одна голова хорошо, а две лучше
При разработке первых прототипов роботов Promobot в качестве датчиков препятствия использовались покупные готовые модули ультразвуковых датчиков.
Принцип работы ультразвуковых датчиков достаточно прост: микроконтроллер посылает на источник сигнала несколько пучков с частотой десятки кГц, отраженный от объекта сигнал попадает на приемник и в результате совпадения частоты отраженного сигнала и частоты резонанса приемника на выходе приемника появляется напряжение. При этом время, пройденное между излучением сигнала и появлением напряжения на приемнике, преобразуется в пройденное ультразвуковым сигналом расстояние.
Тестирование датчиков показало, что ультразвуковой сигнал измерения имеет несколько критичных недостатков:
- поглощение сигнала мягкими и пористыми объектами;
- некорректное отражение сигнала от объектов сложной формы;
- сильная чувствительность к высоким звуковым давлениям, например сильный поток воздуха на датчик.
После тестирования было принято решение разработать собственный модуль датчика расстояния, который бы включал дополнительный сигнал измерения, а именно ИК-излучение. Принцип работы ИК-сигнала измерения схож с ультразвуковым сигналом, только вместо звука — свет. Однако данный вид измерения также не лишен недостатков. Это почти полное поглощение сигнала черными матовыми объектами; некорректное детектирование объектов из стекла; сильная чувствительность к прямым солнечным лучам; меньшее, по сравнению с ультразвуком, максимальное измеряемое расстояние.
Совместная работа двух типов измерений успешно компенсирует недостатки друг друга. В итоге был разработан модуль датчика расстояния, удовлетворяющий всем требованиям для корректного функционирования робота.
Также одной из особенностей разработанного модуля датчика расстояния является световая индикация детектирования объекта. На плате установлен RGB светодиод, по цвету свечения которого можно понять, что датчик получил расстояние до объекта меньше программно установленного значения. Это позволяет в реальном времени понимать как и что «видит» робот.
Датчиков много не бывает
Для уверенной работы и передвижения робота в самом непредсказуемом окружении мы установили в его шасси 16 датчиков препятствий, что дало нам круговой обзор в 360 градусов без наличия «мертвых» зон. Корпус шасси робота разделен на 4 сектора, в которые установлены датчики расстояния. Датчики разделены на отдельные сектора и помещены в части корпуса шасси робота.
Опрос датчиков происходит последовательно: сначала в него отправляется команда для излучения сигналов измерения, после этого датчик переходит в режим ожидания отраженных сигналов. По прошествию таймаута (времени, необходимого для преодоления ультразвуковой волной расстояния 200 см туда и обратно) посылается запрос на получение результата измерения.
Для устранения «ловли» датчиком расстояния чужого отраженного сигнала каждый следующий датчик для опроса располагается в противоположной стороне от предыдущего.
7 раз отмерь
Как уже было сказано, каждый из типов измерения расстояния до препятствий имеет свои недостатки. В частности, ультразвуковые волны могут отражаться от сложных поверхностей (округлые формы, расположение объекта к датчику под острым углом) не перпендикулярно датчику расстояния, в результате чего робот не «видит» препятствие. Для решения проблемы был применен специальный алгоритм «1+2»: один датчик генерирует сигнал измерения расстояния и ждет отраженный, при этом два соседних также ждут этот отраженный сигнал. Если произошло некорректное отражение сигнала измерения, то, скорее всего, отраженный сигнал зафиксирует один из двух соседних датчиков. Отраженный сигнал через разные промежутки времени может вернуться во все три датчика, в таком случае мы получаем три вероятных расстояния до препятствия. Финальным результатом будет наименьшее значение расстояния из трех.
Разработанный датчик расстояния помогает не только ориентироваться в пространстве роботам, но и начинающим робототехникам получать необходимые знания, ведь данный датчик входит в образовательный набор от Promobot «ROBOX».
Автор: Александр Ямщиков