Вторник, 12 февраля 2019 14:33

Lidar на Arduino.

Оцените материал
(0 голосов)

Общее

Для точного трехмерного сканирования помещения я создал этот Lidar (LIght Detection And Ranging) турель. Основан он на Garmin ™ LIDAR-Lite v3, который сканирует свое окружение с помощью инфракрасного лазерного луча сама платформа вращается с помощью небольших серводвигателей. Это видео показывает, что в итоге получилось:

Время сканирования в основном зависит от выбранного шага серводвигателей. Диапазон составляет от менее минуты до 30 минут (полное разрешение, более 32 000 точек данных). Точность измерений составляет около 1 см, дальность до 40 метров.

Программное обеспечение для сбора и визуализации, которое я создал для этого проекта, может извлечь облако точек для дальнейшего использования (3D-печать, программное обеспечение CAD и т. Д.).

Аппаратная часть

С аппаратной точки зрения сканер довольно прост: два 9-граммовых микромотора контролируют оси вращения поворота и наклона. Корпус, конструкции, напечатан на 3D-принтере.

Что касается электроники, я использовал:

servos

Файлы для 3D печати

  1. Arduino Nano : контроллер для турели. Он управляет серводвигателями и управляет лидаром, выполняя небольшое количество вычислений для вывода облака точек.
  2. LIDAR Lite V3 компактный, высокопроизводительный оптический датчик измерения расстояния Или более дешевый аналог TFmini Работать он будет на более коротком расстоянии (12м)
  3. Серводвигатели 9g SG90 приводы для поворота лидара. Хотя эти слабые двигатели являются основным слабым местом в системе, я использовал их просто потому, что они у меня уже были. Некоторые более мощные и менее «шаткие» сервоприводы определенно улучшат качество и скорость захвата.
  4. Конденсатор на 1000 мкФ этот большой электролитический конденсатор предотвращает перезагрузку микроконтроллера во время скачков тока, создаваемых как лидаром, так и двигателями.

Вот схема подключения моей лидарной башни:

circuit bb

1

 

Софт

Программное обеспечение, управляющее этим проектом, разделено на две отдельные части кода: сторона микроконтроллера и программное обеспечение для сбора / визуализации данных. Это, конечно, полностью открытый исходный код, и вы можете скачать полный исходный код для обеих частей, нажав на эту кнопку:

Программное обеспечение

 

Код Arduino

Благодаря библиотекам Arduino Servo.h и LIDARLite.h, код для управления этими элементами стал намного проще. Основной рабочий процесс кода заключается в следующем:

  Init. lidar, servos and serial;
  For YawAngle = 0 to 180
    For PitchAngle = 0 to 180
      Compute coordinates;
      Send value;

Если вы используете TFmini то вместо библиотеки LIDARLite.h вам потребуется библиотека TFMini.h

Микроконтроллер знает углы сервоприводов и расстояние до препятствия. Небольшое количество вычислений требуется, чтобы преобразовать угол поворота, угол наклона и информацию о дальности в гораздо более удобные координаты X, Y и Z.

spherical coord

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

 

Программное обеспечение для сбора и визуализации данных

Чтобы собирать, отображать и использовать данные, я создал программное обеспечение с использованием Processing. Это очень удобный Java-фреймворк с открытым исходным кодом, созданный для работы, связанной с графикой. LidarViewer считывает последовательный порт для получения данных; отображает его в виде трехмерного облака точек, которое мы можем масштабировать, перемещать, поворачивать и перемещать; и сохраняет его в файл, чтобы мы могли использовать его позже (например, в Meshlab).

LidarViewer

 

Источник

Author

Bender

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

Комментарии (0)

There are no comments posted here yet

Оставьте свой комментарий

  1. Posting comment as a guest. Sign up or login to your account.
Вложения (0 / 3)
Share Your Location

О нас

Основой деятельностью портала является показ и объяснение что представляет собой выражени "Робот", "Робототехника", "Законы робототехники", "Мехатроника", "Искусственный интеллект(ИИ)". 

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