ROBOFEST ELSIROS: hurocup многоборье
Задание по Гуманоидным Роботам в Симуляторе
Для успешного выполнения задания
  • Выделите время на установку программы
    На установку программы для выполнения задания может быть затрачено несколько дней до выяснения всех проблем, которые препятствуют успешной установке.
  • Прослушайте 2 онлайн-консультации
    Рекомендуется прослушать 2 онлайн консультации, которые будут проводиться для участников.
  • Установите программу заранее
    Рекомендуется приступить к выполнению установки за 5 дней до сдачи вашей работы.
  • Выделите 2 часа на выполнение задания
    Ориентировочное время на выполнение задания 1-2 часа, если программа успешно установлена.
О задании
Задание состоит из 2-х упражнений, которые вам необходимо выполнить установив симулятор у себя на компьютере с операционной системой Windows.
Упражнения
  • 1
    Задание 1. Спринт
    Подобрать параметры PD регулятора для игрока, который бежит спринт.
  • 2
    Задание 2. Марафон
    Подобрать параметры PD регулятора и угол разворота для игрока, который бежит марафон
Кнопка для скачивания программы
Для выполнения задания вам необходимо из интернета по следующей ссылке скачать установочный пакет на свой компьютер и установить его следуя инструкциям в установочной программе.
Об установке
Если у вас на компьютере установлена программа WEBOTS версии отличающейся от версии 2023b, то ее надо деинсталлировать и затем установить WEBOTS версии 2023b.

При запуске программы установщика все файлы должны устанавливаться в директорию C:\Elsiros, просьба не менять директорию на другую. Запуск рекомендуется производить от имени администратора. Также в конце установки будет предложена установка java, python 3.9.7 (нужна именно эта версия python), библиотеки python с заданными версиями и webots 2023b. После установки, в случае если у вас ранее не был установлен python версии 3.9.7 рекомендуется перезагрузить компьютер.

После перезагрузки запустите файл ElsirosPackagesInstall_robofest.exe находящийся в папке C:\Elsiros\Prerequisites. Он установит на ваш компьютер все необходимые библиотеки.

  • Тестовый запуск
    После установки пакета программ на ваш компьютер вам надо произвести тестовый запуск игры кликнув на файл C:\Elsiros\worlds\sprint.wbt
    01
  • Загрузка
    После запуска всех компонентов игры (надо дождаться, иногда на запуск требуется несколько минут, хотя, если все в порядке, то роботы обычно начинают играть через 1 минуту после запуска игры) начинается сама игра.

    В случае если вы получили ошибку связанную с тем, что webots не может запустить код python стоит сделать следующие действия: нужно запустить webots и перейти в Tools > Preferences > General и в строке Python command написать путь до python.exe. Узнать расположение python.exe можно при помощи команды pip list.
    02
  • Помощь
    Если игра не запускается более 5 минут, то лучше обратиться за консультацией в телеграм https://t.me/robofest_elsiros
    03
Задание 1. Спринт
Подробное описание упражнения
Для начала рекомендуется посмотреть как происходит забег спринт запустив программу C:\Elsiros\worlds\sprint.wbt
  • 1
    Удачное прохождение
    Робот должен пробежать 3 м не отклоняясь за пределы выделенной дорожки шириной 1 м. В случае удачного прохождения дистанции будет выдано сообщение "distance was finished within timesteps: " и число шагов симулятора
  • 2
    Неудачное прохождение
    В случае неудачного забега будет выдано сообщение: 'distance was NOT finished due to failure '
  • 3
    Запись в файл
    Эти сообщения помимо выдачи в консоль также записываются в файл:

    C:\Elsiros\controllers\sprint\Sprint_log.txt
Цель задания
Ваша задача подобрать параметры шага так, чтобы на заданной дистанции число шагов симулятора было минимальным.
Ходьба робота
Робот использует шаги по направлению прямо вперёд, однако случайные возмущения симулятора могут приводить к отклонению от прямолинейного направления.
  • Параметр шага "rotation"
    Для корректировки поворота на каждом шагу применяется дополнительный параметр шага "rotation".

    Если мы хотим, чтобы робот пошел вправо, то надо задать "rotation" отрицательный угол в радианах.

    Если мы хотим, чтобы робот пошел влево, то надо задать "rotation" положительный угол в радианах.
    01
  • Действительная ориентация "heading"
    На каждом шагу робот измеряет с помощью IMU действительную ориентацию "heading". Направление, в котором должен двигаться робот принято за 0.

    При отклонении влево "heading" покажет положительную величину в радианах.

    При отклонении вправо "heading" покажет отрицательный угол в радианах.
    02
В программе использована следующая формула для коррекции направления движения:

rotation = 0 + heading * proportional + (heading - last_heading) * differential

Параметры формулы коррекции направления движения:
  • 1
    heading
    heading - это текущее измерение ориентации
  • 2
    last_heading
    last_heading - это измерение ориентации на предыдущем шагу
  • 3
    proportional , differential
    proportional , differential - параметры для коррекции движения
Для коррекции используются параметры: proportional, differential, stepLength, stepHeight, gaitHeight, amplitude, fr1, fr2, которые вам предстоит подобрать.
Изменение параметров
Старайтесь не изменять форматирование файла во избежание проблем с чтением файла в формате .json
  • Открытие файла
    Для изменения параметров Вам надо открыть с помощью любого текстового редактора следующий файл:
    C:\Elsiros\controllers\Robofest_TEAM\Init_params\Sprint_params.json
    Старайтесь не изменять форматирование файла во избежание проблем с чтением файла в формате .json.

    01
  • Новые значения
    В этом файле Вы можете записать новые значения параметров в формате float
    Например: {"proportional": 2.0, "differential": -1.5}.
    Proportional и differentional - это коэффициенты пропорционального и дифференциального регуляторов для поворота робота. stepLength - длина шага робота, stepHeight - высота подъема ноги во время шага , gaitHeight - расстояние между центром масс и полом, и amplitude - амплитуда боковых колебаний ног. Изменение данных параметров будет влиять на устойчивость робота и расстояние, которое он сможет преодолеть за один шаг. fr1 и fr2 это время затрачиваемое на первую и вторую фазу движения. fr1 отвечает за момент когда обе ноги находятся на полу, а fr2 за момент когда одна из ног находится в воздухе.
    02
  • Новый запуск
    Для получения достоверных результатов после каждого запуска симулятора кнопкой "Run in real-time" рекомендуется перегрузить симулятор кнопкой "Reload world"
    03
Жюри FIRA будет запускать спринтера с вашими параметрами 3 раза. В зачет пойдет наилучший результат
Задание 2. Марафон
Подробное описание упражнения
Для начала рекомендуется посмотреть как происходит забег марафон запустив программу C:\Elsiros\worlds\marathon.wbt
  • 1
    Удачное прохождение
    В этом задании робот должен пройти по часовой стрелке один прямоугольник с закругленными углами, который ограничен с двух сторон коридором шириной в 1м. Забег завершается удачно, если робот прошел по прямоугольнику и вышел на линию с которой стартовал. В случае удачного прохождения дистанции будет выдано сообщение "distance was finished within timesteps: " и число шагов симулятора
  • 2
    Неудачное прохождение
    В случае неудачного забега будет выдано сообщение: 'distance was NOT finished due to failure '
  • 3
    Запись в файл
    Эти сообщения помимо выдачи в консоль также записываются в файл:

    C:\Elsiros\controllers\marathon\Marathon_log.txt
Цель задания
Ваша задача подобрать параметры шага так, чтобы на заданной дистанции число шагов симулятора было минимальным.
Ходьба робота
Основные формулы
  • Формула коррекции движения
    В программе использована следующая формула для коррекции направления движения:
    rotation = direction + heading * proportional + (heading - last_heading) * differential

    Также используются описанные в спринте stepLength, stepHeight, gaitHeight, amplitude, fr1, fr2. Для прохождения поворотов в марафоне также были добавлены три дополнительных параметра: firstAriaFactor, secondAriaFactor и thirdAriaFactor.
    01
  • Параметры "[*]AriaFactor"
    Когда робот идет вдоль линии в трех прямоугольниках перед ним считается средняя координата линии (изображено на картинке ниже). В дальнейшем перпендикулярные составляющие этой координаты вносят линейный вклад в угловую скорость робота. Угловая скорость робота на таком участке будет равна
    v = firstAriaFactor*y_1 + secondAriaFactor*y_2 + thirdAriaFactor*y_3,
    где y_1, y_2, y_3 - это средние координаты линии в зонах.
    02
Дополнительная информация
Ширина полосы 1м, радиусы закруглений углов прямоугольника 1м.
Изменение параметров
Старайтесь не изменять форматирование файла во избежание проблем с чтением файла в формате .json
  • Открытие файла
    Для изменения параметров Вам надо открыть с помощью любого текстового редактора следующий файл:
    C:\Elsiros\controllers\Robofest_TEAM\Init_params\Marathon_params.json
    01
  • Новые значения
    В этом файле надо изменять значения для параметров proportional, differential, firstAriaFactor, secondAriaFactor и thirdAriaFactor
    02
  • Новый запуск
    Для получения достоверных результатов после каждого запуска симулятора кнопкой "Run in real-time" рекомендуется перегрузить симулятор кнопкой "Reload world"
    03
Жюри будет запускать марафон с вашими параметрами 3 раза. В зачет пойдет наилучший результат
Отправка результатов
Инструкция для Вашего решения
Последовательность действий
  • Необходимые файлы
    Из папки
    C:\Elsiros\controllers\Robofest_TEAM\Init_params\
    Вам нужно передать следующие файлы:

    Sprint_params.json

    Marathon_params.json
    01
  • Формат письма
    Файлы необходимо отправить на email: robofest.elsiros@yandex.ru

    В email сообщении должны быть указаны:
    Имя, фамилия, возраст
    Номер СНИЛС
    Учебное заведение
    Email, телефон
    Наименование команды и вид соревнования "FIRA hurocup многоборье"
    02
  • Обратная связь
    Вам должен поступить ответ об успешном получении email сообщения
    Если вы не получили такое сообщение в течение дня, то нужно связаться через телеграмм и сообщить:
    https://t.me/robofest_elsiros
    03
  • Сроки сдачи работ
    Присылать свои решения можно до 25 января

    Результаты будут объявлены (сроки уточняются) на сайте
    04

Важно! Для того, чтобы дипломы ELSIROS учитывались при поступлении в МФТИ участие должно быть индивидуальным