Разработка программы симуляции БПЛА (квадрокоптера) (командный проект)

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Компания НИУ ВШЭ
Учебный семестр Осень 2017
Учебный курс 3-й курс
Максимальное количество студентов, выбравших проект: 3-8



Что это за проект?

Приложение для универсального тестирования алгоритмов и плат автопилотов. Должна быть реализована физика аппарата в соответствии с выведенными студентами уравнениями динамики летательного аппарата (квадрокоптера). Приложение должно иметь модульную архитектуру с возможностью применения различных алгоритмов стабилизации (PID/LQR). Дополнительно будет возможность попробовать свои силы в разработке автопилота и системы компьютерного зрения.

Чему научатся студенты? Что самое интересное в проекте?

  • Численные методы
  • Теория автоматического управления
  • Работа с 3D графикой

Организация работы (Как студенты будут работать в команде?)

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

Компоненеты (Из каких частей состоит проект?)

  • Модуль расчета физики
  • Модуль отображения и визуализации
  • Системный планировщик
  • Модуль связи с переферийными устройствами

Какие будут использоваться технологии?

Java, OpenGl, MatLab, OpenCV (возможно)

Какие начальные требования?

  • Знание основ ООП, желательно знание языка программирования Java.
  • Понимание физики твердого тела
  • Желание разбираться в математическом аппарате представления твердого тела в пространстве

Темы вводных занятий

  • Алгебра кватернионов
  • Основы 3D графики
  • Численные методы
  • Язык Java
  • Физика твердого тела

Критерии оценки

Для каждой задачи будет озвучен минимальный функционал и некоторые, необходимые для повышения базовой оценки дополнительные функции.

Системный планировщик

Минимальный функционал

  • Разработать стандарный интерфейс для подключения модулей расчета физики и визуализации (2 балла)
  • Разработать инициализацию и основной цикл программы (2 балла)

Дополнительные задачи

  • Разработать архитектуру системы плагинов (2 балла)
  • Разработать возможность получения плагинов с удаленного репозитария (2 балла)
  • Реализовать возможность сетевого взаимодействия нескольких симуляторов (2 балла)


Модуль расчета физики

Минимальный функционал

  • Реализовать расчет физики летательного аппарата методом Эйлера (2 балла)
  • Реализовать в отдельном потоке управление аппаратом используя PID регулятор (2 балла)

Дополнительные задачи

  • Реализовать возможность выбора метода и его точности (0.5 балла)
  • Реализовать полунеявный метод эйлера (1.5 балла)
  • Реализовать метод Рунге — Кутты (1.5 балла)
  • Добавить расчет коллизий (2.5 балла)


Модуль отображения и визуализации

Минимальный функционал

  • Реализовать отображение положения аппарата, земли, теней, динамичного освещения. (2 балла)
  • Реализовать пользовательский интерфейс (2 балла)

Дополнительные задачи

  • Добавить анимацию вращения винтов аппарата, в зависимости от тяги (2 балла)
  • Добавить реалистичную модель аппарата с возможностью загрузки её из obj файла (2 балла)
  • Добавить шейдер глубины резкости (2 балла)


Модуль связи с переферийными устройствами

Минимальный функционал

  • Спроектировать и разработать интерфейс для подключения к проекту дополнительных плагинов, отвечающих за сторонее оборудование (2 балла)
  • Реализовать возможность подключения джойстика (2 балла)

Дополнительные задачи

  • Реализовать возможность подключения нескольких джойстиков (2 балла)
  • Реализовать возможность подключения и обработки в отдельном потоке камеры (2 балла)
  • Реализовать возможность подключения полетного контроллера PixHawk для Hardware in the Loop Simulation (2 балла)

Похожие проекты

  • Gazebo - симулятор робототехнических систем
  • XPlane - авиасимулятор
  • Liftoff - симулятор квадрокоптеров

Контактная информация