[Из песочницы] Indoor «GPS» с точностью +-2см
День добрый, коллеги! Все началось с того, что мы, как и многие, тоже делали роботов — автономных, мобильных, с кучей сенсоров и огромным потенциалом. Вообще-то, мы все еще продолжаем их делать. Но в очередной раз столкнувшись с одной из ключевых задач роботов — определением своего положения в пространстве и навигацией в помещении — мы решили сфокусироваться на решении этой задачи. Вот, что из этого получилось.Ролик ниже снят прямо на конференции Skolkovo Robotiсs 2015. Я просто установил стационарные маячки на колонны на первом этаже Гиперкуба (зеленые точки на карте), разбудил маячки, взял в руки мобильный маячок (голубая точка) и походил по этажу:
[embedded content]
А так можно ходить с двумя маячками в руках:
[embedded content]
Так выглядят сами маячки (и мобильные и стационарные):
Каждый день приносит какие-то улучшения в прошивке и софте. На данный момент максимальные расстояния между маяками — до 50 метров.
Спешу заметить, что точность — понятие очень тонкое и многозначное. Но с практической точки зрения имеет смысл отталкиваться от задач, чем мы и руководствовались. Например, роботу важно знать, где он находится; где находятся препятствия, которые он уже нашел; где путь, по которому он может пройти. Таким образом, когда скорость звука в воздухе меняется (температура, давление, влажность), изменяется измеренное расстояние и до маяков и до объектов. Карта как бы дышит. Но относительные расстояния никак не изменяются. Это позволяет роботу, как и раньше, находить препятствия, путь, двери и стены.
Почему же ультразвук? Прежде чем остановить свой выбор на используемой схеме — активных ультразвуковых маяках с синхронизацией и обменом по радио и трилатерацией — мы глубоко прошлись по возможным вариантам определения положения робота в пространстве: Лидар: — Точно. Красиво. Дорого. Если не дорого, то не очень удобно. Нужно сканировать. А скан — это механика. Это куда сложнее и сразу менее надежно и еще дороже. Но в целом это очень хороший датчик, если он подходит для задач и если уметь им управляться. И не нужны маяки. Можно сразу отправляться в путь в неизвестность. Как вариант — простейшие измерители расстояния на ИК сенсорах. Или более сложные — с постоянными лазерами или сканирующими лазерами и камерами. Тоже варианты. Но свои ограничения, подобные ограничениям лидаров. Ultra-wide band (UWB): — Очень круто. Скорее всего, рано или поздно будет хорошо работать. Подтянется полупроводниковая технология. Цены упадут. Как-то решится вопрос со стабильностью, фазовыми шумами, ограничением по спектральной плотности излучаемого сигнала в 41.3 dBm/MHz. Но пока как-то не очень получается заказать готовые компоненты. Они вот-вот где-то совсем близко, но как-то все еще ускользают. Но разработок много и они многообещающие. Ждем и внимаем. Bluetooth and WiFi beacons— Потенциально очень хорошие варианты для телефонов и для точности до нескольких метров, потому что не требуют ничего дополнительно, кроме того, что уже есть в телефоне. Вкупе с инерциальными системами внутри телефонов и другими дополнительными данными, скорее всего, достигнут точности меньше метра на практике. Каждый год в Барселоне на MWC показывают разработки — и каждый год очень интересно. Для того, чтобы вести человека в торговом центре к полке с товаром — очень недурно. Для робота, пожалуй, маловато. Ему нужны сантиметры, чтобы не сшибать стены и створки дверей. Плюс чаще всего нужна предварительная калибровка помещения, размещения. И, конечно, радио не требует прямой видимости — это большой плюс. Ну, а для роботов, как минимум, нужен телефон или его начинка… Но по факту целый телефон может быть дешевле. Одометрия— Очень хорошая точность на малых расстояниях, пока нет препятствий, пока хорошее сцепление колес с полом. Один из основных источников информации для роботов. Но требует, время от времени, проверки текущего положения по дополнительному источнику данных, например, по Indoor «GPS». Без корректировки ошибка накапливается очень быстро и делает вычисление положения невозможным. Кроме того, одометрия хороша для вычисления положения робота относительно начальной точки робота. Но она ничего не говорит о положении робота в пространстве относительно прочих объектов — стен, коридоров, дверей. Инерциальные системы— Так же, как и с одометрией, можно получать очень хорошие результаты и очень быстро — с частотой десятки Гц. Но ошибка накапливается и требуется корректировка по каким-то другим источникам информации. Также, как и одометрия, инерциальные системы хороши для измерения относительного изменения положения. Начальное положение должно быть задано каким-то другим способом. Оптические системы— Сладкая мечта. Пока, не видел качественно работающих. Потенциал огромный. Но сложно и не надежно. А хочется просто и надежно. Специальные оптические системы— Есть красивые специальные варианты, когда робот определяет свое положение с помощью вертикально смотрящей камеры, идентифицируя яркие объекты, например, лампы, и позиционируясь по ним, как по звездам. Выглядит красиво. Не требует маяков. В некоторых случаях — отлично будет работать. GPS— Старый добрый GPS, к огромному сожалению, не работает, когда не видны спутники. Да и точность — метры. В общем, для роботов и помещений подходит не очень. Магнитометрия— Что-то очень изысканное. Для особых и специальных случаев. И, возможно, скорее, в качестве дополнительного источника данных. Кроме того, требует предварительной калибровки помещения и слишком подвержена влиянию собственных магнитов на роботе, например, от моторов или спикеров. Прочее— Есть много прочих изысканных вариантов. Например, можно оставлять невидимый след — печатать точки на полу, распылять химические вещества — оставлять метки. Это красиво. В некоторых случаях — удобно, надежно, и точно.— Движение по линии — ну, как бы, не совсем то, что хотелось бы. Но в специальных случаях — очень даже просто и надежно.— Усложненные варианты с оптическими метками, заранее установленных на стенах, потолках, объектах вокруг. Очень даже неплохой и относительно дешевый вариант для позиционирования именно в помещениях. Требует предварительной «разметки» территории. Но, если делать ее просто и автоматически или, даже, если позволить размечать территорию самому роботу, во время первых проездов территории, может оказаться очень дешевым и точным вариантом. В общем, систем возможных оказалось много. Но учитывая наши цели и задачи роботов, а также ограничение по финансам, мы остановились на самом простом и самом недорогом работающем варианте с ультразвуком, который при простых решениях давал бы сантиметровую точность.Результаты и следующие шаги — Мы сделали систему навигации на основе ультразвуковых активных маяков, потому что этот подход работает уже сейчас и решает задачи, стоящие перед нашими и многими роботами. Среди пилотных клиентов — мобильные роботы из США, коптер команды испанских студентов, французский робот для развозки лекарств в госпитале и парочка российских рекламных роботов.— Решает ли эта система все задачи навигации внутри помещения? Нет, не все. Например, когда прямая видимость на маяки затруднена или есть активные помехи в ультразвуке, система может показывать неоптимальные результаты. Но есть и решения — более частая установка маяков и использование ультразвуковых сенсоров для «чистых» диапазонов.
— Кроме того, по результатам Сколково, выяснилось, что «такое же, только на большее расстояние» нужно сразу нескольким другим типам роботов: чтобы парковаться на парковке; чтобы красиво убирать снег и не ломать чужие машины и стены. Так что мы поигрались немного и расширили радиус работы в ультразвуке до 50 метров и делаем вариант подходящего климатического исполнения.
— Оптимальное решение же для навигации — в использовании связки сразу нескольких систем, дополняющих друг друга. Конкретная комбинация зависит от стоящих перед роботом задач и существующих ограничений (точность, размеры, ток потребления, деньги, и так далее).