Я пытаюсь переместить робота с помощью компаса. Мы используем компас, чтобы робот двигался по прямой линии, он использует 2 колеса, и они двигаются немного по-другому.
Поэтому мы устанавливаем значение от 0 до 359 в качестве направления, а затем проверяем текущее направление, вычисляем ошибку и исправляем ее. Как ошибка = current_direction - фактическое направление.
Проблема в том, что если, например, наше направление инициализации составляет 90 градусов, а наш робот - в 45, ошибка будет 45, и она исправит это. Если это 0, ошибка будет 90, и это исправит это. Проблема в том, что если он перемещается чуть больше 0 и, например, достигает 359, ошибка будет -269, поэтому вместо перемещения в одном направлении на 90 он будет двигаться в -269 в другом.
Я использую знак ошибки, чтобы решить, какое колесо двигаться, чтобы зафиксировать направление.
есть идеи как это исправить?