Совместное развитие сенсорики и робототехники
Мы упомянули три понятия, связанные с термином "навигация": "построение карты" ("картирование"), "локализация" и "построе- ние пути", которые связаны со способностью робота воспринимать окружающую среду и перемещаться в ней. Дадим этим центральным понятиям более четкие определения.
Картирование - это процесс создания и обновления представления об окружающей робота среде, включая препятствия, ориентиры и другие ее особенности. Робот получает данные с помощью таких датчиков, как камеры или лидары, и создает карту, которая помогает ему ориентироваться. Помимо (и независимо от) навигации самого робота, картирование беспилотными средствами может использоваться для разведки местности или реконструкции цифровых копий объектов в 3D.
Локализация - это процесс, с помощью которого робот определяет свое положение и ориентацию на местности (относительно выбран- ной точки отсчета и системы координат). Для этого могут использоваться такие датчики, как GPS/GNSS, системы технического зрения и одометрия, которые предоставляют информацию о движении и положении робота относительно окружающей среды.
Планирование пути - это процесс решения математической задачи поиска кратчайшего (на определенном отрезке или глобально) и свободного от препятствий пути от начальной до конечной точки движения робота. В общем случае эту задачу часто объединяют с планированием движения робота - нахождением последовательности допустимых конфигураций робота, которая перемещает объект от источника к месту назначения. В примере шагающего робота планирование движения отвечает за выбор длины и высоты каждого шага, планирование пути (общую траекторию) [105].
Таким образом, картирование - это создание представления об окружающей среде, локализация - это определение положения робота в этой среде, а планирование пути - это вычисление и осуществление перемещения на базе упомянутых выше данных. Пере- численные три концепции работают вместе, решая задачу навигации и позволяя роботам автономно перемещаться и достигать цели в сложных условиях.
Различают локальную и глобальную локализацию. Первая позволяет компенсировать ошибки определения местоположения робота на карте, когда его начальное местоположение известно (здесь, как правило, используются датчики на роботе), а вторая позволяет найти положение робота в незнакомом месте (как правило, используя внешние датчики и системы позиционирования).
Автономная навигация может осуществляться в разных условиях. Очевидно, что при навигации беспилотника в небе количество препятствий меньше, чем у мобильного робота в помещении. А навигация в пространстве, где обстановка не меняется (препятствия, которые обнаружены, остаются на своих местах), проще, чем навигация там, где препятствия движутся и обстановка постоянно меняется (например, в зале, по которому ходят люди, с которыми нельзя сталкиваться).
В разных условиях доступны разные датчики. Например, на открытой местности доступна GPS/GNSS-навигация, а в помещениях, где стены и крыши ослабляют сигнал, такая навигация может быть недоступна. Наборы датчиков для дронов, наземных роботов и морских роботов могут существенно различаться. Рассмотрим особенности автономной навигации в разных средах.
Автономная навигация наземных мобильных роботов
В развитии навигации мобильных наземных роботов и внутри помещения, и на открытой местности можно отметить ряд этапов. Начиналось все с движения по карте (либо по размеченной местности, если мы говорим про навигацию внутри помещения). Выше мы уже описали примеры управления AGV от движения по жестким направляющим до использования систем одометрии и лазерных дальномеров.
Следующим этапом в развитии навигации стало то, что роботы научились создавать карты, то есть робот стал не просто перемещаться в окружающем пространстве, но и фиксировать это окружение в виде карты. Мобильный аппарат еще не мог локализовываться в нем (понимать собственное положение), но уже мог по визуальным датчикам либо по 2D-лидарам, а позже по 3D-камерам (рис. 4.36) восстанавливать это окружающее пространство и осуществлять картографирование.

Рис. 4.36. Потенциал разных технологий в осуществлении автономной навигации с помощью машинного зрения
3D-камеры обеспечили улучшенный способ картографирования, а использование нейронных сетей позволило обрабатывать данные с 3D-лидаров (3D-изображений с данными глубины), а в последнее время и с 2D-изображений, восстанавливая поверхности в объеме.
Роботы научились не только картографировать, но и определять свое положение и связывать его с картой - возникли SLAM (Simultaneous Localization and Mapping) методы одновременной локализации и картирования. SLAM предполагает решение роботом двух задач в режиме реального времени - отслеживание в процессе движения своего местоположения, одновременно сохраняя на карте встречающиеся ориентиры.
Со временем стали создаваться алгоритмы навигации, которые позволяли роботу ехать не просто по предзаписанному маршруту по карте, а корректировать свое положение и дальнейшее движение исходя из тех данных, которые он собирает по пути в процессе картирования и локализации.
По сути, компьютерное зрение в сочетании с одометрией, инерциальной навигацией и слиянием датчиков с использованием ИИ позволило мобильным роботам делать то, что люди делают постоянно, - автономно ощущать свое окружение по мере перемещения в нем, составляя его умозрительную карту и локализуя себя (пони- мая свое место) в пределах этой карты.
Для того чтобы более подробно и полно рассмотреть системы навигации внутри помещения, основанные на машинном зрении, полезно обратиться к схеме ( рис. 4.37).
Как мы уже упомянули выше и как отмечено на рисунке, методы навигации мобильных роботов можно разделить на навигацию по карте, навигацию без карты и навигацию с построением карты.
Для того чтобы в самых общих чертах разобраться, как могут быть реализованы данные методы, приведем простую аналогию. Представим себе, что некий приезжий вышел в новом для него городе из своего отеля, дошел до центра города и пытается вернуться в здание, где находится его отель. Добраться до отеля можно различными способами.
Человек может попытаться вспомнить количество пройденных шагов и вернуться, отсчитав то же число шагов.
Человек может купить карту и добраться до цели (осуществляя навигацию по карте). Если карты нет, можно нарисовать собственную в процессе передвижения по городу. Наконец, можно осмотреться, пытаясь найти знакомую высотку рядом с отелем, и попытаться подойти к ней, держа в поле зрения ее вершину (это навигация без карты).
При автономной навигации роботы используют похожие стратегии.
Навигация на основе карт
В этом методе для навигации робота используется готовая карта окружающей среды, которую робот может использовать для планирования своего пути и принятия навигационных решений.
Наличие карты предполагает наличие последовательности ориентиров, которые задаются роботу и которые он должен найти в процессе навигации. Робот использует систему технического зрения, которая обеспечивает поиск и распознавание ориентиров.
Полученные ориентиры сравниваются с имеющимися в базе данных (карте), и при обнаружении совпадения робот определяет свое положение.
При абсолютных методах локализации начальное положение робота может быть неизвестно, и система должна найти соответствие между текущими и ожидаемыми данными, осуществляя поиск по всей базе данных.
В случае инкрементной локализации предполагается, что в начале навигационного сеанса местоположение робота примерно известно, и целью системы технического зрения является уточнение координат местоположения мобильного аппарата. В этом случае на основе приблизительно заданного начального местоположения робота могут быть сформированы ожидаемые ориентиры. Когда по мере движения сцена с ожидаемым ориентиром согласуется с восприятием камеры, робот может уточнить свое местоположение.
Метод слежения за ориентирами предполагает, что робот обнаруживает и распознает ориентиры (искусственные или естественные) на изображении с камеры и отслеживает их в последующих сценах.
Навигация на основе построения карты
В категории "навигация на основе построения карты" на рис. 4.37 отмечено две аббревиатуры: SLAM (Simultaneous Localization And Mapping) и CML (Cooperative Mapping and Localization) - эти методы используются в робототехнике для оценки позиции (положения и ориентации) робота по отношению к окружающей среде и одновременного построения карты окружения.
По сути, решение задачи SLAM делает робота по-настоящему автономным, поскольку дает возможность поместить аппарат в неизвестное место в неизвестной среде и позволяет роботу постепенно построить карту среды и определить свое местоположение на ней. Как правило, SLAM предполагает интеграцию данных от различных бортовых датчиков, таких как одометрия, камеры или лидары для оценки пространственных характеристик окружающей среды и выбора траектории движения. Решение осложняется тем, что для локализации нужна карта, а для построения карты необходимо иметь представление о локализации. Поэтому говорят, что алгоритмы SLAM призваны решить проблему "курицы и яйца", заключающуюся в одновременной оценке положения робота и создании карты в режиме реального времени. Метод связывает два процесса в непрерывный цикл последовательных вычислений, при котором результаты одного процесса участвуют в вычислениях другого. SLAM использует статистические методы, для итеративного приближения решения о местоположении и ориентации робота. Как итеративная задача, SLAM начинается с известного местоположения мобильного робота, смоделированного прогноза его будущего состояния - оценки места и положения на основе текущей скорости и направления, а также данных датчиков из нескольких источников с оценками возможных ошибок.
SLAM - это сложная проблема в мобильной робототехнике и ИИ, которая изучается уже около 30 лет. Разработанные в академических лабораториях в начале 1990-х годов алгоритмы SLAM остаются областью исследований и развития, переходя от облаков точек с лидара к визуальным данным (vSLAM) с камер, от стерео к монокулярным датчикам, при этом используются новые методы фильтрации и сжатия данных, дополнительные датчики и методы нахождения признаков (фичей) на изображениях. Различные версии алгоритма доступны для пользователей, например, в упомянутой нами библиотеке Robot Operating System (ROS) с открытым исходным кодом.
CML (Cooperative Mapping and Localization) фокусируется на совместном картографировании и локализации группой роботов, которые работают в команде, совместно строят карту и локализуют себя на ней. Кооперативный алгоритм CML объединяет сенсорную и навигационную информацию от нескольких автономных транспортных средств. Несколько транспортных средств могут быстрее и надежнее составить карту окружающей среды, чем одно. Роботы обмениваются друг с другом данными датчиков, оценками положения или информацией о карте для совместного повышения точности и достоверности карты и локализации. CML позволяет роботам использовать коллективные знания и возможности распределенного зондирования для достижения более надежного картирования и локализации.
Навигация без карт
В случае визуальной навигации без карт роботы должны ориентироваться, напрямую сопоставляя наблюдаемое внешнее пространство (и извлекаемую необходимую информацию об ориентирах в окружающей среде) с действиями, направленными на переход от исходного местоположения к заданной точке.
В зависимости от техники зрения и типов "подсказок" методы навигации без карт можно разделить на методы навигации по оптическому потоку и по распознаванию объектов на основе признаков.
Оптический поток для навигации робота можно определить как движение элементов поверхности визуального мира. Когда человек перемещается в некоторой среде, его зрительная система помогает определить собственное перемещение по движению окружающих его объектов. Иными словами, оптический поток - это видимое движение объектов (последовательность изображений).
На базе оптического потока разрабатываются алгоритмы для предотвращения столкновения с препятствиями автономного мобильного робота. Последовательность изображений фиксируется камерой, затем информация оптического потока извлекается из последовательности изображений для использования в навигационном алгоритме. Оптический поток обеспечивает информацию о состоянии окружающей среды вокруг робота, а именно: диспозицию препятствия, место робота, время до столкновения с препятствием. Оценка количества точек препятствия на левой и правой стороне кадра позволяет роботу передвигаться без столкновений с препятствиями [ "Источники использованной литературы" ].
В случае использования двух камер возможна схема, при которой робот осуществляет навигацию по принципу бинокулярного зрения. Используя разницу между скоростью изменения изображения, видимого левым и правым глазом, можно корректировать траекторию движения, избегая столкновения. Если препятствие находится слева, то, приближаясь к нему, левый глаз будет фиксировать более быстрое приближение объекта, чем правый. Таким образом, если скорости, фиксируемые левым и правым глазом, различаются, то робот движется в ту сторону, изображение которой меняется с меньшей скоростью. На основе этого принципа было создано несколько успешных навигационных систем, предназначенных для перемещения мобильного робота по неизвестной среде.