roboforum.ru

Технический форум по робототехнике.
Текущее время: 03 дек 2024, 20:12

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




Начать новую тему Ответить на тему  [ Сообщений: 747 ]  На страницу Пред.  1 ... 23, 24, 25, 26, 27, 28, 29 ... 50  След.
Автор Сообщение
 Заголовок сообщения: Re: Сканирующий лазерный дальномер
СообщениеДобавлено: 07 дек 2013, 13:11 
Не в сети
Аватара пользователя

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

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


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

Зарегистрирован: 29 апр 2011, 12:37
Сообщения: 1672
Откуда: Москва
прог. языки: С
Вот пример Arduino Due DMA: ADC - MEMORY
https://gist.github.com/pklaus/5921022

_________________
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!


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

Зарегистрирован: 12 окт 2008, 12:40
Сообщения: 369
Откуда: Красногорск, Подмосковье
Вручную подправил и дорисовал мебель на карте, которую выкладывал ранее. Крестами отмечены комнаты, в которые робот не заезжал.
Справа хорошо видны ножки стола и двух стульев.
Вложение:
map_flat.png
map_flat.png [ 116.01 КиБ | Просмотров: 2844 ]

Ссылка на исходную карту: post281679.html#p281679

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


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

Зарегистрирован: 26 янв 2012, 03:59
Сообщения: 1341
Откуда: Казань
прог. языки: LabVIEW
ФИО: Никита Есенин
круть. можно робота заставить ехать в нужную область кликом по карте?


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

Зарегистрирован: 12 окт 2008, 12:40
Сообщения: 369
Откуда: Красногорск, Подмосковье
Нет. Мне так и не удалось запустить систему навигации в ROS. То ли это связано с низкой скоростью сканирования, то ли настройки неправильные, то ли еще что-то.
Сейчас я разобрался, как записывать данные от робота при помощи rosbag, благодаря чему появилась возможность проверять работу hector slam, не запуская робота. Теперь хочу попробовать написать фильтр данных дальномера, чтобы картинка стала поприличней.

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


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

Зарегистрирован: 08 апр 2013, 08:09
Сообщения: 303
Откуда: Екатеринбург
ФИО: Сергей
citizen писал(а):

Захватить 256 пикселей мой контроллер, скорее всего сможет, а вот обработать (вычислить максимум) - я не уверен.

Если взять контроллер, работающий на более высокой частоте (48 МГц), то тогда точно успеет захватить.


У вас используется 8МГЦ хотя контроллер STM32F100C4 позволяет работать
до 24 мгц.Частота АЦП может быть до 830 кгц (мне требуется около 500кгц).
Так что похоже возможно перенести контроллер с программой на 256 пиксельную
линейку.

Кстати чем рисовали диск энкодера?Неожиданно не могу ничего найти
подходящего.


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

Зарегистрирован: 12 окт 2008, 12:40
Сообщения: 369
Откуда: Красногорск, Подмосковье
У меня контроллер работает на частоте 24 МГЦ, которые формируются PLL из 8 Мгц кварца.

Энкодер рисовал в Wheel Encoder Generator. Об этом сказано в инструкции, там же указаны настройки.

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


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

Зарегистрирован: 08 апр 2013, 08:09
Сообщения: 303
Откуда: Екатеринбург
ФИО: Сергей
linvinus писал(а):
Вот пример Arduino Due DMA: ADC - MEMORY
https://gist.github.com/pklaus/5921022


Удалось добиться работы 256-пиксельной линейки на плате Due при
скорости сканирования 360 дальностей на оборот и немного быстрее
чем один оборот в секунду.На один замер и обработку программа тратит
примерно 3-4 мкс.Для дальнейшей оптимизации программы,видимо
надо копать в сторону применения DMA и настроек ADC с элементами
ассемблера.


Вложения:
2013-12-22_13-49-26_85.jpg
2013-12-22_13-49-26_85.jpg [ 495.1 КиБ | Просмотров: 2753 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сканирующий лазерный дальномер
СообщениеДобавлено: 22 дек 2013, 18:40 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2011, 12:37
Сообщения: 1672
Откуда: Москва
прог. языки: С
Нескромный вопрос а как вы планируете организовать оптическую схему?
Разве датчик в 256пикселей влезет в гнездо M12?

_________________
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!


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

Зарегистрирован: 08 апр 2013, 08:09
Сообщения: 303
Откуда: Екатеринбург
ФИО: Сергей
Смотри 18 страницу форума(sned » 16 июн 2013, 18:09 ).Если коротко то применю линзу
диаметром 20мм.


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

Зарегистрирован: 29 апр 2011, 12:37
Сообщения: 1672
Откуда: Москва
прог. языки: С
понял, спасибо.

_________________
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!


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

Зарегистрирован: 08 апр 2013, 08:09
Сообщения: 303
Откуда: Екатеринбург
ФИО: Сергей
citizen писал(а):
Ось камеры пересекает ось лазера примерно на посередине между минимальным и максимальным расстоянием. В таком случае на максимальном расстоянии изображение луча будет на одной стороне матрицы, на минимальном - на другой.

Поначалу поверил на слово(про пересечение осей камеры с обьективом посередине).
Сейчас пересчитал по формулам и это совсем не так.Получилось что при
базе между лазером и обьективом в 7-8см,пересечение осей должно быть
на расстоянии примерно 45см для достижения минимального измеряемого расстояния в 15-20см.И неприятный факт что около 80% пикселей
фотолинейки учасвуют в измерении дальности до одного метра,а на свыше
этой дальности всеголиш оставшиеся 20%(т.к.межпиксельные растояния
одинаковые а тригонометрические функции далеко не линейны).В результате
погрешность измерения с расстоянием растет гораздо сильнее чем по
линейному закону.


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

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

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


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

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
sned писал(а):
На деле написанная
програмка для этого показала в 20 раз меньшую скорость вычисления
чем требовалось.

http://habrahabr.ru/post/141442/
http://cyber-place.ru/showthread.php?t=550
вопрос в использованных библиотеках.
стандартные вещи типа DigitalRead() выполняются невероятно долго.

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


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

Зарегистрирован: 08 апр 2013, 08:09
Сообщения: 303
Откуда: Екатеринбург
ФИО: Сергей
Те ссылки не для DUE.Да, DigitalWrite() уже заменил на
прямые команды с регистрами.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 747 ]  На страницу Пред.  1 ... 23, 24, 25, 26, 27, 28, 29 ... 50  След.

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


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

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


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

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