Робот ищущий предметы

проекты на основе Arduino/CraftDuino

Робот ищущий предметы

Сообщение AntonEryomin » 11 янв 2015, 20:14

Для собственного проекта, хочется сделать робота, который умеет выполнять следующее:
1) Ориентируется в пространстве и запоминает его (тестироваться будет в рамках комнаты, но нужно понимать, что в комнате есть всякий хлам типа стульев, столов и прочего). Под ориентацией, я подразумеваю, робот проезжает по периметру комнату, строит у себя её карту и уже затем на её основе передвигается по комнате.
2) Умеет искать заданный ему предмет. Тест выглядит следующим образом, роботу показывается предмет (например красный шарик), затем кладется в комнате и робот начинает его искать, ориентируясь о знаниях карты местности из первого пункта (обработка изображения), когда он находит предмет, то начинает моргать лампочкой.

Для меня очень много вопросов на данном этапе, во-первых на какой платформе лучше делать ардуино или же на полноценном мини компьютере с Raspberry PI. В плане алогоритмов нужно будет копать в сторону Computer Vision (тут худо бедно я представляю куда идти), а вот с механикой передвижения и анализом "местности" я не очень (наверное нужно как-то делать на основе ИК датчиков + может быть какое-то подобие GPS но более локальное, не знаю как тут лучше поступить).

Пока я задамся первым вопросом, какие железки и с работой над какими алгоритмами лучше начать?

P.S. данный проект хочется сделать, что бы была хоть малейшая возможность попасть в аспирантуру. (Т.к. возраст уже приличный 28 лет).
AntonEryomin
 
Сообщения: 7
Зарегистрирован: 11 янв 2015, 19:56
programming: python

Re: Робот ищущий предметы

Сообщение noonv » 12 янв 2015, 20:50

Для решения первой задачи поможет SLAM.
Искать заданный объект можно либо при помощи поиска по шаблону (template matching), либо при помощи поиска по ключевым точкам (feature matching) - алгоритмы SIFT/SURF и т.п.
Т.о., можно посмотреть в сторону ROS или пробовать прикрутить SLAM и др. алгоритмы к своей системе самостоятельно.
По железкам - нужно смотреть что вам доступнее и проще освоить - начать можно с обычного ноутбука, а в качестве базы собрать себе TurtleBot-а.
Аватара пользователя
noonv
Администратор
 
Сообщения: 540
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++

Re: Робот ищущий предметы

Сообщение AntonEryomin » 13 янв 2015, 20:50

Огромное спасибо за рекомендации. Начал пока с книги по компьютерному зрению http://szeliski.org/Book/ забыл базовые вещи, решил повторить. Далее буду смотреть Вами рекомендованные алгоритмы поиска объекта.

Есть теперь 2 вопроса: подскажите пожалуйста, где лучше мне ознакомится с алгоритмом SLAM? Я посмотрел книги на амазоне http://www.amazon.com/s/ref=nb_sb_noss? ... nd+Mapping но тут поистине большой список :(

P.S. пока решил немного отставить вопрос о непосредственно железном решении, сконцентрируюсь на самих алгоритмах.
AntonEryomin
 
Сообщения: 7
Зарегистрирован: 11 янв 2015, 19:56
programming: python

Re: Робот ищущий предметы

Сообщение noonv » 14 янв 2015, 11:03

Можно начать поиски с:
* википедии
( -> Monte Carlo localization -> Probabilistic Robotics )
и т.д.
* просмотра, какой из алгоритмов SLAM-а использует тот же TurtleBot.
Аватара пользователя
noonv
Администратор
 
Сообщения: 540
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++

Re: Робот ищущий предметы

Сообщение AntonEryomin » 20 янв 2015, 22:22

Подскажите пожалуйста еще следующий момент. В процессе изучения материалов, стали прояснятся пробелы в знаниях. В ходе изучения, наткнулся на coursera + еще один довольно интересный курс.

https://moocs.qut.edu.au/learn/introduc ... y-2015-814

Собственно возникла небольшая дилемма, с одной стороны подобного робота (который бы искал предметы) можно собрать из ардуино + куча модулей, благо их действительно много. Но в курсе который я привел выше, там собирают робота для computer vision + объясняют основы робототехники на примере Lego Mindstorm.
Теперь я не знаю что лучше стараться освоить. Меня пока немного пугает язык С, который так или иначе придется осваивать для ардуинки (если выбор падает на неё). Или же я совсем не стой стороны подхожу и в начале нужно думать о реализации просто на ноутбуке алгоритмов, хоть на питоне, а уже затем думать о железках.
AntonEryomin
 
Сообщения: 7
Зарегистрирован: 11 янв 2015, 19:56
programming: python

Re: Робот ищущий предметы

Сообщение noonv » 21 янв 2015, 13:38

лично мне кажется, что лучше:
AntonEryomin писал(а):в начале нужно думать о реализации просто на ноутбуке алгоритмов, хоть на питоне, а уже затем думать о железках.

У возни с железками тоже есть свои плюсы, но всё-таки нужно сначала представлять, что за железки подойдут для решения вашей задачи :)
Аватара пользователя
noonv
Администратор
 
Сообщения: 540
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++

Re: Робот ищущий предметы

Сообщение AntonEryomin » 28 янв 2015, 09:08

Почитал довольно много про SLAM алгоритмы, посмотрел немного на реализации. Теперь хочется уже что-то начать собирать :)

Поскольку паять не пробовал никогда, да и откровенно говоря на такой низкий уровень сборки не хочется переходить встал опять же вопрос основы, по факту есть 2 варианта: ардуинка + модули и второй это вот этот - https://education.lego.com/ru-ru/lego-e ... 3-core-set Второй вариант лучше тем, что время на сборку робота будет неприлично минимальным и останется только думать над самим алгоритмом, что мне собственно и нужно. С другой стороны я не знаю насколько хорошие там дальномерные датчики + я пока не совсем понимаю можно ли работать с видеокамерой в лего, там из коробки есть датчик цвета, что в целом неплохо (так как изначальная задача это поиск красного шарика в комнате). Был ли у вас опыт работы именно с майндштормом? Еще конечно же минус цена, лего вариант получается в районе 25 тысяч, что не мало.
AntonEryomin
 
Сообщения: 7
Зарегистрирован: 11 янв 2015, 19:56
programming: python

Re: Робот ищущий предметы

Сообщение noonv » 28 янв 2015, 10:15

Это уже на ваше усмотрение - что вам самому ближе и что хочется видеть в результате :)
И LEGO можно использовать в качестве базы:
Автономная парковка автомобиле-подобного робота Lego NXT
Автомобиле-подобный робот Lego NXT с удаленным управлением с ПК на базе ROS
BrickPi: Raspberry Pi для LEGO.

Однако, на мой взгляд использование более открытого контроллера (будь то Arduino/CraftDuino или что-то на STM32 Discovery) - не только дешевле, но и даёт большую гибкость и контроль над системой.

Возможно, вам стоит присмотреться внимательнее к Raspberry Pi - к ней можно подключить ту же Arduino, через которую управляться датчиками/движками, либо у неё самой есть пины GPIO, к которым можно будет подключить драйверы двигателей, датчики. У неё и модуль камеры есть ;)
Пример использования компьютерного зрения на Raspberry Pi для следования по линии
Впрочем, и на RPi свет клином не сошёлся - уже есть одноплатники помощнее.

Т.о. вариантов масса - выбирайте :)
Аватара пользователя
noonv
Администратор
 
Сообщения: 540
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++

Re: Робот ищущий предметы

Сообщение AntonEryomin » 31 янв 2015, 00:13

Решил все же остановится на платформе Raspberry Pi. Теперь встал вопрос, какие компоненты покупать в первую очередь.

1) Понятное дело сама плата. Причем если я понимаю версия B и B+ отличаются незначительно, хотя последняя кажется имеет пониженное энергопотребление.

2) А вот дальше темный лес. Я поискал в гугле что-то совсем для начинающих робототехников, наткнулся вот на это http://edurobots.ru/raspberry-pi-pervoe ... erez-gpio/ Имеет ли смысл первое время просто поиграться с лампочками?

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

P.S. Пока задачка стоит на буквально первую покупку и хоть как-то начать приближать сборку к более менее нормальному виду.
AntonEryomin
 
Сообщения: 7
Зарегистрирован: 11 янв 2015, 19:56
programming: python

Re: Робот ищущий предметы

Сообщение noonv » 02 фев 2015, 10:16

прямо как на заказ, на хабре появилась статья:
Робот на RaspberryPi, Arduino и RaspiCam + OpenCV. Часть 1 Обзорная
Аватара пользователя
noonv
Администратор
 
Сообщения: 540
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++

Re: Робот ищущий предметы

Сообщение AntonEryomin » 26 фев 2015, 13:04

Заканчиваю сборки маленьких проектов в матрешке (самый большой комплект Z). сейчас уже необходимо подготавливать платформу + написать механику движения, с моторами более менее понятно, НО встал вопрос с датчиком - дальномера. Во-первых, сколько их нужно? Можно сделать самый простой и одновременно бюджетный вариант это 1 датчик, робот останавливается, затем вращается вокруг оси и потом уже едет куда-то дальше, вариант на каждой стороне по датчику (выходит крайне не бюджетно).

Датчики будут крепится к Arduino Uno. Но на рынке их несколько видов и какой лучше выбрать ? Вот даже тут их 6-ть видов http://amperka.ru/collection/proximity-sensors наверное лучше выбрать оптический, так как в звуковом думаю шумов достаточно. + я пока не знаю в каком формате возвращают данные эти датчики (но это я погуглю). Можете посоветовать, какой именно датчик выбрать?
AntonEryomin
 
Сообщения: 7
Зарегистрирован: 11 янв 2015, 19:56
programming: python

Re: Робот ищущий предметы

Сообщение noonv » 26 фев 2015, 14:12

Все датчики шумят :)
Так что обработка и фильтрация их показаний - must have ;)
Sharp-ы выдают аналоговый сигнал ( Датчик измерения расстояния SHARP-GP2Y0A02YK0F ) - их минус в наличии некоторой неоднозначности в показаниях, когда сенсор не может обнаружить объект из-за того, что он находится ближе, чем его диапазон срабатывания.
Ультразвуковой дальномер HC-SR04 - возвращает расстояние, кодируя его длительностью электрического сигнал на выходе датчика
Инфракрасный датчик препятствий - выдаёт бинарный сигнал (расстояние срабатывания настраивается подстроечным резистором)
Инфракрасный датчик движения - так же, выдаёт бинарный сигнал при срабатывании.

Итого: попробуйте использовать ультразвуковые HC-SR04, плюс можете их показания "дополнять" ИК-датчиками.
Аватара пользователя
noonv
Администратор
 
Сообщения: 540
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++

Re: Робот ищущий предметы

Сообщение AntonEryomin » 26 фев 2015, 15:43

Скажите пожалуйста вот еще какой момент, чем отличаются вот эти 2 сенсора

hc-sr04 http://amperka.ru/product/hc-sr04-ultrasonic-sensor-distance-module

URM37 http://amperka.ru/product/ultrasonic-urm37

Цена отличается в несколько раз, а почему, мне пока не совсем ясно, не поясните?
AntonEryomin
 
Сообщения: 7
Зарегистрирован: 11 янв 2015, 19:56
programming: python

Re: Робот ищущий предметы

Сообщение noonv » 26 фев 2015, 15:45

там же в описании всё написано :)
Аватара пользователя
noonv
Администратор
 
Сообщения: 540
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++

Re: Робот ищущий предметы

Сообщение JohnJ » 28 июл 2015, 05:38

Недавно наткнулся на проект Виртурилка (virt2real) - может быть лучше подойдёт вам чем RaspberryPi?
JohnJ
 
Сообщения: 9
Зарегистрирован: 28 июл 2015, 02:49
programming: c#, php


Вернуться в Проекты

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

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

© 2009-2017 |  О проекте  |  Политика Конфиденциальности  |