(Студенты вузов) Автопилоты

Цель трека

Разработать программу-автопилот для колесного робота и квадрокоптера, которая поможет ему переместится в целевую точку, избегая столкновений с препятствиями.

Задание и исходные данные (квадрокоптер)

Вам необходимо запрограммировать автономное движение квадрокоптера в вирутальной среде для того, чтобы он мог:


Количество попыток: Не ограничено

В качестве входных данных (В зависимости от сложности задания) предполагается использовать или данные с камеры, или виртуальную систему позиционирования (координаты дрона с некоторой погрешностью).

Платформа запуска решений основана на движке rePyBullet.

Конкретные требования к шаблону решений и последовательности действий будут указаны непосредственно в задачах.

Отличия между этапами будут выражатся в сложности задания и наличии факторов, мешающих квадракоптеру перемещаться (шум при определении координат, ветер). 

Проверка решений

Критерии оценивания:

Приоритет решений строится по итоговому баллу, при условии отсутствия нарушений по границам зоны.

 

Объекты, которые могут присутствовать в симуляции:

 

Подсчет баллов для одного решения происходит по алгоритму:

  1. Проверка границ зоны: любой вылет за границы параллелепипеда → 0 баллов за решение (симуляция прерывается).
  2. Проверка пролета около точек: рассчитывается доля времени, которое квадрокоптер провел в требуемых радиусах вокруг целевых точек от общего требуемого времени. Результат: от 0 до 1 балла за критерий.
  3. Проверка времени выполнения: рассчитывается как (максимальное_время - фактическое_время) / максимальное_время. Результат: от 0 до 1 балла за критерий
  4. Итоговый балл:
    1. Если вылетели за границы зоны == 0 баллов за решение.
    2. Если не вылетели за границы == среднее арифметическое от оценок за каждый из критериев (каждая из точек пролета, время, не вылет из зоны проведения).

 

Локальный отладчик

Для вашего удобства мы подготовили Локальный отладчик - инструмент, позваоляющий отладить ваше решение на вашем компьютере. Инструкция по настройке и установке доступна по ссылке

Работа с отладчиком также показана на видео

Задание и исходные данные (колесный робот)

Платформа запуска решений: Симулятор, основанный на gym-duckietown


Количество попыток: Не ограничено

Карта: Карта размера 6x7 с препятствиями.

Стартовое положение робота в полосе: Гарантируется, что робот находится на дороге, в полосе.

Постановка задачи: Требуется написать решение, используя шаблон , для того, чтобы робот за минимальное время добрался до координат (подаются на вход программе) избегая столкновений. Данные, которые будут известны роботу:

 

Шаблон решения, данные и программы для локальной проверки https://hub.docker.com/r/dvivanov/aido-student-image

 

Отличия между этапами:

Проверка решений

Критерии оценивания:

Приоритет решений строится по времени, которое необходимо потратить агенту для решения задачи.

Объекты, которые могут присутствовать на карте:

Подсчет баллов для одного решения происходит по алгоритму

  1. Проверка столкновений и нахождения на дороге: любое столкновение с препятствием или выезд за пределы дороги -> 0 баллов за решение (симуляция прерывается).
  2. Проверка достижения цели: при приближении к цели от 0.5 до 0.1 (в координатных единицах) -> пропорционально от 0 до 1 балла за критерий, иначе -> 0 баллов для решения
  3. Проверка времени выполнения: обратная зависимость от максимального времени выполнения (0; 1) (на данный момент maximum_time = 120 secs ) (maximum_time - solution_time)/maximum_time, в случае невыполнения предыдущих проверок проверка на время не выполняется -> 0 баллов за проверку (и за решение)
  4. Итоговый балл
    1. Если столкнулись ИЛИ выехали за дорогу ИЛИ приблизились дальше чем на 0.5 ИЛИ не уложились в maximum_time  == 0 баллов
    2. Если не столкнулись, не выехали на дорогу, приблизились менее чем на 0.5, уложились в maximum_time == (Проверка достижения цели + Проверка времени выполнения) / 2

Правила перехода участников между этапами

По итогам каждого этапа ваши оценки за обе задачи (Квадрокоптер и Колесный робот) складываются, образуя оценку в диапазоне 0-2 балла. 

  1. Переход к основному этапу - оценка решения >= 0.5 или лучшая половина решений согласно общему рейтингу (если доля набравших оценку выше порога будет меньше одной трети)
  2. Переход к финальному этапу - оценка решения >= 0.8 или или лучшая половина решений согласно общему рейтингу (если доля набравших оценку выше порога будет меньше одной трети)