Open Source Robotics

精選高品質的開源機器人專案、工具與軟體,推動機器人社群向前發展。

Bicycle model

  • 又稱: single-track model
  • 類別: Foundations & spatial maths › Kinematics
  • 標籤: vehicle-dynamics, kinematics, autonomous-driving, mobile-robots, car-like-robots

一種平面車輛模型,把每根車軸的兩個車輪合併成中心線上的一個車輪,為類車輛機器人帶轉向的運動提供簡單的模型,其動力學形式還包含輪胎力。

定義

自行車模型(bicycle model),又稱單軌模型(single-track model),把每根車軸的左右車輪合併成位於車輛中心線上的單一車輪,藉此描述一輛在平面上運動的四輪車輛。結果看起來就像一台自行車:一個可轉向的前輪與一個固定的後輪,兩者相隔一個軸距。它忽略了側傾、俯仰、懸吊以及左右輪胎之間的差異,但保留了對路徑追蹤最重要的幾何關係:類車輛的載具必須靠轉向來轉彎,轉彎半徑取決於轉向角與軸距,而且它無法隨意橫向移動。

這個模型有兩種常見形式。運動學自行車模型假設每個車輪都在沒有側向滑移的情況下滾動,因此每個車輪的速度都指向其朝向。它的狀態是位置、航向與速度,輸入是轉向角與加速度;以後軸為參考點時,偏航角速度等於速度乘以轉向角的正切,再除以軸距。它在低速與中等側向加速度下表現良好。動力學自行車模型加入車輛的質量、偏航轉動慣量,以及質心到各車軸的距離,並依據每根車軸的輪胎滑移角,透過線性過彎剛性模型或 Pacejka 魔術公式等非線性輪胎模型計算輪胎側向力。當輪胎接近抓地極限時,例如緊急操控、賽車或甩尾,就需要這種模型。

自行車模型介於較簡單與較豐富的車輛模型之間。單輪車模型直接命令前進速度與偏航角速度,沒有轉向幾何,也沒有最小轉彎半徑。Dubins 車是一種規劃上的抽象:以固定速度前進且曲率有界,這正是運動學自行車模型在固定速度與轉向限制下所變成的樣子。當自行車模型把左右輪胎合併處理顯得太粗略時,就會改用納入負載轉移、懸吊與各輪胎個別受力的四輪模型。

為何重要

幾乎每一輛自駕車、每一台阿克曼轉向的移動機器人與小比例競速平台,都在規劃器、控制器或狀態估測器中使用某種形式的自行車模型。它夠簡單,能以高頻率在模型預測控制中執行,同時又能掌握轉向限制,在動力學形式中還能掌握輪胎飽和。

主要應用

  • 自駕車與賽車的模型預測控制
  • 純追蹤與 Stanley 型轉向律等路徑追蹤控制器
  • 阿克曼轉向移動機器人的軌跡規劃
  • 車輛狀態估測,包括側滑角估測
  • 甩尾與極限操控控制

實際應用

一個團隊為一台小比例自駕賽車建立模型預測控制器。在低速時,他們使用運動學自行車模型,軸距在車上實測,轉向限制取自伺服機的行程,用來在短的預測時域內預測路徑。隨著單圈速度提高,賽車開始在彎道中轉向不足,運動學預測出現偏差,於是改用動力學自行車模型。他們從記錄的行駛資料中鑑別質量、偏航轉動慣量、車軸距離與輪胎過彎剛性,接著先確認預測的偏航角速度與側向加速度和 IMU 的量測值相符,再調整控制器。

常見誤解

  • 自行車模型只適用於自行車 — 它是四輪類車輛載具的模型,其中每根車軸被合併成一個車輪
  • 運動學自行車模型在任何速度下都成立 — 它假設輪胎沒有滑移,隨著側向加速度增加會變得不準確;在抓地極限附近需要包含輪胎力的動力學版本
  • 自行車模型與單輪車模型是同一回事 — 單輪車模型直接命令偏航角速度,而自行車模型透過轉向幾何轉彎,並有最小轉彎半徑

誰需要了解

  • 自駕車與車輛控制工程師
  • 使用阿克曼轉向的移動機器人開發人員
  • 研究類車輛機器人的運動規劃研究人員
  • 製作小比例自駕賽車的學生與創客

相關技術

  • 阿克曼轉向(Ackermann Steering)
  • Pacejka 魔術公式(Pacejka Magic Formula)
  • 純追蹤(Pure Pursuit)
  • 模型預測控制(Model Predictive Control)
  • Reeds-Shepp 曲線(Reeds-Shepp Curves)

相關術語

  • Unicycle Model
  • Dubins Car
  • Nonholonomic Constraint
  • Tire slip angle
  • Model Predictive Control

相關專案

  • MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • DART: C++ physics engine for articulated rigid body dynamics and robotics simulation
  • MOLA: Modular C++/ROS 2 framework for LiDAR odometry, SLAM, and localization
  • IKPy: Pure-Python inverse kinematics library that builds chains straight from URDF
  • Vision Pilot: Autoware Foundation's open-source L2 ADAS stack from a single camera

影片

  • Self-Driving Cars - Lecture 5.2 (Vehicle Dynamics: Kinematic Bicycle Model): Tübingen Machine Learning
  • Self-Driving Cars - Lecture 5.4 (Vehicle Dynamics: Dynamic Bicycle Model): Tübingen Machine Learning

本網站需要 JavaScript 才能正常運作。請啟用 JavaScript 以瀏覽我們的開源機器人專案。