Разработка программы симуляции БПЛА (квадрокоптера) (командный проект) — различия между версиями
Spin7ion (обсуждение | вклад) м (добавлены отступы) |
Spin7ion (обсуждение | вклад) (Добавлены баллы) |
||
Строка 46: | Строка 46: | ||
==== Системный планировщик ==== | ==== Системный планировщик ==== | ||
'''Минимальный функционал''' | '''Минимальный функционал''' | ||
− | * Разработать стандарный интерфейс для подключения модулей расчета физики и визуализации | + | * Разработать стандарный интерфейс для подключения модулей расчета физики и визуализации (2 балла) |
− | * Разработать инициализацию и основной цикл программы | + | * Разработать инициализацию и основной цикл программы (2 балла) |
'''Дополнительные задачи''' | '''Дополнительные задачи''' | ||
− | * Разработать архитектуру системы плагинов | + | * Разработать архитектуру системы плагинов (2 балла) |
− | * Разработать возможность получения плагинов с удаленного репозитария | + | * Разработать возможность получения плагинов с удаленного репозитария (2 балла) |
− | * Реализовать возможность сетевого взаимодействия нескольких симуляторов | + | * Реализовать возможность сетевого взаимодействия нескольких симуляторов (2 балла) |
==== Модуль расчета физики ==== | ==== Модуль расчета физики ==== | ||
'''Минимальный функционал''' | '''Минимальный функционал''' | ||
− | * Реализовать расчет физики летательного аппарата методом Эйлера | + | * Реализовать расчет физики летательного аппарата методом Эйлера (2 балла) |
− | * Реализовать в отдельном потоке управление аппаратом используя PID регулятор | + | * Реализовать в отдельном потоке управление аппаратом используя PID регулятор (2 балла) |
'''Дополнительные задачи''' | '''Дополнительные задачи''' | ||
− | * Реализовать возможность выбора метода и его точности | + | * Реализовать возможность выбора метода и его точности (0.5 балла) |
− | * Реализовать полунеявный метод эйлера | + | * Реализовать полунеявный метод эйлера (1.5 балла) |
− | * Реализовать метод Рунге — Кутты | + | * Реализовать метод Рунге — Кутты (1.5 балла) |
− | * Добавить расчет коллизий | + | * Добавить расчет коллизий (2.5 балла) |
==== Модуль отображения и визуализации ==== | ==== Модуль отображения и визуализации ==== | ||
'''Минимальный функционал''' | '''Минимальный функционал''' | ||
− | * Реализовать отображение положения аппарата, земли, теней, динамичного освещения. | + | * Реализовать отображение положения аппарата, земли, теней, динамичного освещения. (2 балла) |
− | * Реализовать пользовательский интерфейс | + | * Реализовать пользовательский интерфейс (2 балла) |
'''Дополнительные задачи''' | '''Дополнительные задачи''' | ||
− | * Добавить анимацию вращения винтов аппарата, в зависимости от тяги | + | * Добавить анимацию вращения винтов аппарата, в зависимости от тяги (2 балла) |
− | * Добавить реалистичную модель аппарата с возможностью загрузки её из obj файла | + | * Добавить реалистичную модель аппарата с возможностью загрузки её из obj файла (2 балла) |
− | * Добавить шейдер глубины резкости | + | * Добавить шейдер глубины резкости (2 балла) |
==== Модуль связи с переферийными устройствами ==== | ==== Модуль связи с переферийными устройствами ==== | ||
'''Минимальный функционал''' | '''Минимальный функционал''' | ||
− | * Спроектировать и разработать интерфейс для подключения к проекту дополнительных плагинов, отвечающих за сторонее оборудование | + | * Спроектировать и разработать интерфейс для подключения к проекту дополнительных плагинов, отвечающих за сторонее оборудование (2 балла) |
− | * Реализовать возможность подключения джойстика | + | * Реализовать возможность подключения джойстика (2 балла) |
'''Дополнительные задачи''' | '''Дополнительные задачи''' | ||
− | * Реализовать возможность подключения нескольких джойстиков | + | * Реализовать возможность подключения нескольких джойстиков (2 балла) |
− | * Реализовать возможность подключения и обработки в отдельном потоке камеры | + | * Реализовать возможность подключения и обработки в отдельном потоке камеры (2 балла) |
− | * Реализовать возможность подключения полетного контроллера PixHawk для Hardware in the Loop Simulation | + | * Реализовать возможность подключения полетного контроллера PixHawk для Hardware in the Loop Simulation (2 балла) |
=== Похожие проекты === | === Похожие проекты === |
Текущая версия на 12:34, 9 октября 2017
Компания | НИУ ВШЭ |
Учебный семестр | Осень 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