Движение двухколесного робота зависит от оборотов левого и правого колеса. При различных скоростях колес робот начинает двигаться по окружности с центром в точке, описываемой радиус-вектором Rc. Радиус поворота — длина вектора Rr. Графически модель представлена на рис. 3.5.
Рис. 3.5 Графическое представление модели робота
Дополнительные параметры робота:
Dr — диаметр колеса.
l — расстояние между колесами.
щ1 — угловая скорость левого колеса.
щ2 — угловая скорость правого колеса.
ц — угол, определяющий ориентацию робота Сначала найдем ?ц. Длина дуги, по которой проехало правое колесо:
Зная длину дуги, нетрудно вычислить ?ц, поделив полученное выражение на длину окружности, по которой вращается колесо.
где |Rr(t)| + l/2 — радиус вращения правого колеса.
Аналогичным образом ?ц определяется для левого колеса, необходимо лишь изменить радиус вращения:
Из выражений для ?ц можно выразить |Rr|, приравняв правые части:
Подставив полученное выражение для |Rr| в любое из выражений для ?ц и произведя упрощение, получаем конечное выражения для ?ц:
Теперь перейдем к описанию положения робота. Для задания начального положения рота необходимо ввести два радиус-вектора P01 и P02, определяющие положения колес. Очевидно, что разность этих векторов дает координаты центра робота.
Так же есть необходимость введения матрицы поворота двумерного вектора на угол ц T (ц):
Поскольку время ?t мало, можно рассматривать перемещение робота как движение по дуге с постоянным радиусом |Rr|. Центр дуги задается радиус-вектором Rр. В этом случае выполняется равенство:
Из данного равенства можно выразить ?Rr(t):
На данном этапе необходимо сделать подстановку |Rr| и ?ц, а так же произвести упрощение выражения с учетом малости ?ц (sin (?ц) = ?ц, cos (?ц) =1). После этого можно разложить выражение для вектора ?Rr(t) по компонентам х и у и представить его в дифференциальной форме: