Итак, после некоторого раздумья, чем же мне не нравится один из роботов, решено было его просто модернизировать.
0_robot.JPG (45.25 КиБ) Просмотров: 6045
Ну робот был готов конечно месяца два назад, и ждал своего часа.
По размерам он 20x20 см, высота около 35см. Внутри бортовой ПК (mini-itx плата под Core2Duo 2.66ГГц, 4Гб RAM, 30Гб SSD, wifi) и камера Surveyor, соединенная по USB. Windows XP x64 как RTOS Питается от LiPo 4400mAh (3S1P), где то на два часа. Само собой еще от сети как обычный ПК питаться может. 4 мотора, sabertooth, pan-tilt/2сервы, свой контроллер для pan-tilt.
Час X настал когда пришла пора двигать из задымленной Москвы. Схватил робота и улетел в другое место.
Собственно все.. ездиет Если ходить неспеша, то ноги не теряются Цвет носков не важен, главное чтобы с полом не сливались. Одинаково хорошо и на черные реагирует. Цвет задается в начале движения.
В этом эксперименте отрабатывал распознавание цветовых пятен, отсекание шумов, бликов, отслеживание пятен в движении и управление роботом в режиме realtime (40fps 160x120).
Планирую еще доделать автоподстройку под цвет объекта. Хотя объект (племяшка) в пределах квартиры и не теряется, но все равно попробую А также запоминание объектов и их формы.
Цель как обнаруживается? По гистограмме цвета? Я заметил, что кроме розовых носков и коричневого пола там ещё и стены имеются голубоватые, но после обработки видны только пиксели носков. Как такое возможно?
В ролике робот «гонится» за целью, без остановки. А что будет, когда догонит? Назад откатываться умеет, если вплотную к цели подкатил?
Разрешение изображения с видеокамеры мелкое совсем (похоже, меньше чем 320x240), камера большее разрешение не тянет? На таком разрешении только «пятна» и можно искать. Распознаванием образов заниматься не получится, если бы хотя бы 320x240
Последний раз редактировалось EDV 06 авг 2010, 16:49, всего редактировалось 1 раз.
EDV писал(а):Цель как обнаруживается? По гистограмме цвета? Я заметил, что кроме розовых носков и коричневого пола там ещё и стены имеются голубоватые, но после обработки видны только пиксели носков. Как такое возможно?
Делается это так: 1. в начале робот стоит и племяшка перед ним. 2. я кликаю на носок, допустим его цвет CLRносок 3. племяшка уходит, появляется новый кадр, для каждого пикселя со цветом CLR2 считается расстояние до CLRносок (как в 3D пространстве). Затем нормируется на диапазон (minCLR, maxCLR) То есть по сути накладываю фильтр и появляется чб картинка. Место где носки, имеет минимальное расстояние до CLRносок, становится черным, все остальное сероватое вплоть до белого. То есть каждый пиксель от 0 до 255. 5. Делаем threshold, =30 Затем у меня есть алгоритм заливки, я ищу место где есть допустим 4x4 пикселя черного (после threshold). И заливаю пером 4x4. Все что не залилось - отсекаю, так все мелкие шумы уходят. 6. Ну а дальше есть 2 BLOB, вычисляю ближайший от предыдущего кадра. Поскольку realtime, носки не могут быстро уйти на другой конец кадра
7. Вычислив координаты носков, ищу в автомате состояний, куда двигать (вперед, назад, вправо-влево, стоять)
EDV писал(а):Разрешение изображения с видеокамеры мелкое совсем (похоже, меньше чем 320x240), камера большее разрешение не тянет?
Камера Surveyor может дать 160x120x60fps, 320x240x7.5fps, 640x480x?fps Но там не было USB, я допаял контроллер, он прокачивает 160x120x50 цветное (~40кб/кадр). Увы, веб камера сильно мажет, мне не подходит Планирую потом прикупить скоростную USB камеру, типа такой http://www.1stvision.com/cameras/IDS/UI-2210SE.html Но сейчас меня и surveyor устраивает (не мажет), хотя и 160x120x50 fps.
Добавлено спустя 9 минут 17 секунд:
EDV писал(а):В ролике робот «гонится» за целью, без остановки. А что будет, когда догонит? Назад откатываться умеет, если вплотную к цели подкатил?
St Cpts cx cy PPts px py Age Act ============================================= а) есть объект, вперед 1 1 35;65 *;20 X X X X F+50 1 1 35;65 21;50 X X X X F 1 1 35;65 51;75 X X X X F-25 1 1 66;* * X X X X R 1 1 *;34 * X X X X L 1 1 * 99;* X X X X B-50 1 1 * 50;98 X X X X S б) объект потерян 1 0 X X 1 51;* X X R 1 0 X X X X X X S
EDV писал(а):Разрешение убитое совсем - 160x120. Камера большее разрешение не тянет? На таком разрешении только «пятна» и можно искать. Распознаванием образов заниматься не получится, если бы хотя бы 320x240
EDV, у меня это не единственный робот, есть и другой робот с ПК и высокоскоростной камерой. Я ее описал уже здесь ( wiki/Видеокамеры ) как Prosilica GigE Vision GC-655C
Выбираю робота под алгоритм.. Сейчас меня этот устраивает тоже
С анализом цвета плохо то, что алгоритм от цветопередачи камеры зависит и от общей освещённости. Если общее освещение слабое, то все предметы становятся серыми (черно-белыми). Вот тут-то мой алгоритм как раз и пригодился бы, он даже ночью маркер «Иди сюда» видел, с помощью камеры с инфракрасной подсветкой. А ещё если запомнить по дороге пару-тройку картинок, то и из одной комнаты в другую добраться можно автономно
Забыл дописать словами, как робот ведет себя: a) объект далеко, двигаемся быстрее б) объект не близко, двигаемся нормально в) объект близко, двигаемся медленнее г) объект под "носом" , даем назад. Тут правда можно и в стену въехать, но такие случаи пресекаются д) вправо-влево если объект уходит в сторону. е) объекта нет - просто крутимся.
Я вижу выход в автоподстройке цвета объекта, каждый раз робот знает где объект, можно пересчитать цвет. Малиновые носки не терялись даже в очень темных переходах комната-комната, коридор-кухня. Черные носки теряются иногда
Твой алгоритм тоже хорош, мы до него еще доберемся.
Добавлено спустя 3 минуты 25 секунд:
Zeus писал(а):Здорово! Классный робот! А алгоритмы обработки изображения сам выдумывал или где прочитал как делать?
Книжки, исходники разные (OpenCV) например, что то можно понять глядя как работает roborealm, чтото сам придумываю. Это же робот для программиста... Просто иногда и железо попаять охота Но основной интерес в программной части лежит
Вот просто перечисление механических/электрических компонентов: 1. Моторы, точно не помню, но вроде такие: 19:1 Metal Gearmotor 37Dx52L mm http://www.pololu.com/catalog/product/1102 4шт
2. Крепление для моторов Pololu 37D mm Metal Gearmotor Bracket Pair http://www.pololu.com/catalog/product/1084 2 пары. Очень удобн закрепить моторы к пластине, я использовал 2мм нефольгированный стеклотекстолит ну у меня получился бутерброд с нейлоновыми stand-off вставками, так что все вышло довольно жестко.
Далее идет ПК, ну тут ничего особенного, mini-ITX плата в оргстеклянном корпусе. На ней pan-tilt от lynxmotion, примерно такой же pan-tilt продается и в здешнем магазине. На pan-tilt висит камера.
Наверное это все. Само собой, можно найти и дешевле, просто перечислил что использовано.
Хороший робот! С Mini-itx, видеокамерой и связью по Wi-Fi?
Вот такого бы робота да в магазин Робофорума. Я думаю, тот, кому интересно поэкспериментировать с навигацией по визуальным маякам (но возится с железом не хочется, или навыков нету) купил бы, даже за дорого
EDV писал(а):Хороший робот! С Mini-itx, видеокамерой и связью по Wi-Fi? Вот такого бы робота да в магазин Робофорума. Я думаю, тот, кому интересно поэкспериментировать с навигацией по визуальным маякам (но возится с железом не хочется, или навыков нету) купил бы, даже за дорого
Да, этот робот аналогичен, только колеса побольше (140мм) и компьютер+камера другие. А черный корпус это обычный M350 внутри Zotac H55 ITX, Core i5 660, 3.33ГГц, 4Гб RAM, HDD, WiFi шел в комплекте M3-ATX как стабилизатор от LiPo 3S2P 10Ач, хватает ее на 3 часа где-то.
В принципе, можно продавать комплекты для сборки или уже готовый, но это хозяевам магазина наверное надо исследовать круг покупателей Действительно, роботов с ПК что-то в продаже не видно, каждый делает по своему...