(Студенты вузов) Автопилоты
Цель трека
Разработать программу-автопилот для колесного робота и квадрокоптера, которая поможет ему переместится в целевую точку, избегая столкновений с препятствиями.
Задание и исходные данные (квадрокоптер)
Вам необходимо запрограммировать автономное движение квадрокоптера в вирутальной среде для того, чтобы он мог:
- совершать типовые маневры (удерживать позицию относительно области или точки, взлет, посадка, движение к точке),
- находить метки и следовать за ними.
Количество попыток: Не ограничено
В качестве входных данных (В зависимости от сложности задания) предполагается использовать или данные с камеры, или виртуальную систему позиционирования (координаты дрона с некоторой погрешностью).
Платформа запуска решений основана на движке rePyBullet.
Конкретные требования к шаблону решений и последовательности действий будут указаны непосредственно в задачах.
Отличия между этапами будут выражатся в сложности задания и наличии факторов, мешающих квадракоптеру перемещаться (шум при определении координат, ветер).
Проверка решений
Критерии оценивания:
- Соблюдение границ зоны выполнения задания.
- Точность удержания положения над целевыми точками.
- Время выполнения задачи.
Приоритет решений строится по итоговому баллу, при условии отсутствия нарушений по границам зоны.
Объекты, которые могут присутствовать в симуляции:
- Невысокие объекты на поверхности земли.
- Целевые точки для пролета.
- Границы зоны выполнения (синий ограничивающий параллелепипед).
Подсчет баллов для одного решения происходит по алгоритму:
- Проверка границ зоны: любой вылет за границы параллелепипеда → 0 баллов за решение (симуляция прерывается).
- Проверка пролета около точек: рассчитывается доля времени, которое квадрокоптер провел в требуемых радиусах вокруг целевых точек от общего требуемого времени. Результат: от 0 до 1 балла за критерий.
- Проверка времени выполнения: рассчитывается как (максимальное_время - фактическое_время) / максимальное_время. Результат: от 0 до 1 балла за критерий.
- Итоговый балл:
- Если вылетели за границы зоны == 0 баллов за решение.
- Если не вылетели за границы == среднее арифметическое от оценок за каждый из критериев (каждая из точек пролета, время, не вылет из зоны проведения).
Локальный отладчик
Для вашего удобства мы подготовили Локальный отладчик - инструмент, позваоляющий отладить ваше решение на вашем компьютере. Инструкция по настройке и установке доступна по ссылке.
Работа с отладчиком также показана на видео.
Задание и исходные данные (колесный робот)
Платформа запуска решений: Симулятор, основанный на gym-duckietown
Количество попыток: Не ограничено
Карта: Карта размера 6x7 с препятствиями.
Стартовое положение робота в полосе: Гарантируется, что робот находится на дороге, в полосе.
Постановка задачи: Требуется написать решение, используя шаблон , для того, чтобы робот за минимальное время добрался до координат (подаются на вход программе) избегая столкновений. Данные, которые будут известны роботу:
- Расстояние и угол(тангенс) до конечной точки (конец маршрута соответствует координатам одной из уток, разбросанных по полю).
- Изображение с камеры робота c разрешением 640x480.
Шаблон решения, данные и программы для локальной проверки https://hub.docker.com/r/dvivanov/aido-student-image
Отличия между этапами:
- Квалификационный – на карте отсутствуют значимые препятствия.
- Основной – на карте есть небольшое количество статичных препятствий.
- Финальный – на карте есть значительное количество препятствий, которые частично перекрывают обзор до точки назначения.
Проверка решений
Критерии оценивания:
- Максимальное сближение с препятствиями, отсутствие столкновений
- Расстояние от финальных координат робота до координат точки назначения.
- Время достижения точки назначения.
Приоритет решений строится по времени, которое необходимо потратить агенту для решения задачи.
Объекты, которые могут присутствовать на карте:
- Здания (дома)
- Другие роботы(дакиботы)
- Автобусы
- Утки
Подсчет баллов для одного решения происходит по алгоритму
- Проверка столкновений и нахождения на дороге: любое столкновение с препятствием или выезд за пределы дороги -> 0 баллов за решение (симуляция прерывается).
- Проверка достижения цели: при приближении к цели от 0.5 до 0.1 (в координатных единицах) -> пропорционально от 0 до 1 балла за критерий, иначе -> 0 баллов для решения
- Проверка времени выполнения: обратная зависимость от максимального времени выполнения (0; 1) (на данный момент maximum_time = 120 secs ) (maximum_time - solution_time)/maximum_time, в случае невыполнения предыдущих проверок проверка на время не выполняется -> 0 баллов за проверку (и за решение)
- Итоговый балл
- Если столкнулись ИЛИ выехали за дорогу ИЛИ приблизились дальше чем на 0.5 ИЛИ не уложились в maximum_time == 0 баллов
- Если не столкнулись, не выехали на дорогу, приблизились менее чем на 0.5, уложились в maximum_time == (Проверка достижения цели + Проверка времени выполнения) / 2
Правила перехода участников между этапами
По итогам каждого этапа ваши оценки за обе задачи (Квадрокоптер и Колесный робот) складываются, образуя оценку в диапазоне 0-2 балла.
- Переход к основному этапу - оценка решения >= 0.5 или лучшая половина решений согласно общему рейтингу (если доля набравших оценку выше порога будет меньше одной трети)
- Переход к финальному этапу - оценка решения >= 0.8 или или лучшая половина решений согласно общему рейтингу (если доля набравших оценку выше порога будет меньше одной трети)