roboforum.ru

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

ROS, Raspberri Pi, RPLidar, Pixhawk и все-все-все

ROS, Raspberri Pi, RPLidar, Pixhawk и все-все-все

=DeaD= » 10 ноя 2016, 22:52

Обратились ко мне из ВУЗа через знакомых, просят помочь с роботами, которых у них два вида.

В том числе один из видов - наземные, на борту Raspberri Pi, RPLidar, PixHawk, установлена ROS, в ней вроде бы запущен SLAM.

Задача у них - отладить алгоритмы верхнего уровня, которые крутятся на настольных машинах (в будущем - на центральных серверах будут крутиться), а роботы им нужны чисто как исполнительные элементы для алгоритма, но от роботов требуется уметь определять своё положение. Поэтому ROS, SLAM и Lidar.

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

Я в целом картинку представляю (судя по тому, что у них сейчас вообще какого-бы то ни было плана действий не видать), но с ROS не работал и с SLAM+Lidar в нём тем более.
Есть студент, который вроде уже начал в ROS разбираться, но тоже один в этой задаче тонет.

Прошу совета, насколько там всё сложно в освоении, сколько часов может занять, если я в Linux не особо спец.
И сразу - может кто советами сможет помогать по ROS, по SLAM в нём, по лидарам, по установке на Raspberri Pi.

Со своей стороны, если возьмусь, обещаю максимально делиться наработками, компетенцией и вообще :)

Re: ROS, Raspberri Pi, RPLidar, Pixhawk и все-все-все

metric » 10 ноя 2016, 23:23

как то все в кучу у вас.
если pixhawk то mavlik для управления самое то.
на малинку скорее всего прицепили лидар, там же и ROS?
зачем "координаты роботов между собой синхронизировать" ? слегка сумбурно задачу описали.

Re: ROS, Raspberri Pi, RPLidar, Pixhawk и все-все-все

=DeaD= » 11 ноя 2016, 00:04

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

В связи с этим второй тип роботов - квадрокоптеры. На них стоят PixHawk + Optical Flow Sensor Smart Camera. Возможно это по их задумке должно было дать INDOOR NAVIGATION.
С летающими роботами у них пока полный атас, оно конечно 1 раз взлетало, но и на этом пока всё. Начинать процедуры "реанимации проекта" по любому надо с наземных роботов.

На малинку повешен лидар и типа поставлена ROS, чтобы робот мог определять свои координаты. Тут всё логично. Не знаю только, как там с вычислительными мощностями на малинке, чтобы качественно СЛАМ решать.

В итоговой задаче я предвижу проблему - еще не спрашивал, уже после встречи подумал, но как они собираются между собой координаты роботов увязывать? Если они со всеми роботами общаются по MAVLink, то они максимум GPS-привязку смогут сделать, никакой другой координации их между собой сейчас не предусмотрено. Пусть даже каждый робот в локальном пространстве сможет свои перемещения с точностью 5см отслеживать, но между собой координаты роботов надо как-то стыковать, иначе они друг друга сбивать будут (особенно квадрики).

Добавлено спустя 18 минут 14 секунд:
Первая крупная проблема у них сейчас - реанимировать наземного робота и доделать/запустить второго робота.

Если я подключаюсь, то первым делом буду осваивать ROS, особенности её установки на малину и так далее. Сейчас они завязли с этим.

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

Re: ROS, Raspberri Pi, RPLidar, Pixhawk и все-все-все

esisl » 11 ноя 2016, 00:22

Мне почему-то сразу старый советский анекдот вспомнился:
Приходят в универ два человека в чёрных костюмах и чёрных очках. Представляются так оригинально: "мы из одной организации", и просят посмотреть систему дифуравнений на предмет аналитического решения. Вызвали кого-то из математиков, он смотрит-смотрит на листок, а потом изрекает: "Ааа!! Орудие на железнодорожной платформе?"

:D

Re: ROS, Raspberri Pi, RPLidar, Pixhawk и все-все-все

metric » 11 ноя 2016, 00:39

Optical Flow это совсем не для slam, коптер просто будет держать позицию не сильно удаляясь от заданной точки. и то только когда под ним нет подвижных элементов - на ковре/асфальте работает, на высокой траве только когда ветра совсем нет.

свежий пример slam & rpi3 https://geektimes.ru/post/281760/

по mavlink'y скорее всего отправляются команды только pixhawk'у, а связь с малинками может быть и другой. те если у них централизованное управление, то обработка всех поступающих данных даст координаты и направление каждого робота. если они автономны, те с малинки через uart по mavlink'у идут данные в pixhawk, то тут тоже есть варианты, но подход будет немного отличаться и одним сламом не отделаться. конечно, если нет заранее просчитанной карты.

Что хочется в итоге получить, я суть пока не уловил. "отработка группового взаимодействия наземных и летающих роботов", для каких целей? взаимодействие оно разное. я например сейчас доделываю что то наподобии http://youtu.be/1CjX1r-gh8U

Re: ROS, Raspberri Pi, RPLidar, Pixhawk и все-все-все

Vooon » 11 ноя 2016, 00:43

ROS на малину ставится, но только если это Pi2 или 3.
На первой лучше даже не начинать — кучу времени убьют, а работать будет так-себе.
А так, берешь образ Ubuntu armhf 14.04 (сразу скажу я это делал в прошлом году, пока не разбил ская окончательно, в этом не летал). Далее по мануалу на wiki.ros.org.

PX4 умеет работать в локальных координатах, но origin им придется задавать (и с этим точно будут проблемы).
Еще оговорюсь, что меня не интересовала тема in-door полетов, как и группового запуска. И до всякого продвинутого управления у меня так и не дошло, опять только связал ужа с ежом…

С наземными наверное лучше всего смотреть на kobuki.

А для летучих можно взять мой piece of software, оно вполне работает, хотя порой думаю что лучше бы сразу DroneKit пробовал.
Для затравки вот знакомый сделал:

Re: ROS, Raspberri Pi, RPLidar, Pixhawk и все-все-все

=DeaD= » 11 ноя 2016, 01:13

metric писал(а):Optical Flow это совсем не для slam, коптер просто будет держать позицию не сильно удаляясь от заданной точки. и то только когда под ним нет подвижных элементов - на ковре/асфальте работает, на высокой траве только когда ветра совсем нет.

Да это понятно всё, SLAM на коптерах пока не планируется, я просто пояснил, с какого дуба в наземных роботах взялся MAVLink :)
Я так понимаю, оно ещё должно работать для локальных перемещений квадрика, типа "вперед на 3 метра".

metric писал(а):свежий пример slam & rpi3 https://geektimes.ru/post/281760/

Это уже посмотрел, тут почти всё то же самое железо, даже лидар такой же, только малинка третья, а у "нас" вторая.

metric писал(а):по mavlink'y скорее всего отправляются команды только pixhawk'у, а связь с малинками может быть и другой

У них сейчас принята концепция, что со всеми роботами они общаются через MAVLink. А что у них выше сейчас стоит - малинка или pixhawk, не смотрел, да и не думаю что сильно важно, можно переставить, если что :)

metric писал(а):Что хочется в итоге получить, я суть пока не уловил. "отработка группового взаимодействия наземных и летающих роботов", для каких целей? взаимодействие оно разное. я например сейчас доделываю что то наподобии http://youtu.be/1CjX1r-gh8U

На кафедре изучают и разрабатывают алгоритмы группового взаимодействия. Цели соответственно могут меняться. Среди текущих - охрана объекта/территории (проникновение, пожар).

Решение, которое им нужно помочь обеспечить, как я понимаю, должно обладать такими свойствами:
1. Для каждого робота можно прочитать его текущее положение и какие-то параметры (например, уровень заряда батареи).
2. Каждому роботу можно дать команду "двигайся в точку X".
3. Пункты 1-2 не исключают возможного обмена информацией между роботами, например, через центральный сервер, или напрямую друг с другом. (например, для совместного составления карты несколькими роботами с лидарами)

Остальное более-менее легко наращивается на этот скелет.

metric писал(а):я например сейчас доделываю что то наподобии http://youtu.be/1CjX1r-gh8U

Сильно. Если не секрет, как получаете координаты? Ультразвук, визуальные маяки или что-то еще?

Добавлено спустя 9 минут 45 секунд:
Vooon писал(а):ROS на малину ставится, но только если это Pi2 или 3.
На первой лучше даже не начинать — кучу времени убьют, а работать будет так-себе.

Малина вторая.

Vooon писал(а):А так, берешь образ Ubuntu armhf 14.04 (сразу скажу я это делал в прошлом году, пока не разбил ская окончательно, в этом не летал). Далее по мануалу на wiki.ros.org.

Понял, посмотрим. Сейчас вроде уже всё стоит, только что-то они там поломали, то ли ручками, то ли как-то неудачно выключили малину во время прошивки или типа того, не могут сказать. Возможно надо всё снести и заново поставить.

Vooon писал(а):PX4 умеет работать в локальных координатах, но origin им придется задавать (и с этим точно будут проблемы).

Так еще бы, мало того, что сначала задать origin, у них же по любому погрешность накапливаться будет и её надо будет сбрасывать. А то стоят рядом два коптера, разлетелись по делам в разные концы карты, потом вернулись на общую базу и запилили друг друга винтами вместо того чтобы сесть рядом друг с другом :)

Vooon писал(а):Еще оговорюсь, что меня не интересовала тема in-door полетов, как и группового запуска. И до всякого продвинутого управления у меня так и не дошло, опять только связал ужа с ежом…

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

Vooon писал(а):С наземными наверное лучше всего смотреть на kobuki.

Тут уже поздно метаться, железо закуплено, бюджет второй раз не будут выделять, по крайней мере пока какие-то результаты не покажут.
Сейчас гусеничные платформы с малиной, лидаром, pixhawk'ом и..... драйвером на L298! Такое ощущение, что лидар поставили на паровую повозку :)

Vooon писал(а):А для летучих можно взять мой piece of software, оно вполне работает, хотя порой думаю что лучше бы сразу DroneKit пробовал.

Летучие пусть пока полежат. Там и ROS пока ставить некуда. А без него я не представляю как из увязывать по координатам друг с другом хотя-бы, не то что с наземными.

Re: ROS, Raspberri Pi, RPLidar, Pixhawk и все-все-все

Vooon » 11 ноя 2016, 01:25

Погрешность можно сократить, если будет внешняя система (читай mocap), да и vision-flow помогает.
На видео как раз трекер (который потом заменили vslam'ом), но там летающий NUC с i7, зато без GPS.

По машинкам, странное сочетание, хотя pix сейчас куда только не ставят, например ROV это такой "мультиротор" :)

Re: ROS, Raspberri Pi, RPLidar, Pixhawk и все-все-все

metric » 11 ноя 2016, 01:28

=DeaD= писал(а):Если не секрет, как получаете координаты? Ультразвук, визуальные маяки или что-то еще?

Всего помаленьку, подробности когда доделаю ))

Добавлено спустя 2 минуты 33 секунды:
Vooon писал(а):По машинкам, странное сочетание, хотя pix сейчас куда только не ставят, например ROV это такой "мультиротор" :)


pixhawk-rover для машинок очень даже, так что тут все впорядке, особенно если была задумка унифицировать платформу, то самое то.

Re: ROS, Raspberri Pi, RPLidar, Pixhawk и все-все-все

=DeaD= » 11 ноя 2016, 01:50

Vooon писал(а):Погрешность можно сократить, если будет внешняя система (читай mocap), да и vision-flow помогает.

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

Vooon писал(а):По машинкам, странное сочетание, хотя pix сейчас куда только не ставят, например ROV это такой "мультиротор" :)

Тоже не пойму, зачем они туда влепили pix, ну да ладно, в принципе полно проектов, когда его в роверы пихают, так что совсем не колхоз.

Добавлено спустя 16 минут 41 секунду:
metric писал(а):Всего помаленьку, подробности когда доделаю ))

Будем ждать! Позволю себе поинтересоваться, пользовались ли вы ROS, и если да, то сможете ли помочь советами в разумных пределах? :)

metric писал(а):pixhawk-rover для машинок очень даже, так что тут все впорядке, особенно если была задумка унифицировать платформу, то самое то.

Унификация это конечно хорошо, только я пока не очень понимаю его задачи в случае многих роботов, которым надо общий SLAM.

Разве что использовать для подключения к нему всех датчиков, но тоже сомнительная ценность. Что из них к малине напрямую нельзя подцепить?

Re: ROS, Raspberri Pi, RPLidar, Pixhawk и все-все-все

linvinus » 11 ноя 2016, 23:44

Прикол в том что для RP 3 дистрибутив ROS под debian только для архитектуры ARM64, а это значит что потребляет оперативки в два раза больше.

Под ubuntu есть обычный ROS armhf но ubuntu для RP3 только 16.04 и штатное ядро ubuntu 16.04 для RP3 не позволяет менять некоторые параметры ядра RP3, в частности мне требовался нормальный аппаратный последовательный порт, а по умолчанию в RP3 Он задействован для bluetooth, короче его нужно переключать через overlay, но штатное ядро ubuntu для RP3 не принимает необходимую настройку overlay (ядро не грузится)
в общем я выкрутился так, поставил ubuntu 16.04 + ядро скопировать от debian с github, оно там скомпиленное лежит
тогда ROS ставится из репозитирия ros Для ubuntu, а все фишки ядра raspbian доступны через стандартные конфиги
вот такой компот, последний раз разбирался в сентябре, тогда авторы ROS говорили debian ARM (32) у них не в приоритете, поэтому когда появится репозиторий они не в курсе.

Из выше перечисленного два вывода
1) Нужно ставить ubuntu armhf чтобы сэкономить память
2) Если требуются особые настройки ядра которые меняются через overlay , то в ubuntu лучше сразу ставить ядро от debian (raspbian)

Re: ROS, Raspberri Pi, RPLidar, Pixhawk и все-все-все

Vooon » 12 ноя 2016, 00:03

linvinus писал(а):а это значит что потребляет оперативки в два раза больше.


С чего бы вдруг прям в два раза? Память жрут буфера данных, а они от размера указателя мало зависят.
Плотность кода у ARMv8 близкая к v7, так что много не сэкономить. При это теряются улучшения v8.

Добавлено спустя 3 минуты 57 секунд:
А вот занять единственный UART на гребенке синезубом это они зря, самый удобный способ для связи с пиксхоком на 921600.
Я 3-ю версию только заказал, правда скорее всего останется работать как OctoPrint-пускалка.

Re: ROS, Raspberri Pi, RPLidar, Pixhawk и все-все-все

linvinus » 12 ноя 2016, 00:10

блин не заметил, у вас RP2 Тогда возможно со штатным ядром ubuntu проблем не будет
С чего бы вдруг прям в два раза?

ну вот так получается :), может не ровно в два раза но около того, а на RP3 и так всего 1Gb что для ROS+slam впритык
так что лишние 200-300мб на дороге не валяются.

Re: ROS, Raspberri Pi, RPLidar, Pixhawk и все-все-все

=DeaD= » 23 ноя 2016, 18:06

Vooon писал(а):ROS на малину ставится, но только если это Pi2 или 3.
На первой лучше даже не начинать — кучу времени убьют, а работать будет так-себе.
А так, берешь образ Ubuntu armhf 14.04 (сразу скажу я это делал в прошлом году, пока не разбил ская окончательно, в этом не летал). Далее по мануалу на wiki.ros.org

Я таки попробовал подключиться к проблемам ребят, сейчас разбираюсь что и как.
И тут натыкаюсь на удивительное, на роботе у них установлен пакет http://wiki.ros.org/mavros :)

PS: Если кто не понял, к чем это я: Maintainer: Vladimir Ermakov <vooon341 AT gmail DOT com>

Re: ROS, Raspberri Pi, RPLidar, Pixhawk и все-все-все

ilalexey » 23 ноя 2016, 18:23

=DeaD=, загляни сюда. Если ничего не путаю, то это про тебя.


cron
Rambler\'s Top100 Mail.ru counter