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