5 февраля мы вернулись к работе над "Шорт-треком": именно в этой номинации нам предстоит выступать на отборочных соревнованиях на "Робофест-2016".
Задача наша понятная, но непростая: как заставить робота, который уже успешно преодолевает дистанцию от старта до финиша, делать это как можно быстрее? Конструкцию мы менять не будем: нам ее еще собирать и разбирать - нельзя отказываться от того, что мы уже наработали. Нужно "выжать" из этой конструкции максимум за счет настройки коэффициентов (или по-другому - параметров) в блоке управления роботом.
Итак, что же можно изменять? Вспомним, как у нас идет управление движением по линии:
В начале главного цикла у нас стоят два блока математики и блок управления двигателями, который и определяет, куда робот, собственно, едет. У нас три числовых параметра для управления движением робота:
1. Скорость робота - это число в третьем блоке (на картинке 40) - обозначим ее буквой V
2. Коэффициент усиления - первое число во втором блоке математики (на картинке 0.5) - обозначим его K1
3. Коэффициент при кубической составляющей - второе число в том же блоке математики (на картинке 0.001, но целиком не видно) - обозначим его К2.
Эти три числа нужно подобрать таким образом, чтобы робот ехал ровно, не вилял на прямой, максимально ровно проходил повороты, и стабильно доезжал до финиша за минимальное время. Поиск этого набора настроек мы выполнили в виде трех экспериментов:
1. Сначала увеличиваем скорость, оставляя К1 и К2 неизменными и смотрим: время прохождения уменьшилось?. При дальнейшем увеличении скорости робот начинал сильно "вилять", что его существенно замедляло, или даже сходил с дистанции. В результате получилось значение в диапазоне от 55 до 65 (для разных роботов).
2. После этого, чтобы избавиться от "виляния" на поворотах, начали изменять коэффициент К2 - причем оказалось, что для плавности хода робота его надо уменьшать. В результате остановились на значении от 0.00001 до 0.0002 (опять-таки для разных роботов).
3. Последним решили исследовать влияние первого коэффициента, то есть К1. Пробовали уменьшать (до 0.4) - робот сходит с трассы :( Пробовали увеличить до 0.6 - опять начинает "вилять". В результате решили, что тройка значений 0.5 - 0.00001 - 64 (это конкретно для моего робота, у каждого из участников - свои) это и есть те настройки, с которых нужно начинать отладку на соревнованиях.
Это исходные настройки, которые нужно будет уточнять конкретно на месте соревнований. Зависят они от освещенности, материала, на котором нарисована трасса, заряда аккумулятора робота и так далее... Это та работа, которую должен уметь выполнять КАЖДЫЙ робототехник и от качества выполнения которой существенно зависит результат выступления.
Не забываем, что и настройку параметров робота, и выступления на соревновании необходимо проводить при ПОЛНОМ заряде аккумулятора. В дальнейшем, такую отладку программы мы будем повторять с каждым роботом перед соревнованиями - только количество и состав параметров могут существенно отличаться. Но об этом уже после Робофеста...
