Разработка программы симуляции БПЛА (квадрокоптера) (командный проект): различия между версиями
Нет описания правки |
Spin7ion (обсуждение | вклад) Добавлены критерии |
||
| Строка 43: | Строка 43: | ||
=== Критерии оценки === | === Критерии оценки === | ||
Для каждой задачи будет озвучен минимальный функционал и | Для каждой задачи будет озвучен минимальный функционал и некоторые, необходимые для повышения базовой оценки дополнительные функции. | ||
==== Системный планировщик ==== | |||
'''Минимальный функционал''' | |||
* Разработать стандарный интерфейс для подключения модулей расчета физики и визуализации | |||
* Разработать инициализацию и основной цикл программы | |||
'''Дополнительные задачи''' | |||
* Разработать архитектуру системы плагинов | |||
* Разработать возможность получения плагинов с удаленного репозитария | |||
* Реализовать возможность сетевого взаимодействия нескольких симуляторов. | |||
==== Модуль расчета физики ==== | |||
'''Минимальный функционал''' | |||
* Реализовать расчет физики летательного аппарата методом Эйлера | |||
* Реализовать в отдельном потоке управление аппаратом используя PID регулятор | |||
'''Дополнительные задачи''' | |||
* Реализовать возможность выбора метода и его точности | |||
* Реализовать полунеявный метод эйлера | |||
* Реализовать метод Рунге — Кутты | |||
==== Модуль отображения и визуализации ==== | |||
'''Минимальный функционал''' | |||
* Реализовать отображение положения аппарата, земли, теней, динамичного освещения. | |||
* Реализовать пользовательский интерфейс | |||
'''Дополнительные задачи''' | |||
* Добавить анимацию вращения винтов аппарата, в зависимости от тяги | |||
* Добавить реалистичную модель аппарата с возможностью загрузки её из obj файла | |||
* Добавить шейдер глубины резкости | |||
* Добавить расчет коллизий | |||
==== Модуль связи с переферийными устройствами ==== | |||
'''Минимальный функционал''' | |||
* Спроектировать и разработать интерфейс для подключения к проекту дополнительных плагинов, отвечающих за сторонее оборудование | |||
* Реализовать возможность подключения джойстика | |||
'''Дополнительные задачи''' | |||
* Реализовать возможность подключения нескольких джойстиков | |||
* Реализовать возможность подключения и обработки в отдельном потоке камеры | |||
* Реализовать возможность подключения полетного контроллера PixHawk для Hardware in the Loop Simulation | |||
=== Похожие проекты === | === Похожие проекты === | ||
Версия от 08:23, 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