Модель велосипеда
Простая модель движения машины: одно «рулевое» колесо спереди, ведущая ось сзади.
Модель велосипеда (bicycle model) — упрощение автомобиля до двух колёс на одной линии: заднее ведущее и переднее рулевое; описывает движение машинеподобных роботов.
В отличие от дифференциального привода, машина не может развернуться на месте — это неголономное ограничение. Управление — скорость $v$ и угол руля $\delta$. При колёсной базе $L$ угловая скорость:
$$ \omega = \frac{v \tan\delta}{L} $$
Радиус поворота при заданном угле руля:
$$ R = \frac{L}{\tan\delta} $$
Чем меньше угол руля, тем больше радиус (едем почти прямо); при $\delta \to 90^\circ$ радиус стремится к нулю — но физически руль так не выкручивается.
Считаем траекторию
$v = 1.0$ м/с, $\delta = 20^\circ$, база $L = 2.0$ м.
import math
v = 1.0
delta = math.radians(20)
L = 2.0
w = v * math.tan(delta) / L
R = L / math.tan(delta)
print("угловая скорость w =", round(w, 4), "рад/с")
print("радиус поворота R =", round(R, 4), "м")
# проедем 2 секунды
x = y = theta = 0.0
dt = 0.1
for _ in range(20):
theta += w * dt
x += v * math.cos(theta) * dt
y += v * math.sin(theta) * dt
print("через 2 с: x =", round(x, 3), "y =", round(y, 3),
"theta =", round(math.degrees(theta), 1), "град")Вывод:
угловая скорость w = 0.182 рад/с радиус поворота R = 5.495 м через 2 с: x = 1.953 y = 0.378 theta = 20.9 град
Как работает под капотом
Неголономность означает: у робота 3 координаты позы $(x, y, \theta)$, но мгновенно он может двигаться лишь «вперёд/назад и поворачивать» — нельзя сдвинуться вбок. Поэтому парковка боком требует серии манёвров. Реальные автомобили используют рулевое Аккермана: внутреннее и внешнее колёса поворачиваются на разные углы, чтобы катиться по концентрическим дугам без проскальзывания; модель велосипеда усредняет их в одно колесо.
Частые ошибки
- Применять формулы дифференциального привода к машине — у неё нельзя крутиться на месте.
- Забывать предел угла руля: $\delta$ ограничен, значит и минимальный радиус поворота конечен.
- Путать колёсную базу $L$ (между осями) с шириной колеи.
Итог
- Модель велосипеда описывает машинеподобные роботы: руль спереди, привод сзади.
- $\omega = v \tan\delta / L$, радиус поворота $R = L / \tan\delta$.
- Неголономное ограничение: нельзя двигаться вбок и крутиться на месте.
- Реальные авто используют рулевое Аккермана; модель усредняет колёса.