Компас: от 359 до 0 градусов

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

Проблема в том, что если, например, наше начальное направление составляет 90 градусов, а наш робот - 45, ошибка будет 45, и он исправит ее. Если он равен 0, ошибка будет 90, и он исправит ее. Проблема в том, что если он переместится немного больше 0 и, например, до 359, ошибка будет -269, поэтому вместо перемещения на 90 в одном направлении он переместится на -269 в другом.

Я использую знак ошибки, чтобы решить, какое колесо переместить, чтобы зафиксировать направление. есть идеи, как это исправить?

6
задан Dr Sokoban 5 April 2011 в 12:56
поделиться