AI-Drone

Разработка беспилотных летательных аппаратов мультироторного типа (например, квадрокоптеров) — одно из наиболее активно развивающихся направлений науки и техники в настоящее время. Уже сейчас эти аппараты применяются во многих областях человеческой деятельности (развлечения, видео- и фото-съемка, обследование зданий и конструкций, земледелие и т.д.), однако почти всегда управление аппаратом осуществялется оператором в ручном режиме. Последнее существенно ограничивает сферу применения беспилотников, поэтому многие компании и исследовательские центры по всему миру заняты разработкой инновационных решений (естественно, на базе моделей и методов искусственного интеллекта), направленных на создание полностью автономных летающих дронов. Схожими задачами занимаются и участники студенческой лаборатории искусственного интеллекта в рамках проекта AI-Drone.

Создание полностью автономного беспилотного летающего аппарата — чрезвычайно сложная и комплексная задача. В рамках проекта AI-Drone основной акцент сделан на вопросы, связанные с навигацией дрона в пространстве, а именно на разработку и исследование методов и алгоритмов картирования, локализации и планирования траектории.

Картирование и локализация

Способность самостоятельно ориентироваться в окружающем пространстве (строить карту и находить свое положение на ней) — одна ключевых функциональных возможностей, без которой невозможно автономное фукнционирование любого мобильного робота, и в частности — беспилотного летательного аппарата. Неудивительно, что около 60% тем, обсуждаемых на любой крупной конференции по робототехнике, так или иначе касаются этого вопроса (точный и полны ответ на который до сих пор не найден).

Обычно в робототехнике задачи построения карты (картирования) и идентификации своего положения на ней (локализации) объединяются в единую суб-задачу одновременного картирования и локализации (англ.- simultaneous localization and mapping (SLAM)). SLAM-задача может быть решена множеством различных способов в зависимости от того, какая информация об окружающей среде доступна агенту, что в свою очередь зависит от того, какими датчиками оснащен последний.

В своих исследованиях мы ориентируемся на малые (до 50 см в диаметре) летательные аппараты мультироторного типа, которые из-за особенностей конструкции и малой грузоподъемности (а также из-за малой энерговооруженности), оснащаются лишь компактными видео-камерами. Поэтому SLAM-задача решается нами за счет обработки данных видео-потока (так называемый vSLAM, от video-SLAM).

В рамках этого направления вам предлагается поучаствовать в разработке эффективных методов картирования и локализации по видео-данным.

Необходимые умения: владение C++, знание Linux (OpenCV и ROS — опционально), умение читать научные и техническую литературу (статьи, учебники, техническую документацию, мануалы) на английском языке.

Ключевые слова: картирование, локализация, SLAM, vSLAM, видео-поток, фильтр Калмана, особенности изображения, дескрипторы, SIFT, SURF, ORB-SLAM, LSD-SLAM.

Примерные темы:

  • Методы анализа и обработки изображений в робототенике (1, 2 курс)
    • методы устранения искажений
    • фильтры для выделения особенностей
    • дескрипторы особых точек
  • Методы и алгоритмы картирования и локализации по видеопотоку (3-4 курс)
    • EKF и Bundle Anjustment
    • MonoSLAM, PTAM, LSD-SLAM, ORB-SLAM

Участие в работах по направлению «Картирование и локализация» позволит вам:

  • познакомится с основополагающими алгоритмами машинной (компьютерной) графики, которые востребованы не только в  робототехнике, но и во многих других областях computer science;
  • реализовать (своими руками, с нуля) один из многочисленных алгоритмов картирования и локализации
  • встроить свою реализацию алгоритма в один из имеющихся в распоряжении дронов для практической демонстрации результатов;
  • предложить свой (новый) алгоритм картирования и локализации неизвестный ранее;
  • успешно написать/защить курсовую/выпускную работу и получить все необходимые знания для продолжения научной работы.

Планирование траектории

Автоматическое планирование траектории — это одна из ключевых функциональных возможностей систем, поведение которых можно назвать «интеллектуальным».  К такими системам относятся не только мобильные роботы (роботы-пылесосы, мультироторные дроны и др.), но и, например, персонажи компьютерных игр и др.

В рамках этого направления вам предлагается поучаствовать в разработке методов и алгоритмов планирования траектории, применимых как в задачах навигации беспилотных летательных аппаратов, так и для других типов задач, например — пешеходная и/или велонавигация по городу, навигация внутри помещений и др.

Необходимые умения: владение C++ (разработка ведется в среде QtCreator), умение пользоваться системами контроля версий (GIT), умение читать научные и техническую литературу (статьи, учебники, техническую документацию, мануалы) на английском языке, знание PostgreSQL — плюс для отдельных проектов в рамка направления (тех проектов, которые связаны с обрабокой реальных гео-данных).

Ключевые слова: автоматическое планирование, планирование траектории, эвристический поиск, A*, Theta*, LIAN, JPS, RRT.

Примерные темы:

  • Планирование траектории как задача эвристического поиска пути на графах особой структуры (1, 2 курс)
    • методы и алгоритмы поиска пути на графе
    • эвристики для сокращения пространства поиска
    • типы графовых моделей, возникающих в задачах планирования траектории
  • Методы и алгоритмы планирования траектории для беспилотных летательных аппаратов (3-4 курс)
    • RRT и PRM подходы к планированию
    • учет динамики движения объекта управления (структура пространства поиска)
  • Учет геометрических ограничений при планировании траекторий на плоскости (2-4 курс)
    • алгоритмы Theta*, ARC-Theta*, LIAN
  • Планирование траекторий для коалиции агентов (2-4 курс)
    • централизованный и децентрализованный подходы к решению задачи
    • устранение локальных конфликтов
    • оптимальные и не-оптимальные алгоритмы

Участие в проектах по направлению «Планирование траектории» позволит вам:

  • познакомится с основополагающими алгоритмами эвристического поиска (такими как, например, A*), которые востребованы не только при планировании траектории, но и во многих других областях computer science;
  • реализовать (своими руками, с нуля) один из многочисленных алгоритмов планирования траектории (A*, Theta*, JPS, LIAN и др.), что существенным образом повышает квалификацию проектирования и программирования (качественная реализация подразумевает около 5-10 классов, и 1500 significant code lines);
  • встроить свою реализацию алгоритма в веб-интерфейс сервиса pathplanning.ru для возможности демонстрации своих результатов онлайн в режиме 24/7 (при защите курсовых, выпускных работ, устройстве на работу и т.д.);
  • предложить свой (новый) алгоритм планирования траектории неизвестный ранее;
  • успешно написать/защить курсовую/выпускную работу и получить все необходимые знания для продолжения научной работы по тематике «искусственный интеллект», «интеллектуальное планирование», «планирование траектории», «эвристический поиск».