Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

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

За основу можно взять:

https://assetstore.unity.com/packages/tools/physics/drone-controller-full-pc-joystick-mobile-111163

https://assetstore.unity.com/packages/tools/physics/drone-simulation-physics-inputs-gui-156990

https://habr.com/ru/post/267791/

Версия 1.0 (MVP):

  • Разработать в Unity модель квадрокоптера - берём готовое решение и добавляем функционал.
  • Подключить к модели квадрокоптера какой-нибудь реальный opensource полетный контроллер. Какая сложность? Примеры контроллеров:

  • Обеспечить простую заменяемость одного полетного контроллера другим.
  • В среде Unity необходимо сэмулировать датчики: GPS, барометрический высотомер, ультразвуковой датчик, модуль связи с определением расстояния до другого модуля связи, трехосевой гироскоп, трехосевой акселерометр, компас, датчик воздушной скорости. Для каждого эмулированного датчика необходимо задавать точность возвращаемых сигналов (данных).
  • Каждый коптер должен знать расстояние до соседних коптеров (эмулирование модуля связи с определением расстояния до другого модуля связи):

    • Определение расстояния между центрами коптеров происходит автоматически.
    • Необходимо добавлять или вычитать из расстояния рандомное значение в определенном интервале. То есть, нужно иметь возможность определения расстояния с указанной точностью, например 10%.
    • Расстояние до соседних коптеров должно определяться только в заданном радиусе, то есть видеть расстояние друг до друга могут только соседние коптеры.
  • Обеспечить возможность задания кол-ва квадрокоптеров на карте.

    • Коптеры появляются на “земле”, располагаются в виде квадрата или прямоугольника. Например, выбираем 100 коптеров, они появляются на карте в квадрате 10 на 10.
    • Должна быть возможность задания расстояния между коптерами при появлении.
  • Игровой веб UI должен обеспечить следующий функционал (можно взять за основу какой-нибудь похожий игровой UI и допилить его, может из какой-нить стратегии или MOBA):

    • Задание кол-ва коптеров для появления на карте
    • Задание точки появления коптеров кликом мышки
    • Выбор группы коптеров выделением мышки - прямоугольное выделение
    • Задание тега (типа) группы выделенных коптеров
    • Выбор группы коптеров с конкретным тегом (типом) нажатием кнопки на клавиатуре
    • Назначение алгоритмов поведения на группу коптеров - можно выбрать разные алгоритмы для разных групп коптеров.
    • Задание точности определения расстояния до соседнего коптера
    • Задание радиуса определения соседних коптеров
    • Задание расстояния между коптерами при появлении.
  • Обеспечить возможность задания алгоритмов движения коптеров. Для отладки предлагаем использовать такой сценарий:

    • Задаем кол-во коптеров - они появляются на игровом поле
    • Кликаем на любую точку карты и коптеры начинают летать вокруг этой точки с сохранением расстояния до точки (описывают окружность)
    • Должна быть возможность группировать коптеры и задавать отдельные алгоритмы движения для разных групп. Например, выделяем часть коптеров и даём задание летать по часовой стрелки, оставшимся коптерам даём задание летать против часовой стрелки.
    • Обеспечить простоту подключения алгоритмов в Unity из внешних файлов или иным путём.
  • Написать readme
Версия 2.0:

  • Добавить компьютерное зрение
  • Добавить возможность определения расстояния до объектов
  • Добавить определение объектов на карте
https://habr.com/ru/post/267791/

https://habr.com/ru/post/269007/

https://habr.com/ru/post/271337/

2 года назад
guest_16482039395262
2 года в сервисе
Был
2 года назад