Как стать автором
Обновить

Высокоточные координаты (+-2cm) для виртуальной реальности, коптеров и роботов

Время на прочтение2 мин
Количество просмотров15K
Всего голосов 31: ↑21 и ↓10+11
Комментарии15

Комментарии 15

Пардон, но это не тянет на статью. Т.е. вообще не тянет. Как работает система? Какой софт, какое железо? Где можно посмотреть, потрогать руками? К чему эта «статья» вообще?
Чуть больше о самой системе: habrahabr.ru/post/254361
Еще больше на: www.marvelmind.com

Учитывая комментарий, пожалуй, добавлю ссылку на первую статью.

Спасибо.
Сегодня еще немного поснимали, чтобы приблизить условия к боевым. И робота поснимали в симуляционном «офисе» и коптера на улице с расстоянияем между маяками >22m (выложу чуть позже).

Вопрос к знатокам: где можно поснимать видео в условиях настоящего реального офиса, торгового центра, склада, фабрики? Будем благодарны, если кто-нибудь из читателей сможет приютить или подсказать. А то мы пытались найти место, но все боятся наших маяков («а вдруг, бомба!» :-) и видеокамеры («а что это вы здесь снимаете? А кто вам разрешил?») и так и не удалось договориться.

В общем, вот свежайшее демо, где робот катается под столами и стульями:

А вот видео коптера, летающего на московском морозе сегодня (-11С):
— Расстояние между крайними стационарными маяками 22м (может быть до 50м)

Это все хорошо, но все же замечу: если вы везде пишите, что точность +-2 см — то нужно эту точность и обеспечивать.

У вас на 5-м видео координаты прыгнули сантиметров на 10 (секунда 6). А в 7-м — вообще на 30-35 как минимум… А если бы у робота в такой неудачной точке была, например, зарядная станция? Или посадочная платформа? Он бы вообще не смог на нее сесть?

Причем, в 7-м ролике хорошо видно, что это не разовый сбой, а координата довольно плавно «уходила в сторону», а потом видимо устройство вышло и зоны отражения и резко восстановилось верное значение. Причем, все это в пустом помещении, примерно на одной высоте с маяками (сильно выше мебели), как минимум на 4 маяка и вероятно это еще не худшие записи из всех.

Иначе говоря — задача у вас очень нужная, решение, при определенных ограничениях — хорошее.
Но для своего уровня, цена у него (ИМХО) завышена. $300 за базовый набор, что на сегодня уже 24 т.р…
Прыгает. Так бывает, несмотря на фильтрацию.

Чтобы избегать проблем у робота, важно, чтобы мы были не единственным источником данных о положении у него. Он должен использовать нас, как один из источников, наряду с инерциальной системой, одометрией, и прочими системами. Что и бывает в реальности, практически, всегда. Тогда, используя данные с тех систем, он может довольно уверенно принимать решение, что случайный выброс в сторону — это случайный выброс и не стоит на него обращать внимания. Что мы и показываем на своем демо с простым роботом по доставке мелких грузов:



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

На счет 7-го ролика посмотрю…

Мы поэтому так много роликов и выкладываем, чтобы все было сразу видно пользователям — что работает великолепно, а что работает чуть менее стабильно. А уж пользователь сам решает подходят ли ему характеристики или нет.

Касательно точности, мы сознательно не вторгаемся в «религиозные войны» на этот счет. При определенных настройках можно добиться и миллиметров. Но далее начинаются вопросы: «а что считать центром системы?», «а как плывет точность от изменения температуры и влажности?» и так далее. Но система построена для не измерения расстояний, а для обеспечения достаточной точности для выполнения реальных задач в реальных условиях.

Что мы хотим показать на видео — так это наличие варианта решения сложных задач систем виртуальной реальности, автономных роботов, автономных коптеров. Не для всех случаев, несомненно, но для многих. И, в составе других систем, если возможно.
Увы, не могу согласиться с вашей позицией. Написав +-2 см — вы уже приняли на себя обязательства, об определенном распределении результатов измерений. Если на 2-3 сотнях замеров в практически идеальных условиях мы уже наблюдаем пики по 30 см, то они явно не окажутся «дальше» 3σ, и значит ваше стандартное отклонение уже превышает +-10 см, при нормальном распределении…
Добавьте сюда явно идеальные условия измерений (которых в реале конечно не будет), и мы получим совсем другой класс точности устройства.

Фразы про то «что считать центром системы?» и подобные — вообще не имеют отношения к проблеме. Подобные вопросы решаются элементарно.

Так что мое мнение прежнее. Или публикуйте измерения в реальных условиях (посреди мебели, в цеху и т.п.), и приводите адекватные статистические оценки. Или сразу сообщайте в статье о допустимых диапазонах и условиях в которых воспроизводятся ваши результаты и о том, что система не может полноценно определять координаты, а выступает только одним из компонентов системы трекинга, собрать и отладить которую покупатель должен самостоятельно.
А еще лучше, было бы включить инерциальные датчики и алгоритмы поправки в ваше устройство, имхо, цена это позволяет. Сам факт того, что это не было сделано, намекает, что все не так просто.
Как и в сторонних роботах, так и в своих, мы всячески рекомендуем использовать нашу систему вместе с прочими компонентами. Мы дополняем их — даем абсолютные координаты, они дополняют нас — отсеивают выбросы, обеспечивают куда большую частоту обновления данных и так далее. Это так же естественно, как множественность органов чувств человека, что дополняют друг друга. Иначе, мы бы слишком часто обманывались в ощущениях реальности.

Да, на более сложных мобильных маяках у нас уже стоят инерциальные датчики. Когда мы будем готовы выложить видео, мы выложим. А сейчас мы показываем, что работает и доступно уже сегодня.

Сложная ли это задача — объединить инерциальные данные, одометрию, и данные с системы навигации? — да, сложная. Решаемая ли? Да, решаемая. В частных конкретных случаях. В нашем демо робота мы ее уже решили ее.
В условиях мобильного маяка, не привязанного более ни к чему, задача куда сложнее.
По-моему подобные задачи, особенно для малых роботов, лучше решаются оптическими методами (Optical Flow Processing). Заодно отпадает необходимость в использовании радио.
Очень может быть. Особенно, для определенных частных случаев. Но мы еще ими не занимались. Поэтому, личного опыта нет.

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

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

Да и все сильно зависит от конкретной обстановки: если есть за что «глазу зацепиться» — будет работать хорошо. А будет белый потолок, белые стены и пол серый бетонный без особых зацепок, то все станет очень сложно для визуальных систем.

Как и для нас, в каких-то случаях. Например, в малом помещении включить какую-нибудь жутко шумную в широкой полосе частот, включая ультразвук, установку, типа, воздушного пресса или что-то в этом духе. Думаю, будут существенные помехи. Может, и будет работать, но нужно будет поподстраивать, а не так, как обычно — включил и все полетело. Зато, для визуальной — не вопрос. Шум звуковой никак не мешает.

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

Несколько мыслей: можно было б сразу «из коробки» совместить с инерциалнкой, чтобы отфильтровать выбросы. Можно задать модель динамики системы, как в некоторых GPS, по ней определять достоверность новых данных.

Проект очень полезный, удачи в развитии! Стоимость вполне адекватная (с учетом отсутсвия каких-то вменяемых альтернатив).
— Да, качественное покрытие в ультразвуке очень важно. Поэтому, у нас пять сенсоров, что неплохо закрывают полусферу, и куча софта, чтобы всем этим оптимально управляться

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

— Но как мы показываем на видео, требование трех видимых стационарных маяков не столь критично в реальных роботах, если вы используете и другие системы на роботе, что мы крайне настоятельно рекомендуем делать, и объединяете и коррелируете данные с них. Тогда робот и несколько секунд может кататься по своим внутренним данным, а потом подхватить навигацию, если она была потеряна. И мы можем прочие системы подкорректировать, если они уплыли. Вот видео, где робот довольно спокойно катается под столами и стульями, где, в принципе, все очень плохо с ультразвуковым покрытием, потому что стационарные маяки висят высоко на стенах под потолком:



— Мы делаем с инерционной системой из коробки. Но еще не доделали. Там многое непросто. Но свет в конце тоннеля виден. Конечно же, с удовольствием, покажем результаты, когда они будут в коммерческой готовности.

Спасибо за пожелания. Надеемся, что наша навигация пригодится тем, кто в ней нуждается.
Вы говорите об использовании в VR, но разве это комфортно с учётом такой низкой частоты данных? Шлемы VR требуют от рендеринга 60 FPS минимум, потому что ниже — уже дискомфорт. У вас же обновления положения в разы реже.
Высокую скорость непосредственной реакции должны обеспечивать гироскопы и акселерометры (IMU unit) в самой VR системе. Они быстры — десятки и сотни Герц с минимальной задержкой. Но они плывут во времени. Буквально, через доли секунды или малые секунды интеграционная ошибка по положению вырастает в большие сантиметры или десятки сантиметров. А тут мы помогаем — постоянно корректируем и обновляем данные с инерционного модуля данными с нашей системы навигации.

Объединение данных с обоих систем — сложная задача. Но она позволяет брать лучшее из обоих систем:
— с IMU — скорость обновления и малое время реакции. Но у них есть серьезный дрифт, который нельзя убрать внутренними средствами
— с Marvelmind Indoor Navigation System — абсолютные координаты, которые не плывут во времени и позволяют корректировать IMU, но скорость обновления 8-16 Гц и задержки реакции в десятки миллисекунд, вместо 50-400Гц скорости обновления у IMU
Взяв лучшее, можно получить и скорость обновления в десятки Гц и устранение дрифта координат во времени.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории