Dubins Car
- 又稱: Dubins vehicle
- 類別: Planning & manipulation › Motion planning
- 標籤: motion-planning, kinematics, nonholonomic, fixed-wing, path-planning
一種以固定速度前進、轉向速率有界的平面車輛模型;它在兩個姿態之間的最短路徑最多由三段圓弧與直線段構成。
定義
Dubins 車(Dubins car)是一種車輛的運動學模型,車輛只能以固定速度前進,而且轉彎不能比某個最小半徑更急。它的狀態是位置 (x, y) 與航向 θ,其運動遵循 ẋ = v cos θ, ẏ = v sin θ, θ̇ = u,且 |u| ≤ v / R_min。與允許任意前進速度、也能停車、倒車與原地轉向的單輪車模型相比,Dubins 車速度固定、曲率有界,因此既不能停下,也不能原地轉向。與單輪車一樣,它受到非完整約束:不能橫向移動。
此模型以 Lester Dubins 命名,他在 1957 年證明,在沒有障礙物的平面上,兩個姿態之間曲率有界的最短路徑最多由三段構成,每一段要不是直線(S),就是以最小半徑向左(L)或向右(R)轉彎的圓弧。只有六種組合可能是最佳的:LSL、RSR、LSR、RSL、LRL 與 RLR,因此規劃器可以用封閉形式算出每個候選路徑,並保留最短的那一條。Reeds 與 Shepp(1990)把這個結果延伸到也能倒車的車輛,得到 Reeds-Shepp 車,其最佳路徑族更大。
Dubins 路徑是固定翼飛機、船隻與類車機器人規劃中的標準元件。RRT 與 RRT* 等以取樣為基礎的規劃器把它當作局部轉向函數,涵蓋規劃器與路線規劃器則用它在曲率限制下排定航點順序。三維延伸通常稱為 Dubins 飛機,加入了具有有界爬升率或下降率的高度維度。此模型有一些值得記住的限制:實際車輛無法在左滿舵、直行與右滿舵之間瞬間切換,因此各段銜接處的曲率跳變必須由控制器平滑,或改用回旋曲線或其他曲率連續的路徑來規劃;而風或水流會以純模型忽略的方式改變對地速度。
為何重要
許多載具,包括固定翼無人機、船隻與高速行駛的汽車,確實只能向前移動並受最小轉彎半徑限制。Dubins 車以最簡單的模型掌握這一點,並提供封閉形式的最短路徑,因此成為這類載具規劃與控制的參考基準。
主要應用
- 固定翼 UAV 的路徑規劃
- 類車機器人以取樣為基礎之規劃器中的轉向函數
- 海上載具的航點路線規劃
- 受曲率限制的涵蓋路徑與巡檢路徑
- 具有轉彎限制的路線問題,例如 Dubins 旅行推銷員問題
實際應用
一架固定翼測量無人機必須依序通過一系列航點,每個航點都有規定的航向。規劃器使用飛機在巡航速度下的最小轉彎半徑,並為風預留裕度,計算相鄰航點姿態之間的 Dubins 路徑,再把結果串成一條航線,由導引律逐段跟隨。當多架這類飛機需要協同時,例如在把固定翼飛機建模為 3D Dubins 載具的分散式路徑跟隨研究中,協同律必須在無法減速到停止或原地等待的情況下運作。
常見誤解
- Dubins 車與單輪車模型是同一回事 — 單輪車可以改變速度、停下與原地轉向,Dubins 車則以固定速度前進且曲率有界
- 實際車輛可以精確跟隨 Dubins 路徑 — 這些路徑含有曲率的瞬間變化,實際的轉向或傾斜轉彎必須將其平滑
- Dubins 解在有障礙物時也是最佳的 — 六種路徑的結論只在無障礙平面上成立;有障礙物時,Dubins 線段只是更大規劃器中的局部連接
誰需要了解
- 固定翼 UAV 導引與規劃工程師
- 運動規劃研究人員
- 海上載具與自駕車開發者
- 學習非完整規劃的機器人學學生
相關技術
- Reeds-Shepp 曲線(Reeds-Shepp Curves)
- Dubins 飛機模型(Dubins Airplane Model)
- 回旋曲線路徑(Clothoid Paths)
- 開放運動規劃函式庫(Open Motion Planning Library,OMPL)
- Hybrid A*
相關術語
相關專案
- ArduPilot: World's most trusted open-source autopilot for drones, planes, rovers, and submarines
- Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
- ROS Motion Planning: One repo implementing 40+ classic and learning-based robot path planners as ROS plugins
- OMPL: Sampling-based motion planning library powering MoveIt and countless robotics applications
- 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