Дифференциальный привод для тяжелого робота

Я задаю здесь еще один вопрос в связи с моим предыдущим .

Я хотел бы знать, как поступить, если вы хотите управлять тяжелым роботом с дифференциальным приводом. Когда дело доходит до отправки значений ШИМ, я не могу управлять роботом, т.е. не могу заставить робота двигаться по прямой.

Другой проблемой будет торможение робота. Подумайте о 100 кг при максимальном весе, поэтому у него будет МНОГО импульса и инерции. Зная это, что бы вы сделали, чтобы контролировать его движение с помощью системы дифференциального привода, и как бы вы контролировали поломку?

Примечание: это не должно рассматриваться как хобби-проект. Думайте об этом как о лучшем способе реализации.

Ответы (1)

Один ответ: системы с замкнутым контуром и/или слияние датчиков

Вы не можете просто посылать мотору правильные команды и ожидать, что робот будет действовать именно так, как вы ожидаете. Подумайте об очень-очень небольшой разнице в крутящем моменте, создаваемом двумя вашими двигателями, которые получили два одинаковых ШИМ-сигнала (из-за производственных допусков двигателя). Один будет двигаться немного быстрее другого, и робот будет бегать по кругу (очень большому, но все же кругу), а не по прямой. Ответом на эту проблему является замкнутый контур управления. Ваши двигатели или ваши колеса будут иметь энкодеры. И ваша система управления будет получать сигналы от энкодеров и реагировать таким образом, чтобы ваши колеса делали именно то, что вы от них ожидаете.

Но в случае с автономным роботом этого недостаточно. Подумайте о том, чтобы колесо было немного больше другого из-за износа или просто из-за производственных допусков. Или подумайте о колесе, которое немного скользит по полу. В этом случае вы больше не знаете наверняка, где вы находитесь. Этот метод называется одометрией или счислением пути. Чтобы решить эту проблему, вы должны использовать датчики, которые добавляют знания о вашей среде в вашу систему. (Обзор, датчик приближения, бамперы, магнитометр, гироскопы и т.д.). Затем используются передовые алгоритмы, чтобы использовать лучшее от каждого датчика на каждом временном шаге.

Какие возможные недостатки я могу получить, используя энкодеры?? Я предполагаю, что будет задержка в ответе робота, так как моторные pids должны будут настроить PWM на нужную скорость, правильно?
К недостаткам можно отнести повышенную сложность: приходится подключать энкодеры и декодировать квадратурные сигналы (обычно в микроконтроллере для этого есть специальный модуль). Всегда есть задержка: даже вычисление занимает некоторое время! Теория управления не так проста. Особенно, когда речь идет о дискретной системе (не простой аналоговый PID, переведенный в цифровой мир, а алгоритмы, использующие всю мощь цифровых вычислений). Вы можете принять во внимание различные задержки, и это больше не будет проблемой. Бросание PID и ручная настройка 3 значений здесь не помогут.