Каждый раз для соревнований мы стараемся подготовить нового робота как конструкционно, так и алгоритмически. Для соревнований по слалому в 2020 году мы приготовили робота с ПИД алгоритмом и двумя датчиками цвета. Особенностью этого роота стало то, что мы сделали конструкцию с наклонными двигателями (колесами). Нам эта идея пришла от грузовиков марки Tatra, у которых колесная база находится под углом к поверхности.
К сожаленью, данный робот так и не принял участия ни в одном соревновании, поэтому мы провели ряд экспериментов дома. Мы провели ряд тестовых заездов с разными параметрами. Первая часть эксперимента заключалась в том, чтобы поставить на роота колеса разного размера без изменения алгоритма езды и параметров программы. Вторая часть заключалась в том, чтобы под каждый тип колес подобрать «оптимальные» настройки для максимальной скорости прохождения одной и той же трассы.
В результате экспериментов мы получили следующие результаты.
Условные обозначения:
T — время прохождения трассы в секундах.
Sd — скорость вращения двигателя.
Колеса | Ширина робота |
T Sd 50 |
T Sd 65 |
T Sd 80 |
---|---|---|---|---|
Маленькие d45мм |
19 см | 51.25 | 41.34 | 33.77 |
Средние d70 |
26 см | 35.06 | 26.91 | вылет с трассы |
Большие d85мм |
30 см | 28.35 | вылет с трассы | вылет с трассы |
Для каждого типа колес можно подобрать оптимальный набор параметров для скорости и ПИД алгоритма, чтобы получить максимальную скорость на трассе и обеспечить устойчивость (не вылет). Однако в нашем случае только робот с маленькими колесами удовлетовряет требованиям соревнований — ширина робота не должна превышать 25 см.
Именно под эти колеса мы подобрали лучшие значения различных параметров, но это уже совсем другая история.
Вы можете скачать нашу программу для EV3 и провести свои эксперименты.
Файл содержит несколько версий программ, но вам нужны две:
1) calibration — программа калибровки датчиков цвета.
2) duo-pid — программа для слалома.
Первый раз необходимо запустить калибрацию датчиков цвета. Робот делает оборот на 360 градусов, считывая показания ооих датчиков и находит среднее значение. После этого он вычесляет корреляционный коэффициент между датчиками и сохраняет его в файл.
Основная программа при старте считывает этот коэффициент и использует его для нормализации показаний датчиков цвета при езде по трассе. Это сделано из-за того, что разные датчики имеют разную точность и диапазон измерения цвета (силу отраженного света) и данный подход позволяет сгладить эту погрешность. В нашем случае левый датчик показывал силу отраженного света на белом цвете приблизительно на 10% меньше, что без использования корреляционного коэффицианта практически сводило использование ПИДа к нулю.