Как перевести левую и правую скорости двигателя бака в траекторию / кривизну - PullRequest
0 голосов
/ 11 сентября 2018

Я работаю над симуляцией танка в MATLAB.Танк имеет два мотора, левый и правый.Каждый из них может быть написан индивидуально, чтобы работать в любом месте от (-100%) до (+ 100%) скорости.Итак, если я напишу L, R = (100%, 100%), каждый двигатель будет вращаться с одинаковой скоростью и, следовательно, будет двигаться по совершенно прямой линии.Запись L, R = (-100%, 100%) заставляет робота оставаться в той же координате (x, y), но изменяет его угол.L, R = (50%, 100%) заставляет робота двигаться вперед И поворачивать его угол.

Мой вопрос: как я могу перевести эти левую и правую скорости двигателя в уравнение траектории или кривизны?

1 Ответ

0 голосов
/ 12 сентября 2018

Если предположить отсутствие скольжения, скорость бака будет равна средней скорости двух двигателей. Скорость вращения будет прямо пропорциональна разнице в скорости двух двигателей. Если w - ширина резервуара, а v_delta - это разница в расстоянии, пройденном в секунду по двум сторонам, резервуар будет поворачиваться один раз за 2 * PI * w / v_delta секунды, поэтому скорость вращения составляет v_delta / 2 * PI * w вращений в секунду. или v_delta / w радиан.

Это дает вам скорость как функцию времени. И теперь вы можете просто отслеживать местоположение и угол наклона танка так же, как и любой другой движущийся и ускоряющийся объект. (Лично я бы использовал Runge Kutta.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...