Привет товарищи!
Вобщем сделал я тут такую задачку, интересную как я думаю всем.
У всех есть (?) робот на котором установлена пара двигателей и энкодеры.
Озаботился я созданием модуля управления всем этим и накидал ТЗ.
Теперь собственно ТЗ:
- модуль предназначен для управления дифференциальным приводом.
- на вход модулю передается значение скорости которую необходимо развить.
- на вход модулю передается значение отставания левого колеса от правого (+5 - отстает на 5 попугаев. -5 - перегоняет на 5 попугаев).
- модуль должен поддерживать заданную скорость движения.
- при невозможности достижения скорости сверху или снизу рапортовать "слишком медленно" и "не догнать" соответственно.
- рассогласование имеет приоритет над скоростью (т.е. если, например, один двигатель может разогнаться до заданной скорости, а второй нет, то первый должен понизить обороты так, чтобы установить заданное рассогласование). Это позволит выполнять маневры с большей точностью жертвуя скоростью.
- в случае невозможности достичь рассогласования сообщить об этом.
Ну а теперь все это вместе одной строкой: модуль должен поддерживать скорость максимально приближенную к заданной при заданном рассогласовании.
Кто может обрисовать логику работы?