Введение 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: Демонстрация работы алгоритма А*. Синий цвет - препятствия, зеленый цвет - свободные точки, черный цвет - начальная точка, красный цвет - конечная точка, белый цвет - проанализированные пиксели.
В результате данного исследования был создан программно-аппаратный комплекс, производящий автономное построение карты местности при помощи стереозрения. За основу был взят комплекс, созданный в ходе предыдущей работы автора, в котором производилось построение карты местности роботом, соединенным с вычисляющим устройством - компьютером. Для создания автономного комплекса, выполняющего все вычисления на встраиваемом микрокомпьютере, существующие алгоритмы построения карты глубины, определения препятствий и нанесения их на карту были существенно дополнены и оптимизированы. Помимо этого, был реализован алгоритм построения пути для автономного движения, который учитывал найденные препятствия и построенную карту местности. Реализованный комплекс может автономно исследовать офисные и жилые помещения и строить двумерную карту местности в режиме реального времени. Пользователь может отслеживать движения платформы и ход построения карты по беспроводному каналу связи. Данная работа опиралась на новые исследования в предметно области, и в ней использовались современные информационные и инженерные технологии.
[1] Д. Ковалев. Построение карты местности с использованием стереозрения: бакалаврская работа // СПбГУ, СПб, 2015.
[2] Hugh Durrant-Whyte, Tim Bailey. Simultaneous Localisation and Mapping (SLAM): Part I The Essential Algorithms // IEEE Robotics and automation magazine, 2006. Vol. 2.
[3] Hugh Durrant-Whyte, Tim Bailey. Simultaneous Localisation and Mapping (SLAM): Part II State of the Art // IEEE Robotics and automation magazine, 2006. Vol. 2.
[4] Varveropoulos V. Robot Localization and Map Construction Using Sonar Data // The Rossum Project. http://rossum.sourceforge.net
[5] Ruhnke M., Kiimmerle R., Grisetti G., Burgard W. Highly accurate maximum likelihood laser mapping by jointly optimizing laser points and robot poses // Proceedings of 2011 IEEE International Conference on Robotics and Automation. 2011.
[6] Wang X. 2D Mapping Solutions for Low Cost Mobile Robot // KTH Royal Institute of Technology, 2013.
[7] Labbe M. Real-time appearance-based mapping in action at the Microsoft Kinect Challenge // IROS 2014.
[8] Diebel J., Reutersward K., Thrun S., Davis J., Gupta R. Simultaneous Localization and Mapping with Active Stereo Vision // Proceedings of 2006 9th International Conference on Control, Automation, Robotics and Vision. 2006.
[9] J. J. Little. Stereo vision SLAM: Near real-time learning of 3D pointlandmark and 2D occupancy-grid maps using particle filters // Proceedings of IEEE/RSJ International Conference on Intellegent Robots and Systems, IROS. 2007.
[10] Alamus R., Baron A., Casacuberta J., Pla M., Sanchez S., Serra A., Talaya J. Geomobil: ICC land based mobile mapping system for cartographic data capture // Proceedings of the XXII International Cartographics Conference, 2005.
[11] Aghili F. 3D simultaneous localization and mapping using IMU and its observability analysis // Robotica, Cambridge University Press. 2010
[12] Jebara T., Azarbayejani A., Pentland A. 3D Structure from 2D Motion // IEEE Signal Processing Magazine, "3D And Stereoscopic Visual Communication"May 1999, Vol. 16. No. 3.
[13] James T. Dietrich. Riverscape mapping with helicopter-based Structure- from-Motion photogrammetry // Geomorphology, 2016, Vol 252, P. 144-157.
[14] Chikurtev D. Optimizing the Navigation for Mobile Robot for Inspection by Using Robot Operating System // Problems of Engineering Cybernetics and Robotics, Vol. 66, Sofia, 2015.
[15] Zhang Ji, Singh S. LOAM: Lidar Odometry and Mapping in Real-time // Robotics: Science and Systems Conference (RSS). Berkeley, CA, July 2014.
...