Разработка программы симуляции БПЛА (квадрокоптера) (командный проект) — различия между версиями
Spin7ion (обсуждение | вклад) (расчет коллизий перенесен в задачу физики) |
Spin7ion (обсуждение | вклад) м (добавлены отступы) |
||
Строка 52: | Строка 52: | ||
* Разработать возможность получения плагинов с удаленного репозитария | * Разработать возможность получения плагинов с удаленного репозитария | ||
* Реализовать возможность сетевого взаимодействия нескольких симуляторов. | * Реализовать возможность сетевого взаимодействия нескольких симуляторов. | ||
+ | |||
==== Модуль расчета физики ==== | ==== Модуль расчета физики ==== | ||
Строка 62: | Строка 63: | ||
* Реализовать метод Рунге — Кутты | * Реализовать метод Рунге — Кутты | ||
* Добавить расчет коллизий | * Добавить расчет коллизий | ||
+ | |||
==== Модуль отображения и визуализации ==== | ==== Модуль отображения и визуализации ==== |
Версия 11:31, 5 октября 2017
Компания | НИУ ВШЭ |
Учебный семестр | Осень 2017 |
Учебный курс | 3-й курс |
Максимальное количество студентов, выбравших проект: 3-8 | |
Содержание
|
Что это за проект?
Приложение для универсального тестирования алгоритмов и плат автопилотов. Должна быть реализована физика аппарата в соответствии с выведенными студентами уравнениями динамики летательного аппарата (квадрокоптера). Приложение должно иметь модульную архитектуру с возможностью применения различных алгоритмов стабилизации (PID/LQR). Дополнительно будет возможность попробовать свои силы в разработке автопилота и системы компьютерного зрения.
Чему научатся студенты? Что самое интересное в проекте?
- Численные методы
- Теория автоматического управления
- Работа с 3D графикой
Организация работы (Как студенты будут работать в команде?)
От одного до нескольких студентов, в зависимости от размера команды будет работать над модулем приложения. В случае работы нескольких студентов над одной и той же задачей возможно разделение модуля на подзадачи или конкурирующая разработка, когда лучший код принимается в общий проект.
Компоненеты (Из каких частей состоит проект?)
- Модуль расчета физики
- Модуль отображения и визуализации
- Системный планировщик
- Модуль связи с переферийными устройствами
Какие будут использоваться технологии?
Java, OpenGl, MatLab, OpenCV (возможно)
Какие начальные требования?
- Знание основ ООП, желательно знание языка программирования Java.
- Понимание физики твердого тела
- Желание разбираться в математическом аппарате представления твердого тела в пространстве
Темы вводных занятий
- Алгебра кватернионов
- Основы 3D графики
- Численные методы
- Язык Java
- Физика твердого тела
Критерии оценки
Для каждой задачи будет озвучен минимальный функционал и некоторые, необходимые для повышения базовой оценки дополнительные функции.
Системный планировщик
Минимальный функционал
- Разработать стандарный интерфейс для подключения модулей расчета физики и визуализации
- Разработать инициализацию и основной цикл программы
Дополнительные задачи
- Разработать архитектуру системы плагинов
- Разработать возможность получения плагинов с удаленного репозитария
- Реализовать возможность сетевого взаимодействия нескольких симуляторов.
Модуль расчета физики
Минимальный функционал
- Реализовать расчет физики летательного аппарата методом Эйлера
- Реализовать в отдельном потоке управление аппаратом используя PID регулятор
Дополнительные задачи
- Реализовать возможность выбора метода и его точности
- Реализовать полунеявный метод эйлера
- Реализовать метод Рунге — Кутты
- Добавить расчет коллизий
Модуль отображения и визуализации
Минимальный функционал
- Реализовать отображение положения аппарата, земли, теней, динамичного освещения.
- Реализовать пользовательский интерфейс
Дополнительные задачи
- Добавить анимацию вращения винтов аппарата, в зависимости от тяги
- Добавить реалистичную модель аппарата с возможностью загрузки её из obj файла
- Добавить шейдер глубины резкости
Модуль связи с переферийными устройствами
Минимальный функционал
- Спроектировать и разработать интерфейс для подключения к проекту дополнительных плагинов, отвечающих за сторонее оборудование
- Реализовать возможность подключения джойстика
Дополнительные задачи
- Реализовать возможность подключения нескольких джойстиков
- Реализовать возможность подключения и обработки в отдельном потоке камеры
- Реализовать возможность подключения полетного контроллера PixHawk для Hardware in the Loop Simulation
Похожие проекты
- Gazebo - симулятор робототехнических систем
- XPlane - авиасимулятор
- Liftoff - симулятор квадрокоптеров
Контактная информация
- Email: alexander.semion@gmail.com
- https://vk.com/spin7ion
- http://spin7ion.ru
- Телефон: +7 916 068 36 99