banner
Дом / Блог / Как использовать лидар с Raspberry Pi
Блог

Как использовать лидар с Raspberry Pi

Nov 29, 2023Nov 29, 2023

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

Мой интерес к измерению расстояний для обхода препятствий возник с момента моего участия в конкурсе НАСА по возврату образцов (SRR) 2013 года. Я использовал веб-камеру для обработки изображения и пробовал различные визуальные методы для проведения измерений, но без особого успеха. На конкурсе двое участников использовали сканирующие лидары, что меня заинтересовало.

Лидар — это лазерный прибор для измерения дальности. Название представляет собой комбинацию терминов LIght и raDAR, а не аббревиатуру, полученную, как обычно предполагается, по образцу его предшественника «RAdio Detection And Ranging». По данным Merriam-Webster, этот термин был впервые использован в 1963 году. Одним из первых применений лидара было измерение облаков и поверхности Луны на Аполлоне-13. По мере того, как лазеры уменьшались в размерах, были найдены и другие применения, в том числе в качестве дальномера в военных целях.

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

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

Вы знакомы с тем, как работают базовые радары и гидролокаторы: отправьте импульс и измерьте время, необходимое для получения обратного сигнала. Время, разделенное на скорость света или звука, дает расстояние, которое прошел сигнал туда и обратно. Разделите это значение на два, чтобы получить расстояние до объекта. Это измерение времени полета (ToF).

Как вы могли догадаться, все становится сложнее, учитывая скорость света. Пионер в области компьютеров, контр-адмирал Грейс «Удивительная Грейс» Хоппер раздавал куски проволоки длиной 11,80 дюйма, чтобы продемонстрировать расстояние, которое свет проходит за наносекунду в вакууме. В случае с роботами именно эту величину расстояния мы и хотим измерить. трудно измерить расстояние менее метра, отправляя только импульс и синхронизируя обратный сигнал, потому что сигнал возвращается примерно через 7 наносекунд.

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

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

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

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

Чего я не знал, участвуя в NASA SRR 2013 года, так это того, что Neato Robotics выпустила пылесос в 2010 году, использующий сканирующий лидар для определения окружения пылесоса. Это позволяет роботу избегать препятствий, а не натыкаться на них, как это делали предыдущие роботы-пылесосы.