Reeds-Shepp 曲线与 Dubins 曲线是平面内连接指定位姿的两点之间、满足曲率约束的最短路径曲线,在路径规划(Path Planning)领域广泛应用。
| 特性 | Dubins 曲线 | Reeds-Shepp 曲线 |
|---|---|---|
| 提出年份 | 1957 年 | 1990 年 |
| 运动方向 | 仅允许前进(单向) | 允许前进和后退(双向) |
| 路径类型数 | 6 种 | 48 种(后简化为 46 种) |
| 路径段数 | 最多 3 段 | 最多 5 段 |
| 最短路径 | 通常更长(运动受限) | 通常更短(可后退优化) |
| 典型应用 | 无人机、固定翼飞行器 | 自动泊车、仓储机器人 |
| 碰撞容错 | 存在无碰撞路径时不一定有 Dubins 无碰撞路径 | 存在无碰撞路径时一定存在 RS 无碰撞路径 |
关于 Reeds-Shepp 路径类型数量的说明:不同资料记载有48、46或44种。最新资料指出有44种运动类型组合,另有资料提到Reeds-Shepp基础曲线类型有五种。早期的48种中已有2种被证明冗余,剩余46种。作为基础记忆,48种是常见的原始表述。
1、车辆运动模型
两者的基础车辆模型基本一致,通常使用 简单汽车模型(Simple Car Model):
x˙=vcosθy˙=vsinθθ˙=vLtanϕ \dot{x} = v \cos \theta \\ \dot{y} = v \sin \theta \\ \dot{\theta} = \frac{v}{L} \tan \phi x˙=vcosθy˙=vsinθθ˙=Lvtanϕ
其中,(x,y)(x, y)(x,y) 为车辆位置,θ\thetaθ 为航向角,vvv 为速度,LLL 为轴距,ϕ\phiϕ 为前轮转向角。曲率 κ\kappaκ 受限于 κmax=1/ρmin\kappa_{\text{max}} = 1/\rho_{\text{min}}κmax=1/ρmin(即车辆存在一个最小转弯半径 ρ\rhoρ)。
Reeds-Shepp 的运动模型 增加了一个方向控制变量 u1∈{−1,1}u_1 \in \{-1, 1\}u1∈{−1,1},表示前进或后退:
x˙=u1cosθy˙=u1sinθθ˙=u1⋅u2(其中 u2∈[−tanϕmax,tanϕmax]) \dot{x} = u_1 \cos \theta \\ \dot{y} = u_1 \sin \theta \\ \dot{\theta} = u_1 \cdot u_2 \quad (\text{其中 } u_2 \in [-\tan \phi_{\text{max}}, \tan \phi_{\text{max}}]) x˙=u1cosθy˙=u1sinθθ˙=u1⋅u2(其中 u2∈[−tanϕmax,tanϕmax])
2 、路径描述与分类
2.1、运动基元(Motion Primitives)
两种曲线都由以下基本动作组成,其中 Reeds-Shepp 额外区分了前进与后退:
| 符号 | 含义 | 符号 | 含义 |
|---|---|---|---|
| S (Straight) | 直线运动 | ||
| L (Left) | 左转圆弧 | R (Right) | 右转圆弧 |
| L⁺ | 左转前进 | L⁻ | 左转后退 |
| R⁺ | 右转前进 | R⁻ | 右转后退 |
| S⁺ | 直线前进 | S⁻ | 直线后退 |
2.2、Dubins 路径类型
Dubins 证明了最短路径不会超过3个运动基元,并可分为两大族:
| 族 | 包含类型 |
|---|---|
| CSC 族(圆弧-直线-圆弧) | LSL, RSR, LSR, RSL |
| CCC 族(圆弧-圆弧-圆弧) | LRL, RLR |
2.3、Reeds-Shepp 路径类型
Reeds-Shepp 路径最多5段,基础形式更为复杂。其基础词主要包括:
| 基础词 | 路径形式 |
|---|---|
| CSC | 圆弧 + 直线 + 圆弧 |
| CCC | 圆弧 + 圆弧 + 圆弧 |
| CCCC | 四段圆弧组合 |
| CCSC | 圆弧 + 圆弧 + 直线 + 圆弧 |
| CSCS 等 | 其他组合形式 |
通过在基础词中加入方向符号,共展开为 48 种具体组合 。这些组合分为 CCC、CSC 和 CCSCC 三大类。
3、理论基础
- Dubins (1957年) :证明了最短路径必为 6 种类型 之一。
- Reeds & Shepp (1990年) :证明了可后退汽车的 48 种路径词 包含所有最优解。
- Sussman & Tang :后续将 RS 路径精炼为 46 种有效组合。
两者均体现了庞特里亚金极大值原理,时间最优路径均由最大曲率弧段和直线段构成,呈现 bang-bang 控制 特性。
4、计算方法与算法
核心目标:计算连接起点 qIq_IqI 和终点 qGq_GqG 的最小路径长度。
4.1、求解流程
- 位姿归一化:计算相对位姿,简化问题。
- 候选路径生成:枚举所有可能的路径类型组合。
- 长度计算:为每种组合计算具体的弧长和线段长度。
- 最优选择:从所有可行路径中选出总长度最短的那一条。
4.2、分类简化
现代实现常利用对称性和分区方案来减少计算量,而非直接枚举所有组合。
对于 Reeds-Shepp 曲线,可利用对称性 将 48 种组合化简,例如只需推导
L⁺S⁺R⁺,其他 CSC 类型可通过对称变换得到,从而降低编码工作量。
5、几何结构与特性
- 曲率约束 :所有弧段曲率 ≤κmax\leq \kappa_{\text{max}}≤κmax。
- 长度计算:路径总长为各段弧长与直线段长度之和。
- Dubins 闭集:6 种路径构成了一个有限闭集,保证最优路径一定在其中。
- 对称性:利用对称变换(如时间翻转、反射变换、反向变换)可以极大地简化路径的生成和分析。
- RS 的复杂性:Reeds-Shepp 状态空间的复杂分区使得实时选择最短路径词比 Dubins 更具挑战性。
6、应用场景
- 自动驾驶/机器人 :RS 曲线广泛用于自动泊车,因为倒车是必要操作。
- 无人机 (UAV) :Dubins 曲线常用于固定翼无人机,因为其不能悬停或倒飞。
- 采样规划:作为局部规划器生成符合车辆动力学的平滑路径。
- 矿区自动驾驶:基于 Dubins 曲线提出无碰撞、平滑的局部路径规划方法。
- 农业与环境监测:用于非完整约束机器人在狭窄通道中的导航。
7、对比分析
- 可达性:RS 可达集更大,可完成更紧凑的机动(如泊车)。Dubins 则无法到达某些需要倒车才能进入的区域。
- 路径长度:RS 路径长度 ≤ Dubins 路径长度,实验验证允许倒车可显著缩短距离。
- 计算成本:RS 曲线候选集更大(46 vs 6),计算成本更高,但通过对称性技巧可有效缓解。
- 障碍物环境:在存在障碍物时,起点和终点间存在无碰撞路径,RS 曲线仍一定存在无碰撞的版本;但 Dubins 曲线不一定存在。
- 度量性质 :Dubins 距离不对称 (d(A,B)≠d(B,A)d(A,B) \neq d(B,A)d(A,B)=d(B,A)),RS 距离是对称的。
8、局限性与扩展
- 非完整约束:两者均为具有最小转弯半径的非完整约束模型。
- 障碍物问题:标准模型假设为无障碍物环境,有障碍物时需与搜索算法(如混合A*)结合使用。
- 曲率连续性 :两者在分段连接处曲率不连续,可能导致车辆需要原地转向,产生了对连续曲率曲线(如回旋曲线/CC Steer)的研究。
- 动力学扩展 :出现考虑环境流(风/洋流) 的 Dubins 路径规划,以及可变半径的 Reeds-Shepp 曲线,以适应复杂场景。
9、实际案例与实现
- OMPL/ROS :
ompl::base::DubinsStateSpace和ompl::base::ReedsSheppStateSpace中提供了成熟的实现,可直接作为状态空间的距离函数(State Space Distance)。 - MATLAB :提供
reedsSheppConnection函数。 - Python :PyPI 上的
reeds-shepp和dubins包提供了开箱即用的解决方案。
10、总结
Reeds-Shepp 曲线与 Dubins 曲线是解决平面内两点之间受曲率约束的最短路径问题的经典方法,两者核心对比如下:
- Dubins 曲线 (1957)是单向运动的经典基础,以有限6种类型高效生成最短路径,在固定翼无人机等无法倒车的场景中具有重要应用价值。
- Reeds-Shepp 曲线 (1990)通过允许双向运动(倒车)实现了更优路径,虽然候选路径类型增至46-48种,计算复杂度更高,但在自动泊车等需要倒车操作的场景中不可或缺。
两者为现代机器人运动规划奠定了坚实的数学基础。尽管在连续曲率和障碍物处理上存在局限,但通过与搜索算法的结合(如混合A*)以及连续曲率平滑后处理,它们至今仍是采样规划器等复杂系统中最常用的局部规划器之一。