roboforum.ru

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

LUM РОБОТ-ПЛАТФОРМА

Re: LUM РОБОТ-ПЛАТФОРМА

lorry » 05 фев 2014, 23:56

Scorpio, обязательно постараюсь создать новую тему по KINECT-у, с радостью поделюсь теми наработками которые имею, единственная проблема, это катасторофическое отсутствие времени, но я все же постараюсь выложить инфу по кинекту.
Касаемо вашего вопроса про старый XBOX360. К сожалению, как говорят об этом производители, KINECT под XBOX и KINEKT под Windows действительно отличаются, и не только наличием у последнего переходника и адаптера питания (это действительно не является проблемой, спаять всегда можно), самое главное отличие в том, что в кинекте под винду можно включить "NEAR MODE", или по русски "ближний режим". Именно в этом режиме сенсор "видит" объекты на расстоянии от 40 см. и может отслеживать фигуру сидящего человека. По этому, я думаю вы сможете использовать в проекте свой KINECT, но с большими ограничениями по дальности.
Двигатели сенсора установленного в голове нашего робота не используются, да их и нет, в том смысле, что сенсор стоящий в голове робота разобран и из него удалено все не нужное (двигатели в том числе), а вот сенсор в теле робота скорее всего будет использовать двигатели для изменения угла зрения.
По поводу использования линз для сенсора ничего сказать не могу, мы этим не пользовались, но подозреваю, что для использования в SLAM этот фокус может не пройти. Линзы скорее всего исказят реальную картину расстояний и сенсор будет выдавать не верную информацию. Хотя, если попытаться построить таблицу соответствия измерений сенсора с линзами и без, то, наверное, можно будет вывести формулу зависимости.

Re: LUM РОБОТ-ПЛАТФОРМА

lorry » 11 фев 2014, 00:41

Давеча взялся за реализацию SLAM. Нагуглил массу информации по этому вопросу. Как совершенно верно писал Nesenin, заморочки есть, и попыхтеть придется, но, как говорит моя мамочка - "головой нужно не только кушать", иногда еще и думать. Вот подумал я и решил, что все же самостоятельно справиться с реализацией SLAM вполне возможно, но сложно.
И так, начну с того, что нужно получить карту глубины сцены от сенсора KINECT, это уже имеется. Далее два варианта:
1. нужно вытащить из этой карты все точки глубины и должным образом их обработать;
2. используя OpenCV искать на карте глубины, по градациям серого, находящиеся в поле зрения сенсора объекты.
Кажется оба метода вполне приемлемы, но второй более простой. Дело в том, что в OpenCV, как вы знаете, реализовано масса нужных нам функций, в данном случае нас интересует детектирование объектов по цвету. Затем, привести данные о цвете объекта в соответствие с таблицей расстояний и получить глубину сцены с расстояниями до препятствий.
Далее на основании полученных метрических данных построим карту помещения, ну, а алгоритм A* позволит нам построить маршрут передвижения в пределах полученной карты. Вот так, с первого взгляда кажется все просто, посмотрим как будет реализовываться. Попробуем реализовать. Процесс буду описывать по мере получения результатов.
:D

Re: LUM РОБОТ-ПЛАТФОРМА

lorry » 20 фев 2014, 13:49

Хочу немного подытожить проделанную работу и обозначить перспективу.
Наша команда стремится к совершенству - создаем робота способного стать start-up проектом с возможностью интеграции его компонентов в другие проекты.
Если кому интересно, то я еще раз перечислю все возможности которые мы уже смогли заложить в наш проект:
1. создана универсальная, трехколесная платформа
2. платформа оснащена IR датчиками спереди и сзади
3. платформа оснащена механическим бампером с контактными датчиками прикосновения
4. на платформу установлена голова робота в которую встроен Microsoft KINECT
5. робот обучен детектированию и трекингу фигуры человека
6. робот обучен детектированию и трекингу лица человека
7. в тело робота встроен второй KINECT для реализации SLAM
8. получена трёхмерная карта глубины сцены позволяющая построить карту помещения в 3D проекции
Сейчас ведутся подготовительные работы для реализации SLAM.
В дальнейшем планируется следующее:
1. реализовать SLAM
2. приладить к роботу манипуляторы
3. научить робота распознавать человеческую речь
4. научить робота моделировать человеческую речь
5. научить робота более-менее адекватно общаться с человеком
6. научить робота брать и переносить с помощью манипуляторов всевозможные предметы
7. научить робота узнавать людей с которыми он когда то уже общался
8. сделать возможным интеграцию робота в существующие системы (охрана, умный дом, удаленное присутствие и т.п.)
Ну и самое главное, повторюсь, робот создается как открытая платформа, это значит что любые модули, как программные так и механические, можно будет использовать в других проектах. В свою очередь, мы готовы поделиться своими наработками со всеми кому это будет интересно.
Вот, как то так!
Последний раз редактировалось lorry 24 фев 2014, 23:15, всего редактировалось 1 раз.

Re: LUM РОБОТ-ПЛАТФОРМА

lorry » 21 фев 2014, 08:35

Вот и сделан первый шаг в реализации SLAM.
Из полученной от сенсора KINECT карты глубины сцены (на рисунке окно справа внизу "depth_body") вдоль вертикальной "линии сканирования" глубины, что по центру окна, считываются данные о глубине и записываются в массив. Для визуализации, прочитанные данные выводятся в окно "Depth" (слева внизу). В этом окне вид по "линии сканирования" представлен сбоку, т.е можно видеть соответствие коробок в окне "depth_body" вертикальным линиям в окне "Depth" с указанием расстояния в мм. от сенсора до коробок (цифры зеленым цветом). В окне "video_body" (слева вверху) изображение видео-камеры сенсора с видом на те же коробки.
Хочу обратить внимание на преимущества и недостатки такого сканирования по сравнению с другими сканерами (к примеру со сканирующим лазерным дальномером forum10/topic12095.html
Лазерный дальномер сканирует сразу всю область вокруг робота на котором он установлен, т.е. мы можем мгновенно получать карту препятствий с разворотом в 360 градусов, это бесспорно преимущество, ведь при быстрой смене сцены в помещении (к примеру, зашел человек) робот сможет так же быстро отреагировать на ситуацию. Недостаток этого метода состоит в том, что лазер сканирует в одной плоскости. Нашему роботу, оснащенному сенсором KINECT для того чтобы получить общую картину помещения придется развернуться на 360 градусов самому. Но за то, значительное преимущество в том, что KINECT видит не в одной плоскости (как лазер), а сразу строит картинку в 3D проекции на высоту до 2,5 метров от пола. Конечно это не важно, если робот сам высотой 15-20 см, но если платформа имеет рост до полутора метров этот вопрос становится критичным. Ведь если лазерный сканер детектировал, к примеру, ножку стола как препятствие то робот такой высоты как наш, не оснащенный подобным устройством как KINECT, посчитает что подъехать к этому препятствию можно, но как правило столешница стола выдается дальше ножки стола и конечно, неизбежно, произойдет столкновения робота со столешницей. Возможны и другие подобные ситуации. Кроме того лазерный дальномер не в состоянии детектировать объекты, будь то человек или какой то предмет интерьера, KINECT это может.
Вот скриншот по описанию:
12.jpg

Re: LUM РОБОТ-ПЛАТФОРМА

ste4kin » 24 фев 2014, 06:47

А как дела с манипуляторами?

Re: LUM РОБОТ-ПЛАТФОРМА

lorry » 24 фев 2014, 23:13

ste4kin писал(а):А как дела с манипуляторами?

С манипуляторами выбор пока не сделан, есть два варианта
1. купить готовые
2. изготовить самостоятельно
Оба варианта имеют свои плюсы и минусы. Пока думаем на каком остановимся.

Re: РОБОТ-ПЛАТФОРМА

lorry » 25 фев 2014, 06:47

сочувствую. уже б давно робот сам ездил, а не под управлением человека.

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

Re: LUM РОБОТ-ПЛАТФОРМА

RootAdmin » 25 фев 2014, 12:00

ROS-то запустить не проблема. На Cubieboard ставится, под Linaro - сборку Ubuntu под ARM.
А вот чтобы понять ROS - нужно сначала понять ROS. Такая вот рекурсия.
Сам сейчас читаю http://habrahabr.ru/company/tod/blog/204250/ http://habrahabr.ru/company/tod/blog/210252/
и пробую.

Re: LUM РОБОТ-ПЛАТФОРМА

lorry » 25 фев 2014, 15:45

Может вместе читать будем!?
Я в linux не просто профан... я тупень!!!
плиз, ссылки пришлите и пояснения, ежели не жалко!

Re: LUM РОБОТ-ПЛАТФОРМА

RootAdmin » 25 фев 2014, 16:21

Будем. В общем сборка из исходников у меня не получилась, обычно пользуюсь дебианом, тут пришлось поставить убунту.
Тут forum87/topic11877-15.html#p293264
А на убунту все стало из пакетов, причем сразу. Поставил иксы - и черепашка начала ползать.

Re: РОБОТ-ПЛАТФОРМА

Nesenin » 25 фев 2014, 18:32

lori писал(а):
сочувствую. уже б давно робот сам ездил, а не под управлением человека.

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

дык у меня дела еще хуже. я вообще не могу образцы нормального кода на c\C++ юзать. вот смотрите post279976.html#p279976

в LabVIEW программирую используя те инструменты, которые 1 человек сделал. а как че другое заюзать уже не могу(например звук с микрофонов вывести). а Вас, коль вы все примеры освоили, мотивирую другое готовое ПО освоить. ибо не благодарное это дело изобретать свой велосипед, который к тому же по сложности на уровне научных разработок.

Re: LUM РОБОТ-ПЛАТФОРМА

lorry » 18 мар 2014, 00:03

Наконец, есть немного новостей для публикации по нашему проекту.
Так как наша команда разработчиков увеличилась в составе, то пришлось подыскивать новое помещение для размещения проекта, прежде весь проект находился в моем рабочем кабинете (было тесно и не удобно работать). В итоге, выделили площадь, в основном офисе фирмы, не очень большую (около 18 кв.м.), но имеющую перспективу расширения. В помещении размещены рабочие столы, приобретен ПК, измерительные приборы, блоки питания, прочая оснастка, приспособления и инструмент. Рядом имеется мастерская оснащенная слесарным инструментом, верстаком, а так же токарным, сверлильным и заточным станками, в общем проект обзавелся собственной "жилой площадью". Новое помещение назвали громко - "Лаборатория робототехники". Так что в последние три недели почти все время уходило на оснащение лаборатории. Теперь уже закончили, возвращаемся к проекту.
Нужно сказать, что параллельно с созданием лаборатории, кое какие работы по самому проекту, все же велись:
В последнее время, по большей части пытался найти подход к реализации одометрии и SLAM. Но наткнулся на грабли. Как уже отмечалось раньше, для одометрии будет использован второй KINECT. Для подключения двух сенсоров к одному компьютеру необходимо чтобы у последнего было два USB хаба. Т.е. каждый KINECT должен работать с собственным USB-контроллером 2.0 или выше. Это связано с тем, что поток данных от сенсора идет непрерывно и занимает более 50% пропускной способности протокола USB 2.0. Но оказалось, что наш новый ПК, специально приобретенный для лаборатории и на котором предполагается отлаживать софт робота имеет только один встроенный USB hub, так что можно подключить только один KINECT. Казалось бы - не проблема, в свободный слот ставим внешний USB контроллер и вперед! Да не тут то было! Оказываются не все контроллеры могут корректно работать с KINECT-ом. Перебрали три штуки, разных производителей, с разными чипами. Только третий от NEC заработал как нужно, остальные, обнаруживают сенсор и тут же его теряют, работает не стабильно, хотя, при этом другие USB устройства (флэшки, диски, принтеры, камеры) работают вполне корректно. В общем, народ, имейте в виду, что сенсор работает не со всеми внешними USB хабами.
Кроме этого, командой был написан код, с использованием OpenCV, для распознавания лиц людей. Как вы знаете, наш робот умеет детектировать и отслеживать, поворотом головы (а в перспективе и тела), фигуру и лицо человека. Теперь он научится еще и узнавать людей с которыми когда то уже встречался, или знакомиться с человеком которого робот еще не знает. Программный код по распознаванию лица пока еще сыроват, но вполне стабильно работает, безошибочно узнает знакомые лица, правда с незнакомыми трудности возникают, но работы ведутся и думаю скоро все будет в порядке.
Пока такие новости по проекту.
Последний раз редактировалось lorry 18 мар 2014, 02:58, всего редактировалось 1 раз.

Re: LUM РОБОТ-ПЛАТФОРМА

Scorpio » 18 мар 2014, 02:43

Поздравляю с новым помещением!

Re: LUM РОБОТ-ПЛАТФОРМА

lorry » 18 мар 2014, 02:55

Маленькая фото сессия лаборатории робототехники:

Общий вид рабочих мест, видны роботы.
IMAG0246.jpg


Фотографии слесарки
Рабочий верстак
IMAG0239.jpg

Станки
IMAG0241.jpg

Токарный станок
IMAG0240.jpg

Сверлильный станок
IMAG0242.jpg

Точильный станок
IMAG0243.jpg

Планируется еще приобретение муфельной печи, фрезерного станка, 3D-принтера, документ камеры и т.д.
Последний раз редактировалось lorry 21 мар 2014, 03:42, всего редактировалось 4 раз(а).

Re: LUM РОБОТ-ПЛАТФОРМА

Scorpio » 18 мар 2014, 21:15

А робота где выгуливать?


Rambler\'s Top100 Mail.ru counter