Введение 2
Постановка задачи 5
Обзор литературы 7
Глава 1. Аппаратное обеспечение 11
Глава 2. Построение карты глубины 13
Глава 3. Определение препятствий 15
Глава 4. Автономное построение карты местности 19
Глава 5. Программная реализация 23
Выводы 26
Заключение 28
Список литературы 29
В настоящее время индустрия автономных и полуавтономных платформ получила широкое развитие. Существует множество коммерческих продуктов, выполняющих самые разнообразные функции: от портативных роботов-пылесосов до беспилотных автомобилей. В данном исследовании рассматривается задача автономной навигации роботизированной платформы с использованием стереозрения. Для этого необходимо решить несколько нетривиальных задач: определение препятствий (obstacles detection), определение положения робота (pose estimation), построение карты местности (mapping) и построение маршрута (path planning). Данные подзадачи могут решаться независимо друг от друга или же синхронизировать свои данные — всё зависит от общей архитектуры алгоритма.
В настоящем исследовании предлагается для определения препятствий использовать стереозрение. Алгоритмы стереозрения позволяют определять расстояния до объектов, используя откалиброванную стереопару. В процессе калибровки происходит нахождение внутренних параметров камеры, их взаимного расположения и матрицы триангуляции (размера 4 х 4). После этого находятся преобразования, которые преобразуют изображения с камер так, чтобы плоскости камер совпали, а эпиполярная плоскость была ортогональна плоскостям камер (рис. 1). Для нахождения расстояния от стереопары до некоторой точки, необходимо определить координаты её проекций A^Xf yieft), A^x^ght, yright). Так как после калибровки yieft = yright, то поиск точки с одного изображения необходимо производить только вдоль оси x другого. Найденная глубина (диспаритет, disparity) d = xleft — xright позволяет определить реальные координаты объекта (X/W,Y/W,Z/W):
(X Y Z W) T = Q (xieft yieft d 1) T
После того, как в каждом конкретном случае известно расположение препятствий и данных о местоположении робота, можно провести построение карты местности. Метод одновременной локализации и построения карты (Simultaneous Localization and Mapping — SLAM) без внешних данных о положении робота позволяет построить карту местности. Но, к сожалению, этот подход сложен в настройке параметров, требует множества вычислительных ресурсов и его реализация выходит за предмет данного исследования. Вместо этого предлагается использовать встроенные в роботизированную платформу датчики (энкодеры).
Последним этапом в автономном построении карты местности является задача планирования маршрута до точки. Это задача решается при помощи теории графов. Существуют как точные решения данной задачи (алгоритм Дейкстры во взвешенном графе или поиск в ширину в невзвешенном),так и эвристические, которые различным образом оптимизируют нахождение пути (большинство из них основаны на алгоритме А*(рис. 2), являющимся эвристической модификацией алгоритма Дейкстры). Также существуют алгоритмы обзора местности без поиска пути до конкретных точек.
Таким образом, в данный момент существует большое количество разнообразных методов и подходов, позволяющих построить карту местности в автономном роботе. В данном исследовании предлагается подход, реализуемый на встраиваемом оборудовании и работающий в режиме реального времени.
Рис. 1: Справа: изображения на неоткалиброванных камерах. Слева: ректифицированные изображения.
Настоящая диссертация является дальнейшим развитием работы [1], где было реализовано построение карты местности при помощи платформы, управляемой вручную. Так как вычисления велись на полноценном компьютере, а навигация шла вручную, то для реализации целей настоящей работы потребовалось значительная оптимизация алгоритмов и программного кода, также некоторые модули были модифицированы.
Рис. 2: Демонстрация работы алгоритма А*. Синий цвет - препятствия, зеленый цвет - свободные точки, черный цвет - начальная точка, красный цвет - конечная точка, белый цвет - проанализированные пиксели.
В результате данного исследования был создан программно-аппаратный комплекс, производящий автономное построение карты местности при помощи стереозрения. За основу был взят комплекс, созданный в ходе предыдущей работы автора, в котором производилось построение карты местности роботом, соединенным с вычисляющим устройством - компьютером. Для создания автономного комплекса, выполняющего все вычисления на встраиваемом микрокомпьютере, существующие алгоритмы построения карты глубины, определения препятствий и нанесения их на карту были существенно дополнены и оптимизированы. Помимо этого, был реализован алгоритм построения пути для автономного движения, который учитывал найденные препятствия и построенную карту местности. Реализованный комплекс может автономно исследовать офисные и жилые помещения и строить двумерную карту местности в режиме реального времени. Пользователь может отслеживать движения платформы и ход построения карты по беспроводному каналу связи. Данная работа опиралась на новые исследования в предметно области, и в ней использовались современные информационные и инженерные технологии.