roboforum.ru

Технический форум по робототехнике.

Сканирующий лазерный дальномер

Re: Сканирующий лазерный дальномер

RootAdmin » 05 июн 2014, 23:37

С веб-камеры вполне реально получить 10 сканов ОДНОЙ линии в секунду. С учетом кадров "без лазера" для вычитания фона. forum87/topic11877-15.html?hilit=rootadmin#p297010
Исходники дать?

Re: Сканирующий лазерный дальномер

citizen » 06 июн 2014, 00:05

И в темноте 10 кадров?
Камеры очень часто автоматически уменьшают FPS при падении освещенности.
При солнечной засветке линия становится плохо различима, при увеличении расстояния до объекта - тоже.
У меня дальномер за секунду делает больше 1000 измерений расстояния (линейка считывается 2000 раз).
3d информация о пространстве мне не нужна.

Re: Сканирующий лазерный дальномер

RootAdmin » 06 июн 2014, 00:49

Не говорю, что мой подход лучше. Вопрос был поднят: "можно ли использовать вебку?" Ответ - можно. :)

Re: Сканирующий лазерный дальномер

sned » 02 июл 2014, 09:58

Наконец то запустил свой дальномер(не прошло и года :roll:,но ремонт
новой квартиры тоже потребовал много времени).
20140629_193411.jpg

Используется оптическая линейка на 256 пикселей.Оптика состоит из
линзы диаметром 20 мм с фокусным расстоянием 50 мм помещенную в выточенную
из дюраля трубку.Диаметр вращающейся "башни" 110 мм,высота 25мм.
2014-05-05_16-54-03_381.jpg

Вообще потребовалось выточить на токарном всего две детали:это выше упомянутая трубка и шкив с помощью которого вращается дальномер.
Шкив установлен на передаточную проводную муфту с помощью которой все сигналы от линейки и лазера на подвижной части соединены с контроллером-Arduino DUE на основании.
2014-05-05_16-53-45_753.jpg

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

ТТХ: Минимальная дальность определения расстояния 25 см.
Максимальная дальность определения расстояния 700 см.
Скорость сканирования: 2 об/сек по 360 замеров на оборот.
Точность определения:погрешность 5-10 cм на дальности 4 м;
на максимальной дальности погрешность существенно выше и
разброс показаний достигает до метра.

Минимальную дальность наверное в дальнейшем все таки уменьшу до 15см
путем смещения оси лазера,при этом максимальная дальность тоже должна
уменьшиться.

На этом скрине получились сильные помехи и засветки от яркого солнца.
Дальномер был без интерференционного фильтра.
fo.jpg

Интерференционный фильтр для световой волны 780нм.
Куплен был на ebay,называется Optical-Interference-Filter-780DF30-25-4-mm.
Что интересно с одной стороны он зеркальный, а с другой красный.Отличий
от стороны установки для пропускания света от лазера не нашел.
На волне 780нм ослабление полезного сигнала 20% и практически 100%
не пропускание на остальном рабочем диапазоне.
20140630_195005.jpg

20140630_195020.jpg


Прикрепил его пока по быстрому на изоленту.
20140630_165413.jpg

Результат работы понравился.
fo1.jpg


Практически полностью на скрине исчез "мусор" от засветки солнечного
или другого сильного источника света. Лучше стали видны другие цели.
В дальнейшем надо попробовать изменить питание лазера с 3 до 5 вольт,
и окончательно дособрать дальномер.Возможно придется перекалибровать и
изменить некоторые настройки алгоритма "центроида".
20140629_194056.jpg

20140629_194031.jpg
Последний раз редактировалось sned 02 июл 2014, 13:05, всего редактировалось 1 раз.

Re: Сканирующий лазерный дальномер

citizen » 02 июл 2014, 12:44

Поздравляю! Достаточно интересная конструкция получилась.
Фильтр все-таки не поляризационный, а интерференционный (блестит как раз интерференционное покрытие).
Как я и говорил, использование фильтра заметно помогает (у меня от засветки точно такие же помехи). Только дороговаты такие фильтры.
Для лазерного луча отверстие в крышке не сверлили? На фотографиях его не видно.

Re: Сканирующий лазерный дальномер

sned » 02 июл 2014, 13:14

Спасибо.Да конечно фильтр интерференционный.Поправил.Обошелся с доставкой за 1000р.
Отверстие есть небольшое.
20140629_193447.jpg

Re: Сканирующий лазерный дальномер

Madf » 02 июл 2014, 14:25

странный фильтр какой-то..(обычно он выглядит просто черным стеклышком)
надо было просто уходить в ИК диапазон и ставить соответствующий фильтр на длину волны (он полностью отрезает видимую область) или добавить его

Re: Сканирующий лазерный дальномер

citizen » 02 июл 2014, 14:48

Интерференционные фильтры блестят - они отражают всё падающее на них излучение, за исключением определенного узкого участка спектра, в котором они пропускают излучение.
Обычные светофильтры поглощают "ненужное" излучение, поэтому ИК фильтры - черные. Такие светофильтры имеют лишком широкий диапазон пропускаемого излучения.
В данном случае лазер и так работает в ИК - 780нм, интерференционный светофильтр пропускает излучение в диапазоне 780+-20нм.

Re: Сканирующий лазерный дальномер

Широкий » 13 июл 2014, 23:00

Ну не могу понять - нахрена все приблуды крутить? Неужели нельзя крутить призму или зеркало на худой конец, а элементы сканера оставить на плате?
Посмотрите устройство стационарного сканера штрихкода или лазерного принтера.

Re: Сканирующий лазерный дальномер

citizen » 14 июл 2014, 13:28

Зеркала в теме уже обсуждались. Так как расстояние между объективом и матрицей большое, то для кругового сканирования и зеркало потребуется крупное - не менее 8x8 см. В дальномерах, не не использующих триангуляцию, можно сделать зеркало поменьше - http://www.hizook.com/blog/2008/12/15/sick-laser-rangefinder-lidar-disassembled
И в принтере, и в сканере штрихкодов принцип работы совершенно другой, и луч отклоняется на достаточно небольшой угол.

Re: Сканирующий лазерный дальномер

sned » 20 авг 2014, 08:43

Как я здесь писал мне удалось купить лидар от Neato (на ebay за 70$).
В связи с чем меня беспокоил вопрос: раз уже сейчас можно приобрести за
недорого знаменитый "неатовский" лидар то не зря ли я потратил время
на постройку своего? Ведь по цене можно не считать,однозначно постройка
своего лидара вышла дороже (стоимость всех комплектующих будет меньше но
это от лукавого,заказ выточить две детальки на токарном обошолся прямо сказать не дешево).
Ну что ж,после тестирования лидара от Neato склоняюсь больше к своему.
20140819_150143.jpg

Сразу отмечу,что основная моя цель применения лидара это осуществление
навигации робота по известной карте местности ну и конечно определение препятствий.
Ниже показаны два изображения сканирования одного и того же помещения лидарами из примерно одного местоположения.Одно сделано "неатовским" лидарм другое моим (описание его можно посмотреть
несколькими постами выше).
Красной линией я показал примерные контуры помещения.Извините за корявость.
Скан от Neato:
Безымянный.jpg

Скан от “меня”.
Безымянный2.jpg

Теперь сравнение по порядку.
Точность определения целей до 2 метров практически одинакова.Но у Neato надо отметить
покрасивее, показания дальности как влитые ,не меняются от оборота к обороту.У моего
присутствуют колебания в несколько миллиметрах.А вот дальше интересно.На больших
дальностях Neato несколько завышает показания.Так на фактической дальности 3.35 метра
показывает 3.5 метра.Мой точнее.Плюс минус 5см.Напомню,что в Neato применена
светочувствительная линейка свыше 2000 пикселей,на моем всего 256 пикселей.
Дальность определения целей.
Neato свыше 4 метров уже видит не все и практический предел 5 метров при хорошей отражающей поверхности цели. У моего эти показатели на 2 метра выше хотя на предельных дальностях точность значительно падает.
Также надо отметить что Neato плохо видит темные поверхности.Так например темная
под дерево ДСП поверхность шкафа (показана на фото) даже с близкого расстояния определяется только на перпендикулярных углах. Немного под углом и уже не видется. У моего значительно получше.
Раньше я писал, что столкнулся с проблемой “засветки” дальностей от яркого солнца или
сильного источника света в своем лидаре, которую практически победил используя
интерференционный фильтр. У Neato с этим нет никаких проблем.По крайней мере
мощные лампы нисколько не влияют на его работу. Солнца не было пока.
Мне кажется это связано с применением в Neato лазера красного цвета (в моем стоит
инфракрасный лазер).
На скане от Neato виден “мусор ” вблизи вокруг радара. Прошу на это не обращать
внимание. Программу отображения сканирования на компьютере писал в Processinge
и мне не достаточно хорошо удалось наладить связь между Neato и компьютером.
Neato непрерывно посылает данные своих замеров (не поблочно) и я еще не до конца разобрался.
При приеме некоторая часть данных видимо теряется или искажается но на общую картину это
не влияет сильно.
Также не пойму как расшифровывать данные от Neato о скорости вращения.
Скорость кодируется двумя байтами ,к примеру первый 212 и второй 68.
Что это значит?
Подытожу.Мой дальномер получился по ряду характеристик(дальность и надежность обнаружения
целей) лучше чем у Neato,но по стабильности показаний некоторое преимущество у Neato.

Re: Сканирующий лазерный дальномер

citizen » 20 авг 2014, 21:03

Neato свыше 4 метров уже видит не все и практический предел 5 метров при хорошей отражающей поверхности цели. У моего эти показатели на 2 метра выше хотя на предельных дальностях точность значительно падает.
Также надо отметить что Neato плохо видит темные поверхности.Так например темная
под дерево ДСП поверхность шкафа (показана на фото) даже с близкого расстояния определяется только на перпендикулярных углах. Немного под углом и уже не видется. У моего значительно получше.

Возможно, у вас на дальномере лазер немного мощней, чем в Neato.
Из вашего предыдущего сообщения:
Скорость сканирования: 2 об/сек

Чем меньше скорость, тем больше экспозиция и лучше сигнал.
Работу вашего дальномера и Neato правильней сравнивать при сходных скоростях сканирования.

связано с применением в Neato лазера красного цвета

Разве в Neato видимый лазер?
Кроме того, в Neato вроде бы есть фильтр, вфет лазера на защищенность от помех влияет мало.


ROS не пытались использовать?
Neato хорош именно своей скоростью работы - до 10 об/сек. Мне явно не хватает 3,5 об/сек моего дальномера при построении карты - приходится снижать скорость робота.

Re: Сканирующий лазерный дальномер

Madf » 20 авг 2014, 21:35

citizen писал(а):Разве в Neato видимый лазер?

Нет, он в ИК диапазоне.

Re: Сканирующий лазерный дальномер

sned » 21 авг 2014, 08:26

Madf писал(а):
citizen писал(а):Разве в Neato видимый лазер?

Нет, он в ИК диапазоне.


Лазер в Neato включается только при достижении определенных оборотов.
И даже при вращении виден промигивающий красный свет лазера.Утверждать
не буду, что это его основной спектр но он есть и весьма сильный.Кстати в Neato лазер покрупнее чем у меня или лидара от citizen(они у нас походу одинаковые :D ) и к нему подходят три провода.

citizen писал(а):Чем меньше скорость, тем больше экспозиция и лучше сигнал.
Работу вашего дальномера и Neato правильней сравнивать при сходных скоростях сканирования.

Для меня важна достоверность и полнота картинки полученная лидарами.
Поэтому Neato я не разгонял и скорость была около 3 об.сек.(это примерно на глаз,пока не пойму как считается скорость в Neato).
Понятно что чем меньше скорость, тем больше экспозиция и лучше сигнал
но в моем дальномере повышение дальности связано с большей,лучшей
оптикой чем со всем остальным.Можно конечно на Neato поставить другую
оптику или занизить до предела скорость вращения но это уже будет другая песня, поэтому сравнивал по факту.
citizen писал(а):ROS не пытались использовать?
Neato хорош именно своей скоростью работы - до 10 об/сек. Мне явно не хватает 3,5 об/сек моего дальномера при построении карты - приходится снижать скорость робота.

Хм... 10 об/сек.На форумах пишут о начале потери данных уже начиная
с 360 об/минуту(и по моим наблюдениям это так).
Не со всем понимаю необходимость в скоростях выше 2 об/сек.
На лидарах использующие триангуляционный метод существенно
повысить скорость сканирования все равно практически невозможно.
То что ROS не может корректно работать на небольших скоростях сканирования
то это проблема внутрипрограмная "росовская" мне кажется.

Re: Сканирующий лазерный дальномер

citizen » 21 авг 2014, 10:19

То что ROS не может корректно работать на небольших скоростях сканирования
то это проблема внутрипрограмная "росовская" мне кажется.

Так оно и есть. Программы SLAM самого ROS и hector slam рассчитаны на работу с фазовыми дальномерами, которые могут работать на скоростях до 40 об/сек. Дешевые триангуляционные дальномеры пришли в любительскую робототехнику недавно - после появления Neato и расшифровки его протокола.
Уже сам задумался о написании своей программы локализации на готовой карте по данным дальномера.


Rambler\'s Top100 Mail.ru counter