УДК 004.93 + 004.896
Д. А. Барамия , М. С. Дьяков 2, М. М. Лаврентьев 3
1 Новосибирский государственный университет ул. Пирогова, 2, Новосибирск, 630090, Россия
2 ООО «СофтЛаб-НСК» пр. Акад. Коптюга, 1, Новосибирск, 630090, Россия
3 Институт автоматики и электрометрии СО РАН пр. Акад. Коптюга, 1, Новосибирск, 630090, Россия
[email protected], [email protected], [email protected]
РАЗРАБОТКА СИСТЕМЫ ОДНОВРЕМЕННОЙ ЛОКАЛИЗАЦИИ И ПОСТРОЕНИЯ КАРТЫ НА ОСНОВЕ ДАННЫХ С ЛИДАРА
И ВИДЕОКАМЕР
Рассматривается разработанная система одновременной локализации и построения карты. Для повышения точности позиционирования предлагаются методы локализации по визуальным маркерам, предсказания позиции при отсутствии одометра, замыкания циклов. Представлены результаты тестирования разработанной системы.
Ключевые слова: система одновременной локализации и построения карты, SLAM, замыкание циклов, визуальные маркеры, фильтр частиц.
Введение
В настоящее время, несмотря на значительный прогресс в области робототехники, задача по созданию автономного мобильного робота, способного перемещаться в неизвестном окружении, остается актуальной. Общей проблемой, решаемой системой управления автономным мобильным роботом, является определение позиции управляемого объекта и построение карты препятствий окружающей местности. В литературе описывается как задача одновременной локализации и построения карты (от англ. Simultaneous Localization And Mapping, SLAM). Как правило, для ее решения используются компьютерные алгоритмы для обработки данных с различных оптических устройств и датчиков определения пройденного пути (одометров).
Общий принцип работы SLAM можно представить циклической последовательностью следующих действий. Первоначально происходит сбор данных сдатчиков, чтобы получить информацию об объектах, расположенных в окружающей местности. Далее определяется собственное местоположение на основе полученной информации и карты препятствий, которая содержит предыдущие измерения. Определив позицию управляемого объекта, система переходит к обновлению карты. Таким образом, на каждом шаге алгоритма система располагает предположениями о структуре окружающей местности (карта препятствий) и местоположении управляемого объекта относительно этой карты.
Барамия Д. А, Дьяков М. С., Лаврентьев М. М. Разработка системы одновременной локализации и построения карты на основе данных с лидара и видеокамер // Вестн. Новосиб. гос. ун-та. Серия: Информационные технологии. 2015. Т. 13, вып. 1. С. 5-15.
ISSN 1818-7900. Вестник НГУ. Серия: Информационные технологии. 2015. Том 13, выпуск 1 © Д. А. Барамия, М. С. Дьяков, М. М. Лаврентьев, 2015
На данный момент существует большое количество исследований по решению задачи SLAM. Разработанные системы можно классифицировать по типу используемых датчиков (устройств для определения постоянных ориентиров в окружающей местности, например, RGB-D-камеры [1], двумерные лазерные дальномеры [2]) или по методам вычислений (алгоритмам для построения гипотез о текущем положении робота, например, фильтр Калмана [3] или фильтр частиц [4]). Многие из этих решений основаны на довольно сложных, требующих большого количества кода для реализации, алгоритмах c внутренними зависимостями, из чего следует проблема в их модификации и интеграции в другие системы. Данный недостаток отсутствует в системе CoreSLAM [5], цель разработчиков которой заключалась в создании простых алгоритмов, удобных для расширения и имеющих хорошую производительность. Кроме того, реализованное двумерное представление карты позволяет работать с динамическим окружением и требует лишь технической обработки (например, масштаби-рования)при использовании для построения пути. По этим причинам данная система была выбрана в качестве основы для дальнейшей разработки.
Система CoreSLAM
Рассмотрим общий принцип работы CoreSLAM (рис. 1). Сначала происходит сбор информации с датчиков управляемого объекта, а именно с одометра и двумерного лидара. После этого, идет обработка возможных ошибок, полученных с устройств, и учет одометрии для первого предсказания позиции и направления объекта. Следующим шагом является использование фильтра частиц для предсказания наилучшей позиции и направления объекта с учетом полученных данных. Иначе говоря, относительно ориентации и координат, которые на этот момент считаются наиболее подходящими для управляемого объекта, происходит разброс теоретических частиц, каждая из которых имеет направление и позицию, с нормальным распределением. Далее, с помощью собранных данных и карты препятствий, которая содержит предыдущие измерения лидара, проводится весовая оценка каждой частицы. Определив частицу с большим весом и соответствующие ей координаты и направление, система переходит к обновлению карты препятствий. На этом этапе данные с лидара наносятся на карту с учетом найденной позиции и ориентации в фильтре частиц.
Имея некоторое представление о работе системы CoreSLAM, рассмотрим ее недостатки, выявленные после проведения модельных экспериментов в виртуальном пространстве. Во-первых, возникает большая погрешность в определении позиции на однородной местности. Например, в длинном, однообразном коридоре. Во-вторых, вместе с этой проблемой появляется сложность в учёте погрешности одометра, что приводит к увеличению ошибки локализации и построения карты. В-третьих, в системе отсутствует замыкание циклов (от англ. loop closing, алгоритм, позволяющий распознать ранее исследованные области), что приводит к накоплению ошибки со временем. Также особенностью CoreSLAM является обязательное наличие одометра для предсказания позиции управляемого объекта, что может накладывать ограничение на использование системы.
Рис. 1. Диаграмма состояний системы CoreSLAM
Цель работы
и формулировка требований
Целью работы является создание системы локализации и построения карты на основе данных с лидара и видеокамер, как с возможностью учета информации с одометра, так и без нее.
Сформулируем требования к разрабатываемой 8ЬЛЫсистеме с учетом описанных недостатков CoreSLAM:
• уменьшить погрешность локализации управляемого объекта на однородной местности;
• улучшить корректировку позиционирования при больших погрешностях одометра;
• проводить локализацию управляемого объекта с учетом замыкания циклов;
• проводить предсказание позиции управляемого объекта при отсутствии внешних устройств для получения одометрии;
• время одной итерации в среднем должно быть не больше 100 мс.
Ограничение по времени связано с частотой обновления данных используемого лидара и необходимостью дальнейшего управления роботом с помощью полученной карты препятствий.
Позиционирование камеры
по визуальным маркерам
SLAM - системы основаны на выделении постоянных ориентиров в окружающей местности, относительно которых происходит позиционирование управляемого объекта. В CoreSLAM используется лидар для нахождения статических объектов, но информации, полученной от данного устройства, недостаточно для локализации в однородной местности с небольшой погрешностью. В связи с этим было предложено внедрить в систему дополнительный оптический датчик - камеру. Определяя параметры камеры, характеризующие ее геометрические свойства и расположение, можно предоставить вспомогательную информацию фильтру частиц для оценки положения управляемого объекта в пространстве. Оцениваемые параметры делятся на две группы: внутренние и внешние [6. С. 567-568].
Внутренние параметры являются характеристиками камеры, которые зависят от особенностей конкретного используемого устройства и не изменяются с течением времени. К ним относятся: главная точка (принципиальная точка), масштабные множители для горизонтального и вертикального размеров пикселя, фокусное расстояние и коэффициенты дисторсии. В связи с неизменностью данных параметров со временем внутреннюю калибровку (процесс восстановления параметров) устройства требуется выполнить один раз. Для этого используется метод, предложенный в работе Zhang [7], в котором в качестве калибровочного стенда используется изображение шахматной доски с известным набором углов черных клеток в локальной системе координат.
Внешние параметры описывают местоположение и ориентацию системы координат камеры в трехмерном пространстве. К ним относятся: вектор переноса и матрица поворота. Внешние параметры, в отличие от внутренних, необходимо определять с частотой обновления данных в SLAM-системе, так как ориентация и положение камеры постоянно изменяются из-за движения управляемого объекта. Для выполнения внешней калибровки предлагается использовать визуальные маркеры, расположенные в окружающей местности, с известными координатами. Кроме того, маркеры должны быть уникальными для отождествления одного маркера с разных позиций и устойчивы к перспективным искажениям. Учитывая указанные условия, было решено использовать библиотеку ARUco [8] по распознаванию маркеров с двумерным баркодом (образец, кодирующий информацию графическим способом) на изображении. Критериями выбора данной библиотеки были наличие системы кодирования маркера, устойчивость алгоритма выделения маркеров на изображении, точность и дальность позиционирования камеры по изображениям, поддержка библиотеки разработчиками.
Алгоритм внешней калибровки камеры состоит из трех этапов, причем первый выполняется до запуска системы.
1. Размещение визуальных маркеров. Определение положения маркеров в мировой системе координат.
2. Обнаружение и идентификация маркеров. Получив кадр окружающей местности с камеры, система занимается поиском визуальных маркеров на данном изображении.
3. Позиционирование камеры относительно маркера. Так как на изображении может присутствовать несколько визуальных маркеров, необходимо выбрать тот, относительно которого определение ориентации и положения камеры выполнится с меньшей погрешностью.
Оценка погрешности позиционирования камеры
по полученному изображению
Чтобы среди найденных на изображении маркеров выбрать подходящий для позиционирования камеры в пространстве с меньшей погрешностью, было предложено создать алгоритм, оценивающий ошибку позиционирования камеры относительно каждого обнаруженного маркера. Данный алгоритм основан на заранее созданной таблице погрешностей.
Для построения таблицы была разработана виртуальная комната, в которой автоматически генерируются маркеры с известными координатами и в каждый момент времени известна текущая позиция камеры, что позволяет сравнивать найденные координаты камеры с истинными. Сама таблица строится следующим образом. В виртуальной комнате отображается маркер на определенном расстоянии и под определенным углом относительно камеры. Далее рассчитывается погрешность позиционирования камеры и записывается в таблицу. Таким образом, итерируясь по углам и расстояниям с определенным шагом, алгоритм заполняет таблицу. С помощью этой таблицы можно оценить погрешность определения позиции и ориентации камеры относительно найденного маркера. Кроме того, построение таблицы погрешностей выполняется всего один раз для конкретного типа визуальных маркеров и метода распознавания этих маркеров на изображении.
Рассмотрим основные этапы алгоритма, который определяет подходящий маркер для локализации камеры с меньшей погрешностью. Первоначально, получив изображение, система производит поиск визуальных маркеров. После вычисляются расстояния от камеры до найденных маркеров, а также углы между направлением камеры и плоскостью маркеров. Далее с помощью таблицы погрешностей определяется возможная ошибка позиционирования камеры для конкретного расстояния и угла (для этого используются экстраполяция и билинейная интерполяция). Подходящим маркером является тот, относительно которого возможная ошибка позиционирования камеры наименьшая.
Внедрение метода локализации
по маркерам в 8ЬАМ-систему
Решение задачи внешней калибровки камеры, т. е. определение положения и ориентации в глобальной системе координат, предоставляет системе дополнительный критерий к оценке позиции и направления управляемого объекта. Чтобы воспользоваться полученной информацией требуется внедрить метод локализации по маркерам в имеющийся фильтр частиц. Для начала опишем более подробно принцип работы фильтра частиц в Соге8ЬАМ. В качестве входных параметров метод принимает текущие данные лидара, предсказанные позицию и направление управляемого объекта с помощью одометрии и карту препятствий, основанную на предыдущих данных лидара (после модификации к методу добавятся еще входные параметры, такие как предсказанные позиция и направление объекта по маркерам, и соответствующие им возможные погрешности). Итак, реализованный фильтр частиц состоит из нескольких этапов.
1. На первом этапе имеются предсказанные координаты и направление управляемого объекта. Относительно этих параметров происходит разброс теоретических частиц с нормальным распределением. Каждая частица имеет свою позицию и направление.
2. Для каждой теоретической частицы вычисляется вес с учетом карты препятствий и текущих данных лидара. Если частица с максимальной оценкой имеет вес больше, чем у предсказанной, тогда алгоритм переходит к первому этапу и уже относительно новой найденной частицы будет происходить нормальное распределение.
3. Определив частицу с максимальным весом и соответствующие ей координаты и направление, система переходит к обновлению карты препятствий.
Исходя из того, что весовая оценка теоретической частицы вычисляется только с учетом полученных данных лазерного дальномера и карты, следует проблема локализации управляемого объекта на однородной местности, так как данные с лидара в этом случае почти не меняются. Для решения этой проблемы было предложено ограничить поле разброса теоретических частиц с помощью полученных данных при внешней калибровке камеры по маркерам. Учитывая, что в качестве дополнительных входных данных добавляются рассчитанные позиция и направление объекта по маркерам, а также соответствующие им возможные погрешности, то ограничить поле разброса частиц достаточно просто. Для начала возьмем предсказанную позицию объекта по маркерам и будем считать ее центром области ограничения. А соответствующую ей погрешность, взятую из вышеописанной таблицы ошибок, примем за радиус этой области. И то же самое проделаем с предсказанным направлением. В итоге получается трехмерная область, причем все теоретические частицы, которые попадают в эту область, получают равные веса на этапе локализации объекта по маркеру. Если же частица лежит вне этой области, то вес равен нулю (на этапе локализации по маркеру). Таким образом, итоговый вес частицы складывается из весовых оценок локализации по данным ли-дара и локализации по маркерам.
Отметим, что наличие визуальных маркеров в окружении - не жесткое требование для корректной работы реализованной 8ЬЛМ-системы, а дополнительная возможность для более точного позиционирования управляемого объекта и построения карты местности. Также система имеет возможность работать с несколькими камерами одновременно. Чтобы определить, относительно какой камеры проводить локализацию, алгоритм сравнивает оценки погрешностей позиционирования камер по маркерам и выбирает камеру с наименьшей ошибкой. Включение данного модуля, а также настройка его параметров выполняется через конфигурационный файл. Кроме того, есть возможность использовать любой другой тип визуальных маркеров, которые уже расположены на местности. Для этого необходимо реализовать алгоритм распознавания конкретного вида маркеров на изображении и создать вышеописанную таблицу погрешностей.
Алгоритм предсказания позиции
управляемого объекта
Одним из требований системы Соге8ЬЛМ к списку используемого оборудования является наличие внешнего устройства для получения одометрии. Информация о пройденном пути позволяет сделать первоначальное предсказание позиции управляемого объекта перед применением фильтра частиц. И чем точнее предсказание, тем меньше понадобится итераций алгоритма фильтра частиц и времени для локализации.
Чтобы избежать данного ограничения на использование разработанной 8ЬЛМ-системы, было предложено создать алгоритм для первоначальной оценки положения объекта в случае отсутствия одометра. Основная идея заключается в следующем. На каждой итерации после использования фильтра частиц система сохраняет N частиц с наибольшими весами (значение N определяется эмпирически и задается в конфигурационном файле). Причем в начале каждой итерации система располагает только двумя последними наборами частиц: на шаге т система имеет два множества точек Кт_\ и Кт-2. Чтобы получить первоначальное предсказание позиции объекта (перед применением фильтра частиц), предлагается провести линейную экстраполяцию между всеми парами точек из двух множеств с последующим вычислением веса для каждой частицы из полученного набора с учетом текущих данных лидара и гло-
бальной карты препятствий. Частица с наибольшим весом выбирается в качестве начального предсказания позиции управляемого объекта.
Замыкание циклов
Замыкание циклов - важный модуль для 8ЬАМ-систем, позволяющий избежать накопления ошибки со временем путем распознавания ранее исследованных областей управляемым объектом в окружающей местности. Для оценки значимости данного алгоритма рассмотрим пошаговое движение управляемого объекта в неисследованной местности.
1. Запускается 8ЬАМ-система и объект начинает движение. На текущем шаге ошибка оценки местоположения управляемого объекта равна нулю.
2. Система получает первое измерение области А. Ошибка локализации статических объектов из данной области обусловлена погрешностью датчика, проводившего измерение.
3. По мере движения объекта вклад в ошибку локализации вносит и погрешность одометра. Таким образом, ошибка позиционирования является результатом комбинации погрешности измерений и погрешности рассчитанного местоположения управляемого объекта.
4. Объект возвращается в начало и проводит повторное измерение области А. В случае наличия алгоритма замыкания циклов 8ЬАМ-система при локализации управляемого объекта сможет учесть предыдущее измерение области А и позицию, в которой были получены эти данные, тем самым сократив накопленную ошибку оценки местоположения объекта.
Алгоритм замыкания циклов в разработанной 8ЬАМ-системе состоит из двух функций, которые направлены на уточнение позиции управляемого объекта, предсказанной с помощью фильтра частиц (см. выше о системе Соге8ЬАМ) по глобальной карте препятствий (карта, содержащая все данные, полученные с лидара). Первая функция сохраняет карту препятствий и текущую оценку положения управляемого объекта на данной карте при условии, что объект находится в неисследованной области. Неисследованная область определяется с помощью проверки принадлежности предсказанной позиции к некоторой окрестности уже сохраненных точек. Размер окрестности определяется эмпирически и задается в конфигурационном файле. В случае попадания предсказанной позиции в окрестность сохраненной точки выполняется вторая функция алгоритма замыкания циклов, которая проводит повторное позиционирование по соответствующей сохраненной карте. Так как точность карты препятствий связана с погрешностью оценки положения объекта и погрешность накапливается со временем, следовательно, ранее сохраненная карта не менее точна, чем глобальная карта. Таким образом, проведя повторную оценку позиции по сохраненной карте, можно сократить накопленную ошибку оценки положения объекта.
Тестирование 8ЬАМ-системы
Для проведения тестирования реализованной 8ЬАМ-системы был использован виртуальный симулятор автономного транспортного средства с наличием видеокамер, лидара и одометра. Кроме симулятора также было использовано несколько виртуальных окружений, что позволило определить размеры возникающих погрешностей при локализации управляемого объекта и корректность построения карты препятствий.
Виртуальное окружение используется по ряду причин. Во-первых, в каждый момент времени системе известно истинное положение управляемого объекта в глобальной системе координат. Во-вторых, виртуальное окружение легко модифицировать. Например, можно добавить визуальные маркеры на стены или дополнительные статические объекты. В-третьих, система может контролировать все параметры автономного транспортного средства и окружения.
При тестировании метода локализации по маркерам в качестве окружения использовался коридор длиной 20 метров с визуальными маркерами (рис. 2). Данный тип местности требуется для проверки поведения 8ЬАМ-системы в однородном пространстве. В список используемых устройств входили лидар, камера и одометр. Результаты эксперимента представлены в табл. 1.
Рис. 2. Однородный коридор: наверху слева находится настройка параметров окружения; внизу справа -изображение от виртуальной камеры; в центре - вид сверху на виртуальную сцену
Таблица 1
Точность локализации объекта в однородном коридоре
Система Скорость управляемого объекта, мм/с Среднее отклонение, мм Среднее квадра-тич. отклонение, мм Медиана отклонения, мм
Разработанная 8ЬАМ-система 400 122 175 99
Соге8ЬАМ 400 3 110 2 786 2 694
Все последующие модельные эксперименты проводились в окружении, состоящем из трех связанных помещений, со статическими объектами (рис. 3). Результаты тестирования (погрешность положения и ориентации объекта) алгоритма предсказания позиции управляемого объекта и алгоритма замыкания циклов представлены в табл. 2 и 3 соответственно. Кроме погрешности позиционирования важно рассмотреть корректность построенной карты препятствий, так как оценка позиции управляемого объекта связана с точностью карты. Как видно из рис. 4, разработанный алгоритм замыкания циклов сокращает неопределенность положения объекта при попадании в исследованную область.
Еще одним важным параметром системы является среднее время одной итерации. Тестирование проводилось на процессоре 1и1е1(Я)Соге(ТМ) 17-3820. Среднее время одной итерации составило 16,719 мс. Также исследовалось поведение разработанной 8ЬАМ-системы в реальном окружении с использованием лидара иЯ0-04ЬХ-и001. Эксперимент позволил оценить только корректность построенной карты препятствий (рис. 5).
Рис. 3. Три комнаты со статическими объектами в виртуальном пространстве
Таблица 2
Точность локализации объекта в случае отсутствия одометра при использовании алгоритма предсказания позиции и без него
Разработанная 8ЬЛМ-система Среднее отклонение коорд., мм Среднее квадратич. откл. коорд., мм Среднее отклонение ориент., град Среднее квадратич.откл. ориент., град
с алгоритмом предсказания 266,084 194,063 1,265 0,821
без алгоритма предсказания 925,283 521,771 4,735 1,865
Таблица 3
Точность локализации объекта при использовании замыкания циклов и без него. В случае отсутствия одометра и отключенного алгоритма предсказания позиции
Разработанная 8ЬЛМ-система Среднее отклонение коорд., мм Среднее квад-ратич. откл. коорд, мм Среднее отклонение ориент., град Среднее квадратич. откл. ориент., град
с замыканием циклов 83,628 38,98 0,436 0,344
без замыкания циклов 374,698 447,061 2,553 2,514
Рис. 2. Карты препятствий виртуального окружения. Слева - с использованием техники замыкания циклов;
справа - без замыкания циклов
Рис. 5. Карта препятствий реального окружения на основе данных с лидара ЦЯ0-04ЬХ-и001
Заключение
В работе представлена новая система одновременной локализации и построения карты на основе существующей реализации Соге8ЬАМ. Внедрен метод локализации по визуальным маркерам, позволяющий сократить погрешность оценки положения управляемого объ-
екта на однородной местности. Разработан алгоритм предсказания позиции объекта при отсутствии внешнего устройства для получения одометрии, а также алгоритм замыкания циклов для сокращения накопленной ошибки позиционирования со временем. К недостаткам разработанной SLAM-системы можно отнести большой расход памяти для хранения карт препятствий. Для решения этой проблемы предлагается сохранять некоторый набор данных с лидара вместо всей карты.
Список литературы
1. Endres F, Hess J, Engelhard N, Sturm J, Cremers D, Burgard W. An evaluation of the RGB-D SLAM system // Robotics and Automation (ICRA), 2012 IEEE International Conference on. 2012. P.1691-1696.
2. Lu F., Milios E. Robot pose estimation in unknown environments by matching 2d range scans // Journal of Intelligent and Robotic Systems. 1997. Vol. 18, № 3. P. 249-275.
3. Park J, Lee S, Park J. Correction robot pose for SLAM based on Extended Kalman Filter in a rough surface environment // International Journal of Advanced Robotic Systems. 2009. Vol. 6, № 2. P. 67-72.
4. Eliazar A., Parr R. DP-SLAM: Fast, robust simultaneous localization and mapping without predetermined landmarks // Proceedings of the 18th International Joint Conference on Artificial Intelligence (IJCAI). 2003. P. 1135-1142.
5. Steux B., EI Hanzaoui O. TinySLAM: A SLAM algorithm in less than 200 lines C-language program // Control Automation Robotics & Vision (ICARCV), 2010 11th International Conference on. 2010. P.1975-1979.
6. Шапиро Л., Стокман Дж. Компьютерное зрение. М.: Бином. Лаборатория знаний, 2006. 752 с.
7. Zhang Z. A flexible new technique for camera calibration // IEEE Transactions on Pattern Analysis and Machine Intelligence. 2000. Vol. 22, № 11. P. 1330-1334.
8. Garrido-Jurado S., Munos-Salinas R., Madrid-Cuevas F. J., Marin-Jimenez M. J. Automatic generation and detection of highly reliable fiducial markers under occlusion // Pattern Recognition. 2014. Vol. 47, № 6. P. 2280-2292.
Материал поступил в редколлегию 22. 04. 2015
D. A. Baramiya , M. S. Diakov 2, M. M. Lavrentyev 3
1 Novosibirsk State University 2 Pirogov Str., Novosibirsk, 630090, Russia
2 SoftLab-NSK Co. Ltd 1 Acad. Koptyuga Ave., Novosibirsk, 630090, Russia
3Institute of Automation and Electrometry SB RAS 1 Acad. Koptyuga Ave., Novosibirsk, 630090, Russia
[email protected], [email protected], [email protected]
DEVELOPMENT OF SIMULTANEOUS LOCALIZATION AND MAPPING SYSTEM BASED ON LIDAR AND CAMERAS DATA
In this article the developed simultaneous localization and mapping systemis considered. Methods for localization by visual markers, prediction of the position in the absence of an odometer, loop closing have been suggested to improve accuracy of positioning. Testing results of the developed system are presented as well.
Keywords: simultaneous localization and mapping, SLAM, loop closing, visual markers, particle filter.
References
1. EndresF., HessJ., EngelhardN., SturmJ., CremersD., BurgardW. AnevaluationoftheRGB-D SLAM system. Robotics and Automation (ICRA), 2012 IEEE International Conference on, 2012, p. 1691-1696.
2. Lu F., Milios E. Robot pose estimation in unknown environments by matching 2d range scans. Journal of Intelligent and Robotic Systems, 1997, Vol. 18, № 3, p. 249-275.
3. Park J., Lee S, Park J. Correction robot pose for SLAM based on Extended Kalman Filter in a rough surface environment. International Journal of Advanced Robotic Systems, 2009 , vol. 6, № 2, p. 67-72.
4. Eliazar A., Parr R. DP-SLAM: Fast, robust simultaneous localization and mapping without predetermined landmarks. Proceedings of the 18th International Joint Conference on Artificial Intelligence (IJCAI). 2003, p. 1135-1142.
5. Steux B., EI Hanzaoui O. TinySLAM: A SLAM algorithm in less than 200 lines C-language program. Control Automation Robotics & Vision (ICARCV), 2010 11th International Conference on, 2010, p.1975-1979.
6. Shapiro L., Stockman G. Computer vision. Upper Saddle River, N. J.: Prentice Hall, 2001, 608 p.
7. Zhang Z. A flexible new technique for camera calibration. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, vol. 22, № 11, p. 1330-1334.
8. Garrido-Jurado S., Munos-Salinas R., Madrid-Cuevas F.J., Marin-Jimenez M.J. Automatic generation and detection of highly reliable fiducial markers under occlusion. Pattern Recognition, 2014, vol. 47, № 6, p. 2280-2292.