Модель велосипеда

Простая модель движения машины: одно «рулевое» колесо спереди, ведущая ось сзади.

Модель велосипеда (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$.
  • Неголономное ограничение: нельзя двигаться вбок и крутиться на месте.
  • Реальные авто используют рулевое Аккермана; модель усредняет колёса.
Проверьте себя
1. Чем модель велосипеда отличается от дифференциального привода?
AНичем
BМашинеподобный робот не может развернуться на месте (неголономное ограничение)
CУ велосипеда нет колёс
DВелосипед быстрее
2. Как радиус поворота зависит от угла руля δ?
AR = L·tan δ
BR = L / tan δ — меньше угол, больше радиус
CR не зависит от δ
DR = δ·L