Разработка беспилотных летательных аппаратов мультироторного типа (например, квадрокоптеров) — одно из наиболее активно развивающихся направлений науки и техники в настоящее время. Уже сейчас эти аппараты применяются во многих областях человеческой деятельности (развлечения, видео- и фото-съемка, обследование зданий и конструкций, земледелие и т.д.), однако почти всегда управление аппаратом осуществялется оператором в ручном режиме. Последнее существенно ограничивает сферу применения беспилотников, поэтому многие компании и исследовательские центры по всему миру заняты разработкой инновационных решений (естественно, на базе моделей и методов искусственного интеллекта), направленных на создание полностью автономных летающих дронов. Схожими задачами занимаются и участники студенческой лаборатории искусственного интеллекта в рамках проекта 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 (при защите курсовых, выпускных работ, устройстве на работу и т.д.);
- предложить свой (новый) алгоритм планирования траектории неизвестный ранее;
- успешно написать/защить курсовую/выпускную работу и получить все необходимые знания для продолжения научной работы по тематике «искусственный интеллект», «интеллектуальное планирование», «планирование траектории», «эвристический поиск».