Разработка программы симуляции БПЛА (квадрокоптера) (командный проект)
Компания | НИУ ВШЭ |
Учебный семестр | Осень 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 - симулятор квадрокоптеров
Контактная информация
- Email: alexander.semion@gmail.com
- https://vk.com/spin7ion
- http://spin7ion.ru
- Телефон: +7 916 068 36 99