А я не говорил что цена драконовская, и вообще правильно просить деньги за хорошую работу. Иначе люди всерьез часто не воспринимают - типа бесплатно раздают, значит фуфел какой-то.
А тут посмотрят - блин, народ же покупает за деньги, значит наверное есть что-то полезное
Ну, посмотрим, как такой маркетинг сработает и тута и тама (за бугром)
У меня, в принципе, мысль была, что большинство пользователей либо новички, либо люди, которые не желают заморачиваться с разбирательством исходников или изготовлением драйвера/связки с роботом и поэтому они купят готовое решение RoboRealm + Navigator + готовый робот. И лишь небольшая часть пользователей будет пытаться самостоятельно во всём разобраться.
P.S. Компания RoboRealm знает, о том, что у меня открыты исходники Navigator под wxWidgets и QT-4.
Я думал себе купить RoboRealm, но потестировав понял, что программа сырая и часто просто вылетает. Очень интересует эта тема. Хочу повторить всё это на Robopica+XBee+беспроводная камера, те решение полностью без проводов. Но пока квалификации мало, буду учиться на более простых вещах. (
Leaf can look for a fiducial. Then he can calculate angle and distance using x-rotation and size. Next, because he knows where in the room the fiducial is located, he can apply some trigonometry to calculate his exact pose in the room (X Y Orientation). He then goes to a specific place in the room about 3 feet in front of the door. Next, switching to AVM, he can navigate through the doorway successfully!
In fact, this was so successful, I then decided to have him try the hallway. He goes down the hallway stopping when his sonar sensors detect the wall. I then have him programmed to turn clockwise 90 degrees. And he then finishes by going down a short narrow irregular hallway (previously a difficult challenge).
Here are links to 2 videos:
I have more to do - but this is a great start... and it's very encouraging!
Сейчас занимаюсь разработкой нового, полностью автономного режима для AVM Navigator. Режим будет называться «Walking mode»и робот в этом режиме будет исследовать неизвестное (ранее неподготовленное) пространство. Первая стадия разработки (уклонение от препятствий), на мой взгляд, успешно завершена.
Далее будет визуальная одометрия, составление карты, автоматическая прокладка маршрутов.
1. Сканируем вертикальные контуры (ножки стульев, углы стен, косяки дверей и т.д.), если на пути есть вертикальные контуры, то это препятствие (желтый индикатор в виде трапеции), и тогда начинаем его спокойно объезжать.
2. Камера имеет инфракрасную подсветку (фонарь) и если подъехать близко к стене, то фонарь даёт засветку в виде белого пятна на весь экран. Соответственно, если в центре экрана появилось большое белое пятно, то откат назад, с записью в AVM изображения препятствия (индицируется большим красным перечёркнутым прямоугольником). Помеченные препятствия (которые хранятся в AVM) индицируются синими прямоугольниками с надписью «Obstacle». Если робот видит «помеченное» препятствия, то объезжает его издалека (второй раз к стене подъезжать уже не нужно).
3. Робот отслеживает историю движения в кадре за одну предыдущую секунду, и если была дана команда «вперёд» а в кадре ничего не происходит (изображение не меняется), то робот застрял, уткнулся в стенку носом. Тогда даётся команда откат назад с записью препятствия в AVM (что бы второй раз в стенку биться не пришлось). Индицируется красным прямоугольником с кругом в центре.
Одометрю планирую вот такую прикрутить:
Просто запоминаем изображение в центре экрана в AVM и ждем, пока потеряем его из виду (прошли один отсчёт), затем снова запоминаем изображение в центре экрана и опять ждем, пока оно «уедет» из кадра, и т.д.
EDV писал(а):Просто запоминаем изображение в центре экрана в AVM и ждем, пока потеряем его из виду (прошли один отсчёт), затем снова запоминаем изображение в центре экрана и опять ждем, пока оно «уедет» из кадра, и т.д.
А оно опознает потом этот фрагмент когда вернется в ту же точку и скорректирует погрешность "по кругу"?
1. Сканируем вертикальные контуры... 2. Камера имеет инфракрасную подсветку фонарь даёт засветку в виде белого пятна... 3. Робот отслеживает историю движения в кадре, если в кадре ничего не происходит...
Ну да, при известной геометрии робота, пола и препятствий - все это делается достаточно просто. Несмотря на простоту, смотрится на удивление неплохо. Считаю, что AVM тут "за уши притянут".
EDV писал(а):Просто запоминаем изображение в центре экрана в AVM и ждем, пока потеряем его из виду (прошли один отсчёт), затем снова запоминаем изображение в центре экрана и опять ждем, пока оно «уедет» из кадра, и т.д.
А оно опознает потом этот фрагмент когда вернется в ту же точку и скорректирует погрешность "по кругу"?
Пока что ещё не решил, как будет устроена карта местоположения.
Варианты: 1. В карту записаны только контрольные точки и их очень приблизительное местоположение в координатах. Передвижение между «контрольными точками» выполнять с помощью AVM (как в предыдущих экспериментах, типа передвижение «ворота» - следующие ворота).
2. По ходу следования робота, в AVM записываются снимки помещения с относительными координатами, и при повторных распознаваниях (когда ещё раз ехать здесь будем) координаты корректируются для улучшения точности.
Michael_K писал(а):В этих трех пунктах ведь алгоритм AVM не нужен.
Я считаю, что в навигации по визуальным ориентирам, распознавание образов – является ключевым момент (не важно на основе AVM или другого алгоритма).
Режим «Walking mode» - это комплексное решение и задача «уклонения от препятствий» это всего лишь один подпункт этого решения. Робот в этом режиме должен жить «своею жизнью» абсолютно самостоятельно, полагаясь только на изображение из видеокамеры (одной, не стерео) и без всяких других сенсоров (дальномеров, эхолотов, лазерных линий и т.д). Тем не менее, робот должен быть способен самостоятельно изучить квартиру и затем успешно перемещаеться в нужные точки квартиры в соответствии со своею высокоуровневой логикой или манерой поведения. Робот может «узнавать» предметы, обитателей квартиры и действовать соответственно.
Я считаю, что в навигации по визуальным ориентирам, распознавание образов – является ключевым моментом
EDV, с этим же никто и не спорит. Только это очень общая фраза.
Просто именно для обнаружения препятствий вы пользуетесь совершенно другими эмпирическими способами, причем с достаточно грубыми допущениями.
"вертикальные линии" - это, можно сказать, "подготовленное пространство") В том смысле, что обои у вас с вертикальными полосками, а не "в цветочек", по квартире расставлены квадратные табуретки, а не бесформенные контрабасы, мягкие игрушки и мячики, пол считается горизонтальным и без особых линий и т.п.
EDV, я считаю, что для такого простого подхода - результат все равно замечательный (в конце концов любой "исследователь" "мира" - так или иначе ведет себя в рамках некоторых допущений - это нормально). А AVM "притянут за уши" просто потому, что если вы умеете надежно обнаруживать препятствия, то вроде как бы и незачем их запоминать...
"вертикальные линии" – это всего лишь пункт 1, и здесь нет записи в AVM.
Если это не сработало, то есть ещё пункт 2,3. А вот что бы пункты 2 и 3 не повторялись слишком часто (больно о стенки биться, можно и корпус повредить), изображение препятствия записывается в память AVM, что бы его издали видно было, и можно было повторно тогда стороною обойти (без ударения о стенку, как в пункте 3).