Имеется двухколёсный двухмоторный робот с оптическими энкодерами на каждом колесе. Управление скоростью вращения - через PWM.
Я хочу указывать скорость каждого колеса, чтобы робот двигался по определённой траектории или делал разворот на месте.
В теории можно использовать 2 отдельных ПИД контроллера, для каждого колеса.
На практике возникают следующие проблемы:
- одно колесо может набирать скорость быстрее второго
- одно колесо может вообще не набрать нужную скорость из-за подсаженных батарей
+ нужно иметь дело с output saturation ( PWM может принимать значения 0...255)
что вызовет движение по другой траектории.
Выходит нужен третий ПИД контроллер, который будет следить за соотношением реальных скоростей, как-то перераспределять ошибки в первых двух ПИД.
Не хотелось бы изобретать велосипед. Где об этом можно почитать, или порыться в исходниках?
Пока нашёл только
MOTOR SPEED CONTROLLER FOR DIFFERENTIAL WHEELED MOBILE ROBOT
http://www.arpnjournals.org/jeas/resear ... 5_3118.pdf
Но там без подробностей.