roboforum.ru

Технический форум по робототехнике.
Текущее время: 26 ноя 2024, 18:51

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 747 ]  На страницу 1, 2, 3, 4, 5 ... 50  След.
Автор Сообщение
 Заголовок сообщения: Сканирующий лазерный дальномер
СообщениеДобавлено: 13 окт 2012, 23:58 
Не в сети
Аватара пользователя

Зарегистрирован: 12 окт 2008, 12:40
Сообщения: 369
Откуда: Красногорск, Подмосковье
Вдохновившись лазерным дальномером, установленном на пылесосе Neato http://robocraft.ru/blog/robots/725.html, захотел себе подобный. Ну а поскольку все знают, сколько стоит дальномер, то остается один выход - собрать самому!

Проще всего сделать дальномер, работающий по тому же принципу, что и в вышеуказанном пылесосе. Это триангуляционный метод, он упоминается здесь: http://roboforum.ru/forum4/topic2001.html, а принцип работы описан здесь https://sites.google.com/site/todddanko/home/webcam_laser_ranger.
Получившаяся конструкция достаточно проста.
Самая труднодоставаемая часть - это светочувствительная линейка. Все что я смог найти - TSL1401, с довольно низким разрешением (128 пикселей). Покупал на ebay, за 15 долларов. Фокусирующая линза (f' = 13 мм) - из окуляра микроскопа. Поскольку разрешение маленькое, приходиться использовать большое базовое расстояние - 10 см. Также на контроллере производится математическая обработка сигнала, позволяющая повысить разрешение до 1/10 пикселя.
Микроконтроллер - STM32F100C4.
Лазер - из DVD привода, так как мощности обычного лазерного модуля на 3 мвт не хватило. Мощность лазера в своем дальномере определить не могу, скажу только, что при постоянно работающем лазере через него идет ток 70 ма. Лазер включается на время, за которое конструкция поворачивается на 1/3 градуса, 2/3 он выключен.
Связь с компьютером организована при помощи bluetooth модуля.
Характеристики дальномера - 3 оборота в секунду, 360 измерений на оборот, точность определения расстояния - на 1 м примерно 1 см, на 3 м примерно 10 см. Минимальное измеряемое расстояние - 16 см.
Из-за того, что скорость вращения двигателя постоянно меняется, приходится постоянно корректировать скорость измерений, и для измерения скорости пришлось установить энкодер из мыши.

Фотографии готового устройства:
Изображение
Двигатель из старого HDD использован как опора для вращающейся части - в двигателе хорошие подшипники, нет люфтов, и есть отверстия с резьбой для крепления. В оси двигателя было отверстие, в которое я вставил стержень. На конце стержня - металлическая площадка, провод от которой проходит сквозь ось. Стержень и площадка служат для передачи питания на основную часть дальномера. Позже я установил на стержень энкодер от мыши, так что энкодер неподвижен относительно доски. На фотографии виден скользящий контакт, позже я его убрал.

Изображение
Вид на управляющую плату. Подстроечный резистор служит для регулировки тока через лазер.

Изображение

Изображение
Общий вид дальномера. Хорошо виден модуль лазера. Юстировка производится двумя винтами, лазер снизу подпружинен. Сразу скажу, что юстировка не отличается особой сложностью, так как при приближении препятствия к лазеру растет размер пятна, что компенсирует погрешности юстировки. Так что юстировка производится один раз на большом расстоянии.

Изображение
Вид спереди. В центре фотографии виден диск энкодера из мыши.

Результаты работы:
Изображение
Такую картинку дает дальномер, установленный в комнате.

Изображение
Изображение
Сама комната.
Как видно, дальномер смог обнаружить стул, но это удается ему только на близком расстоянии. На белом шкафу видны вспышки лазера.

В коридоре:
Изображение
Изображение
Изображение

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

Демонстрация работы дальномера.


Основная задача теперь - обработка полученной информации, то есть определение положения робота в комнате. Подумываю об использовании ROS.

Разработана новая версия дальномера и выложена инструкция по сборке - смотреть тут: http://roboforum.ru/post278930.html#p278930 и тут forum10/topic12095-285.html#p281288
Там же выложена схема и исходный код.
Изображение

Разработана 3 версия дальномера (OpenLidar):
https://geektimes.ru/post/275442/
Изображение

Разработана 4 версия дальномера (OpenSimpleLidar):
post380962.html#p380962
Изображение

_________________
OpenSimpleLidar - проект простого самодельного лидара.


Последний раз редактировалось citizen 25 фев 2018, 19:26, всего редактировалось 13 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сканирующий лазерный дальномер
СообщениеДобавлено: 14 окт 2012, 00:22 
Не в сети

Зарегистрирован: 09 окт 2012, 21:17
Сообщения: 1
Хм не плохо...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сканирующий лазерный дальномер
СообщениеДобавлено: 14 окт 2012, 12:32 
Не в сети

Зарегистрирован: 24 апр 2010, 14:47
Сообщения: 736
Откуда: Уфа
прог. языки: avr asm
Это не неплохо, это офигенно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сканирующий лазерный дальномер
СообщениеДобавлено: 14 окт 2012, 12:50 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
Реально круто... Но вот сразу проблема параллаксных(или как их назвать?) дальномеров - с трудом находит небольшие предметы. Сканировать надо?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сканирующий лазерный дальномер
СообщениеДобавлено: 14 окт 2012, 13:22 
Не в сети
Аватара пользователя

Зарегистрирован: 12 окт 2008, 12:40
Сообщения: 369
Откуда: Красногорск, Подмосковье
Сканировать что?
По поводу небольших предметов - на небольших расстояниях довольно мелкие детали видно (думаю, робот увидеть ножки стула и выбраться из под него). На больших расстояниях мелкие детали не видно за счет потери точности, но там и не так важно видеть мелкие детали.

_________________
OpenSimpleLidar - проект простого самодельного лидара.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сканирующий лазерный дальномер
СообщениеДобавлено: 14 окт 2012, 13:32 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
Горизонталь, ну вы собственно и сканируете, я плохо вчитался. На форуме кто-то(кажется Nesenin) только что брался за такой же дальномер на основе вебкамеры. Там получается совсем бюджетно и неплохо по разрешению.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сканирующий лазерный дальномер
СообщениеДобавлено: 14 окт 2012, 13:36 
Не в сети
Аватара пользователя

Зарегистрирован: 12 окт 2008, 12:40
Сообщения: 369
Откуда: Красногорск, Подмосковье
Однако камера 360 градусов охватить не может, и у нее довольно низкий FPS. А еще здесь лазер модулируется, что позволяет работать в большом диапазоне освещенностей.

_________________
OpenSimpleLidar - проект простого самодельного лидара.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сканирующий лазерный дальномер
СообщениеДобавлено: 14 окт 2012, 13:37 
Не в сети

Зарегистрирован: 24 апр 2010, 14:47
Сообщения: 736
Откуда: Уфа
прог. языки: avr asm
На фотографии с большой выдержкой видно, что точки замера накладываются друг на друга с каждым оборотом. Может, давать смещение с каждым оборотом? Или замерять через угол, к которому 360 не будет кратно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сканирующий лазерный дальномер
СообщениеДобавлено: 14 окт 2012, 13:48 
Не в сети
Аватара пользователя

Зарегистрирован: 12 окт 2008, 12:40
Сообщения: 369
Откуда: Красногорск, Подмосковье
А про какое место на фотографии вы говорите? На самом деле ничего накладываться не должно, так как время включения лазера определяется по датчику нуля (оптопара, торчит рядом с камерой), и энкодеру. Проблема в том, что по энкодеру определяется скорость, а не положение, так что к концу оборота ошибка накапливается. Это приводит к смещению на 1 точку захвата в правой части изображения (дальномер вращается против часовой стрелки).

_________________
OpenSimpleLidar - проект простого самодельного лидара.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сканирующий лазерный дальномер
СообщениеДобавлено: 14 окт 2012, 14:03 
Не в сети

Зарегистрирован: 24 апр 2010, 14:47
Сообщения: 736
Откуда: Уфа
прог. языки: avr asm
Я к тому, что хорошо бы на первом круге брать замеры 0°, 1°, 2°,... , на втором 0.33°, 1.33°, 2.33°,... и т.д.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сканирующий лазерный дальномер
СообщениеДобавлено: 14 окт 2012, 14:07 
Не в сети
Аватара пользователя

Зарегистрирован: 12 окт 2008, 12:40
Сообщения: 369
Откуда: Красногорск, Подмосковье
Хотите повысить количество данных таким образом? Однако это приведет к тому, что для получения всей картины придется ждать 2 оборота. При этом, точности вблизи и так хватает, а вдали разницы никакой уже не будет.

_________________
OpenSimpleLidar - проект простого самодельного лидара.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сканирующий лазерный дальномер
СообщениеДобавлено: 14 окт 2012, 14:38 
Не в сети

Зарегистрирован: 24 апр 2010, 14:47
Сообщения: 736
Откуда: Уфа
прог. языки: avr asm
Да, хотим больше данных - ждем, не хотим - не ждем и читаем один круг, ничего не теряя про сравнению с текущим вариантом. Вдали должна быть разница же. На трех метрах шаг замера 26 мм, или 9 мм, например. Дальность обнаружения стула должна возрасти, в теории.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сканирующий лазерный дальномер
СообщениеДобавлено: 14 окт 2012, 15:00 
Не в сети
Аватара пользователя

Зарегистрирован: 12 окт 2008, 12:40
Сообщения: 369
Откуда: Красногорск, Подмосковье
Только картинка мигать будет - то есть стул, то нет.

_________________
OpenSimpleLidar - проект простого самодельного лидара.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сканирующий лазерный дальномер
СообщениеДобавлено: 14 окт 2012, 15:09 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
Кстати, если делать дальномер на камерах, то можно воткнуть целую пачку разноцветных лазеров со смещением, получим в теории 3-4 замера за каждые 2 кадра.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сканирующий лазерный дальномер
СообщениеДобавлено: 14 окт 2012, 15:43 
Не в сети
Аватара пользователя

Зарегистрирован: 12 окт 2008, 12:40
Сообщения: 369
Откуда: Красногорск, Подмосковье
Голубой лазер довольно дорого стоит, и поскольку в случае камеры лазер не промодулировать, то для повышения качества обнаружения камеру лучше закрыть светофильтром, что не позволяет использовать несколько лазеров. Кроме того, у большинства камер величина fps зависит от освещенности, и при плохой освещенности fps сильно падает. Также в камерах не всегда быстро вычисляется экспозиция.

_________________
OpenSimpleLidar - проект простого самодельного лидара.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 747 ]  На страницу 1, 2, 3, 4, 5 ... 50  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO