ТЕХНИЧЕСКИЕ НАУКИ/ 11. Робототехника.

 

 

Стабилизация автономного летательного аппарата в ограниченном пространстве с использованием RGB-D сенсора и инерциального измерительного устройства

 

Митрохин Антон Вадимович,

Студент второго курса, Московский физико-технический институт (государственный университет)

E-mail: anton.mitrokhin@phystech.edu mailto:vazav@mgsu.ru

 

Нуждин Дмитрий Олегович

Аспирант второго года обучения, Московский физико-технический институт (государственный университет)

 

Маширин Александр Владимирович

Студент второго курса, Московский физико-технический институт (государственный университет)

 

 

Метод одновременной навигации и построения карты (SLAM, Simultaneous Location and Mapping) широко используется в современной робототехнике, однако реализации большинства его алгоритмов зачастую неспособны работать в реальном времени или работают весьма неточно. В данной работе рассматривается пример использования SLAM в сочетании с данными IMU, для стабилизации в воздухе беспилотного летательного аппарата, что позволяет снизить нагрузку на вычислительную систему и одновременно снизить требования к сенсорам автономного устройства.

                  

         Ключевые слова: автономные летательные аппараты, SLAM, построение карт, автономная навигация, стабилизация в пространстве, робототехника

I.                  Введение

Стабилизация летательного аппарата в пространстве зачастую требует учёта бокового ветра, погрешностей сенсоров и несовершенств конструкции, а потому возникает необходимость весьма точного позиционирования относительно окружающей среды. Нередко возникает необходимость планирования движения по сложной траектории, для чего также важно знать положение летательного аппарата в пространстве. Навигационные системы основанные на передаче информации по беспроводному каналу, такие как GPS, обычно не применимы в подобных случаях из-за недостаточной точности и слабого сигнала, из-за чего летательный аппарат должен оценивать своё положение используя только бортовые сенсоры.

Рисунок 1 Наш робот. RGB-D камера жёстко прикреплена к раме и немного наклонена вниз.

Сравнительно недавно на рынке появились так называемые RGB-D камеры, позволяющие получать информацию не только о цвете, но и о расстоянии до каждого пикселя изображения. Такие камеры сейчас широко распространены (Kinect, ASUS Xtion) и благодаря широкому использованию в игровой индустрии [8] имеют невысокую стоимость. В частности, сенсор Microsoft Kinect, разработанный PrimeSense, обеспечивает изображение разрешением 640x480 с частотой 30 кадров в секунду. Альтернативой RGB-D камерам являются «лидары» (LIDAR), имеющие более высокие углы обзора и дальность, но они способны выполнять сканирование только в одной плоскости и потому их использование ограничено в случаях сложной местности, когда необходимо маневрировать во всех трёх измерениях.

Описанные выше RGB-D камеры работают на принципе структурированного света (structured light). Они проецируют на поверхность заданный рисунок и по его искажению оценивают расстояние до поверхности. Благодаря такому подходу этот тип камер устойчив к плохой освещённости, но радиус их действия ограничен возможностями проектора. Для Microsoft Kinect этот радиус равен 4 метрам.

         В данной работе описывается наш подход к обеспечению автономного летательного аппарата (ЛА) быстрой и надёжной оценкой положения и трёхмерной картой, используя бортовой RGB-D сенсор и данные с инерциального измерительного устройства (IMU). Вместе приборы позволяют безопасно передвигаться внутри помещения без использования каких-либо внешних управляющих сигналов или GPS. Управление ЛА требует также точной оценки текущей скорости, которую позволяют сделать наши алгоритмы. Главной задачей данной работы является систематическое экспериментальное исследование методов визуальной одометрии и изучение наилучших практик управления ЛА с использованием RGB-D камер. В работе описывается вся система в целом, оцениваются конструкторские решения и исследуются возможности и ограничения созданной системы.

 

II. Постановка задачи

Обзор существующих решений

Первые методы визуальной одометрии основывались только на данных с обычных видеокамер. В работе [1] автор использует алгоритм поиска особых точек (feature points), оценивает расстояние до них используя стерео изображение и находит оптимальную трансформацию между двумя соседними кадрами. В наши дни разработано множество алгоритмов, подходящих для поиска особых точек на изображении, например, FAST [3], [4], [20] или Harris corners (углы Харриса) [2], которые устойчивы к поворотам и могут быть довольно быстро вычислены. Для сопоставления точек на соседних кадрах, как правило, используется алгоритм RANSAC [5]. При оценке трансформации между кадрами обычно опираются на евклидово расстояние между особыми точками, в частности, итеративный алгоритм ближайших точек (ICP) [6].

При визуальной одометрии оценивается локальное перемещение и потому имеет место наличие глобального смещения (накопления ошибки). Данная проблема может быть решена при помощи методов SLAM (Simultaneous Location and Mapping, Метод одновременной навигации и построения карты). Алгоритмы SLAM включают в себя построение карты, оценку положения в пространстве и алгоритм замыкания круга (loop closure detection). Суть алгоритма замыкания круга заключается в детектировании положения, в котором робот уже находился, и исправлении накопившейся ошибки. Подробности реализации SLAM описаны, например, в документации к Point Cloud Library (PCL) [7].

         В большинстве случаев в центре внимания исследователей оказывались наземные роботы [9], [10], [11], [12]. Тем не менее, в работе [15] использовано монокулярное зрение на летательном аппарате, которое требовало заведомо известного узора на стенах для определения масштабов. В работах [13] и [14] рассматривается использование «лидара», недостатки которого были описаны выше.

Описание платформы

В качестве платформы для летательного аппарата используется мультикоптер с шестью несущими винтами и полётным контроллером Ardupilot со встроенным IMU фирмы 3D Robotics. На раму установлен Microsoft Kinect. В качестве бортового компьютера используется Android Mini PC UG802, с двухъядерным процессором Cortex-A9 1.6 гигагерц и 1 гигабайтом оперативной памяти. Операционная система – Ubuntu Linux 12.04. Программное обеспечение написано на языке C++ с использованием библиотек ROS (Robot Operating System) [16] и PCL (Point Cloud Library) [17]. В разработке активно использовался симулятор Gazebo и стек (программный модуль ROS) hector_gazebo для первоначальной отладки полётных алгоритмов.

 

III. Результаты

При использовании «лидара» построение карт и локализация в пространстве облегчается большой дальностью сенсоров (обычно 30 метров) и большим радиусом обзора (до 180 градусов), что позволяет увеличить точность SLAM ценой большей стоимости сенсоров и наличием лишь одной плоскости сканирования. Задачей настоящего исследования является создание алгоритма, способного использовать недорогие RGB-D сенсоры, угол обзора которых не превышает 60 градусов а дальность 4 метров. Точность RGB-D сенсора на расстоянии 3 метров составляет +-3 сантиметра.

Наш алгоритм визуальной одометрии построен с использованием стандартного конвейера для обработки изображений и, отчасти, основывается на результатах работ [18] и [19]. Несмотря на то, что каждый шаг обработки является стандартным, он может быть реализован множеством способов и результат его работы зависит от множества настраиваемых параметров. В данной работе исследовано большинство доступных алгоритмов и подобран оптимальный с точки зрения точности и затрачиваемых вычислительных ресурсов набор параметров.

1.     Предобработка изображения: Первоначально цветовая (RGB) составляющая RGB-D изображения подвергается конвертации в чёрно-белую, с целью сократить затрачиваемые в дальнейшем на обработку вычислительные ресурсы. Чёрно-белая составляющая сглаживается дискретным фильтром Гаусса с параметром ядра 0.87. Затем строится пирамида Гаусса [21], позволяющая получить копии изображения в уменьшенном масштабе. Особенные точки, найденные на уменьшенном изображении соответствуют большим объектам и, естественно, более устойчивы к размытию и поворотам.

2.     Поиск особых точек: На каждом уровне пирамиды Гаусса выполняется поиск особых точек с использованием алгоритма FAST [3], [4], [20]. Использовалась реализация алгоритма в PCL. Для каждой особой точки запоминалась информация о расстоянии до неё, а если эта информация была не доступна, точка удалялась. Для более равномерного распределения точек по изображению это изображение разделялось на фрагменты 80x80 пикселей и поиск на каждом фрагменте проводился независимо. Считалось, что 15 особых точек на фрагмент достаточно.

3.     Первоначальная оценка поворота: Так как необходимо сопоставлять друг с другом только два последовательных кадра, нетрудно выполнить первоначальную оценку поворота изображения для уменьшения окна поиска в последующих алгоритмах. Первоначальная оценка поворота осуществлялась с помощью гироскопов IMU, таким образом, освобождая вычислительные ресурсы бортового компьютера.

4.     Сопоставление особых точек: Для каждой особой точки создаётся дескриптор, состоящий из яркостей пикселей в квадрата 9x9 вокруг этой особой точки [18]. Особые точки считаются совпавшими, если они лежат в пределах окна, заданного первоначальной оценкой поворота, и у них наименьшая сумма квадратов разностей компонентов дескриптора.

5.     Фильтрация ложных соответствий: Несмотря на наличие окна (из п.3), ограничивающего количество ложных соответствий, оказалось необходимым применить алгоритм отсеивания ложных соответствий greedy max-clique [19]. Алгоритм эксплуатирует факт, что в твёрдых телах расстояния между двумя заданными точками неизменно. Строится граф, вершинами которого являются пары сопоставленных точек. Ребро между двумя парами добавляется только в том случае, если на предыдущем и текущем кадре Евклидовы расстояния между соответствующими особыми точками не меняются. Затем выполняется поиск максимальной клики графа, и найденные вершины являются искомыми точками соответствия.

6.     Конечная оценка перемещения: При вычислении конечного перемещения используются данные сопоставления особых точек. Сначала преобразование проводится путём минимизации Евклидовых расстояний между соответствующими точками. Затем точки, не удовлетворяющие заданному порогу отсечения, удаляются и процесс повторяется снова. На основе полученных данных об угле поворота и пройденном расстоянии строится карта местности.

IV. Выводы

В настоящей работе подробно описан метод оценки движения летательного аппарата с использованием данных IMU и RGB-D камеры. Данные этого алгоритма без труда интегрируются в большинство существующих реализаций SLAM, делая построение карты быстрым и относительно надёжным, что безусловно важно для летательных аппаратов. Тем не менее, не были рассмотрены методы навигации и поиска цели на заданной карте, а также не были рассмотрены методы навигации в открытом пространстве, к которым RGB-D камеры уже не применимы.

         В дальнейшем планируется ускорить описанный алгоритм путём реализации их на NVIDIA CUDA [22]. Также возможно использование процессорных векторных команд вроде SSE2 для ускорения алгоритма поиска особых точек.

Литература

 

1. H. Moravec, Obstacle avoidance and navigation in the real world by a seeing robot rover. PhD thesis, Stanford University, 1980

2. C. Harris and M. Stephens. "A combined corner and edge detector".(с. 147–151), 1988

3. Edward Rosten, Real-time Video Annotations for Augmented Reality

4. Edward Rosten, FASTER and better: A machine learning approach to corner detection

5. Martin A. Fischler and Robert C. Bolles. Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography. Comm. Of the ACM 24: 381–395. DOI:10.1145/358669.358692, June 1981

6. Zhengyou Zhang, ICP для регистрации свободной формы кривых и поверхностей, 1992

7. In-hand scanner http://pointclouds.org/documentation/tutorials/in_hand_scanner.php

8. PrimeSense. http://www.primesense.com.

9. Tartan Racing, http://www.tartanracing.org/

10. Stanford Racing, http://cs.stanford.edu/group/roadrunner/

11. Red Team, http://www.cs.cmu.edu/~red/Red/

12. PR2, http://www.willowgarage.com/pages/pr2/overview

13. Stefan Kohlbrecher, Johannes Meyer, Thorsten Graber: Hector Open Source Modules for Autonomous Mapping and Navigation with Rescue Robots, 2013

14. R. He, S. Prentice, and N. Roy. Planning in information space for a quadrotor helicopter in a GPS-denied environment. In IEEE Int. Conf. Robotics and Automation, pages 1814–1820, Los Angeles, CA, 2008

15. S. Ahrens, D. Levine, G. Andrews, and J.P. How. Vision-based guidance and control of a hovering vehicle in unknown, GPS-denied environments. In IEEE Int. Conf. Robotics and Automation, pages 2643–2648, May 2009

16. ROS http://www.ros.org/

17. PCL http://pointclouds.org/

18. Peter Henry , Michael Krainin , Evan Herbst , Xiaofeng Ren , Dieter Fox RGB-D Mapping: Using Depth Cameras for Dense 3D Modeling of Indoor Environments, 2011

19. Albert S. Huang, Abraham Bachrach, Peter Henry, Michael Krainin, Daniel Maturana, Dieter Fox, and Nicholas Roy Visual Odometry and Mapping for Autonomous Flight Using an RGB-D Camera, Int. Symposium on Robotics Research (ISRR), Flagstaff, Arizona, USA, Aug. 2011

20. Radu B. Rusu, Semantic 3D Object Maps for Everyday Manipulation in Human Living Environments, Artificial Intelligence (KI - Kuenstliche Intelligenz), 2010

21. P.J. Burt. Fast algorithms for estimating local image properties. Computer Graphics and Image Processing, 1983

22. NVIDIA CUDA http://www.nvidia.ru/object/cuda-parallel-computing-ru.html