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

Наше хобби — конструировать и программировать.
Демонстрация готовых роботов и устройств построенных своими руками.

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

Сообщение Чугунный Дятел » 11 янв 2015, 21:35

Хорошие результаты, поздравляю! :wink: Как только руки дотянутся до робота, который гоняет до 2мс, тоже будем прикручивать коррекцию для скана, которая будет исправлять искажения от перемещения робота.

Зеркала, по нашим наблюдениям, никак не портят работу SLAM. Разве что проблема в поиске пути, который не против сгонять в зазеркалье.

A от hector_slam, как я и говорил, много не следует ждать, как из любых алгоритмов класса scanmatching/mapmatching. Они, увы, фундаментально не способны долго бороться с накоплением ошибки.

Вы, кстати, Karto SLAM не пробовали? У них есть опенсорсная версия. (Да простит меня начальство за упоминание конкурентов ))) )
Аватара пользователя
Чугунный Дятел
 
Сообщения: 45
Зарегистрирован: 08 мар 2014, 23:00
Откуда: Москва
прог. языки: С++ lua C# C java

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

Сообщение citizen » 12 янв 2015, 09:33

C hector у меня сейчас главная проблема - карта разваливается при быстром вращении робота. Почему - непонятно, ведь данные с дальномера продолжают идти, и обработанный скан даже при вращении выглядит прилично.

Про Karto SLAM впервые услышал. Насколько я понял, у них нет готовых узлов для ROS - узел для работы SLAM придется под себя писать.
OpenSimpleLidar - проект простого самодельного лидара.
Аватара пользователя
citizen
 
Сообщения: 369
Зарегистрирован: 12 окт 2008, 12:40
Откуда: Красногорск, Подмосковье

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

Сообщение sned » 14 янв 2015, 11:24

Создал новую тему:"Система навигации для домашнего робота".
Кому интересно, что за надстройки появились на башне моего лидара смотрите
в темах Наши проекты.
20150112_124331.jpg
sned
 
Сообщения: 303
Зарегистрирован: 08 апр 2013, 08:09
Откуда: Екатеринбург
ФИО: Сергей

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

Сообщение citizen » 25 янв 2015, 23:18

Доработал свою программу-фильтр для ROS - добавил в нее возможность публиковать экстраполированные сканы при вращении робота. Данные одометрии с робота идут чаще, чем с сканы с дальномера, так что удается между реальными сканами публиковать несколько экстраполированных. Таким образом, при вращении робота частота сканов увеличивается. Благодаря этому теперь hector SLAM нормально работает при скорости вращения робота 0.6 рад/сек (оборот за 10 сек). Раньше можно было использовать только 0.3 рад/сек, что совсем мало.
Результат работы:
hector_filt.png


Теперь ковыряюсь с move_base. Уже удалось заставить работать его вместе с hector SLAM, робот едет куда ему указываешь, но локальный путь робота строится как-то странно - вместо того, чтобы ехать по прямо по глобальному пути, move_base строит локальный путь дугами, причем часто довольно большими и сильно уходящими от глобального пути, из-за чего робот сталкивается со стенами.
OpenSimpleLidar - проект простого самодельного лидара.
Аватара пользователя
citizen
 
Сообщения: 369
Зарегистрирован: 12 окт 2008, 12:40
Откуда: Красногорск, Подмосковье

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

Сообщение Чугунный Дятел » 30 янв 2015, 14:34

Можешь записать заезд в rosbag? Исходный скан+одометрия+TF с относительным положением дальномера. Интересно потестировать на нашей навигации.
Аватара пользователя
Чугунный Дятел
 
Сообщения: 45
Зарегистрирован: 08 мар 2014, 23:00
Откуда: Москва
прог. языки: С++ lua C# C java

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

Сообщение kantengri » 30 янв 2015, 16:10

Какие еще сламы пробовали использовать ?
Аватара пользователя
kantengri
 
Сообщения: 36
Зарегистрирован: 24 дек 2014, 19:17
Откуда: Челябинск
Skype: kantengri
прог. языки: c++, java

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

Сообщение citizen » 30 янв 2015, 23:25

Чугунный Дятел писал(а):Можешь записать заезд в rosbag?

В ближайшее время постараюсь.
kantengri писал(а):Какие еще сламы пробовали использовать ?

Пробовал только gmapping и hector slam. gmapping давно уже не запускал, про него в интернете упоминают, что он хуже hector по производительности и точности построения карты.
OpenSimpleLidar - проект простого самодельного лидара.
Аватара пользователя
citizen
 
Сообщения: 369
Зарегистрирован: 12 окт 2008, 12:40
Откуда: Красногорск, Подмосковье

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

Сообщение citizen » 03 фев 2015, 00:46

Опять проблемы с большим пингом до Raspberry вылезли, похоже, нужно менять wifi донгл.
Так что получившаяся запись вышла не совсем хорошая и достаточно короткая - воспроизводить ее нужно до 75 секунды, дальше данные через ROS перестали идти.
Правда, там кроме scan, odom, tf записались еще темы от rviz.
Вложения
data6.zip
(467.4 КиБ) Скачиваний: 0
OpenSimpleLidar - проект простого самодельного лидара.
Аватара пользователя
citizen
 
Сообщения: 369
Зарегистрирован: 12 окт 2008, 12:40
Откуда: Красногорск, Подмосковье

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

Сообщение Madf » 03 фев 2015, 12:57

пишку очень грузит все типы защищенного подключения (SSL), можно подключаться не через пути, а через обычный терминал, меньше нагрузки и лаги
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

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

Сообщение Чугунный Дятел » 03 фев 2015, 14:54

Да, вижу, на 80й секунде затык, а потом секунд через 20 все данные "внезапно" прибыли. Видимо был затык в wifi и TCP долго молчал. По этому поводу лучше rosbag прямо на Pi пытаться запускать, выйдет чуть стабильнее, или брать ещё одну пи, подключать эзернетом и заводить запись на ней (вот блин за такую возможность я и люблю ROS).

Мы немеряно сил потратили чтобы у нас SLAM и всё навигационное работало прямо на бортовом компе (Odroid-U3)

Правка: отредактировал сумку, теперь все сообщения отсортированы по времени создания, а не по времени прибытия. 20секундный затык вычищен (вроде бы). Спасибо надёжной доставке TCP и магии с rosbag. Исправленое во вложении.
Вложения
fixed.bag.bz2
Воспроизводится напрямую через rosbag play fixed.bag.bz2
(367.39 КиБ) Скачиваний: 0
Аватара пользователя
Чугунный Дятел
 
Сообщения: 45
Зарегистрирован: 08 мар 2014, 23:00
Откуда: Москва
прог. языки: С++ lua C# C java

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

Сообщение citizen » 03 фев 2015, 19:06

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

В своем SLAM мои данные не пробовали запустить?
OpenSimpleLidar - проект простого самодельного лидара.
Аватара пользователя
citizen
 
Сообщения: 369
Зарегистрирован: 12 окт 2008, 12:40
Откуда: Красногорск, Подмосковье

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

Сообщение Чугунный Дятел » 04 фев 2015, 13:45

Прикручиваю исправление искажений дальномера при езде робота. Без него всё уезжает, и(ли) требует черезчур много вычислений. На 40Гц дальномере нас такая проблема не сильно мучала )
Аватара пользователя
Чугунный Дятел
 
Сообщения: 45
Зарегистрирован: 08 мар 2014, 23:00
Откуда: Москва
прог. языки: С++ lua C# C java

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

Сообщение Чугунный Дятел » 05 фев 2015, 15:10

Без фильтрации получается пока вот такая вот картина:
Изображение
Это в первые 80сек, дальше данные всё-таки битые, даже в моей попытке исправить. На них заодно ещё и rviz падает.
Дальномер нехило шумит в "дальней" зоне, те дальности тоже надо хорошенько фильтровать. Правда новый алгоритм, который сейчас мы делаем, будет без проблем проглатывать и такое, без дополнительных фильтров.

Можешь подлинее трек записать? В идеале прямо на малине, в стиле rosbag record ... & disown, чтобы оторваться от ssh терминала и проблем со связью.
Аватара пользователя
Чугунный Дятел
 
Сообщения: 45
Зарегистрирован: 08 мар 2014, 23:00
Откуда: Москва
прог. языки: С++ lua C# C java

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

Сообщение citizen » 05 фев 2015, 23:51

В принципе, достаточно хорошо получилось - в hector slam без фильтрации при вращении карта начинает разваливаться уже на первом полуобороте.
Дальномер нехило шумит в "дальней" зоне, те дальности тоже надо хорошенько фильтровать.

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

Можешь подлинее трек записать? В идеале прямо на малине, в стиле rosbag record ... & disown, чтобы оторваться от ssh терминала и проблем со связью.

Нужен более длинный трек по времени, или по пространству? Просто в той области, что сейчас на карте, роботом еще можно управлять визуально, а дальше - только до данным с дальномера, которые приходится наблюдать по rviz. Тут-то и вылезают проблемы с wi-fi.
Если уж и удастся записать трек, то только на выходных.
OpenSimpleLidar - проект простого самодельного лидара.
Аватара пользователя
citizen
 
Сообщения: 369
Зарегистрирован: 12 окт 2008, 12:40
Откуда: Красногорск, Подмосковье

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

Сообщение Чугунный Дятел » 07 фев 2015, 01:55

И то и другое: неплохо было бы объехать всю квартиру, общим временем минуты на 4
Аватара пользователя
Чугунный Дятел
 
Сообщения: 45
Зарегистрирован: 08 мар 2014, 23:00
Откуда: Москва
прог. языки: С++ lua C# C java

Пред.След.

Вернуться в Наши проекты

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

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

cron