← 术语图鉴

Hybrid A*

Hybrid A* Search · 也叫 混合 A*

在栅格上搜路,但节点按车辆运动学扩展,搜出来的每一步车都开得到——擅长停车场、掉头、窄空间这类非结构化场景。

会上可能听到:“泊车和掉头用的是 Hybrid A*。——它和普通 A* 差在哪?”

它到底是什么意思

普通 A* 不管运动学,搜出的折线可能要求原地转向 90 度。Hybrid A* 改的是节点扩展:按几个离散的前轮转角各往前滚一小段,每个后继都是车真能到的状态;代价仍按栅格算。

搜索中随时试着用 Dubins 或 Reeds-Shepp 曲线直连目标,没有碰撞就提前收工。两者都是转弯半径受限时连接两个位姿的最短曲线:Dubins 只能前进,最优解是 6 种组合之一;Reeds-Shepp 允许倒车,共 48 种。

启发函数用了两个,一个只管运动学,一个只管障碍。各有一类会把代价严重算低的盲区,一起用才能互补。两者都不会高估代价,原论文取两者中较大的那个。

机制图解

两个启发函数,各有一类盲区

只管运动学、不管障碍知道目标朝向,但看不见障碍 · 遇到死路会把代价严重算低
只管障碍、不管运动学知道哪里是死路,但不管朝向 · 朝向对不上时同样严重算低
一个管「朝向对不对」,一个管「前面是不是死路」,各补对方的短板,所以要一起用。

容易搞混的地方

常见误解

Hybrid A* 就是在更细的栅格上跑 A*

正确理解

变的是节点扩展:按车辆运动学往前滚,每个后继都是车真能到的状态。栅格还在用:代价按栅格算,落进同一格、朝向也在同一档的节点只留代价低的那个

常见误解

Dubins 和 Reeds-Shepp 是另外两种搜索算法

正确理解

它们是转弯半径受限时连接两个位姿的最短曲线,在 Hybrid A* 里用来提前收工

看懂之后可以追问

  1. 提前收工用的是 Dubins 还是 Reeds-Shepp?允许倒车吗?Dubins 只能前进;允许倒车的 Reeds-Shepp,同样的起点和终点可能连得更短。停车场、掉头正是常要倒车的地方。
  2. 两个启发函数是怎么组合的?死路和朝向对不上的场景专门测过吗?这两类场景正是单个启发函数会把代价严重算低的地方,最能看出互补有没有做到位。

对比着看

  • Frenét 坐标与五次多项式采样——沿参考线拆成纵向 s 和横向 l,采一批终止状态、每个配一条五次多项式、挑代价最低的——横纵解耦只在高速近似成立。
  • DP + QP:EM Planner——路径和速度分开规划,每边先 DP 后 QP:DP 在非凸空间里做离散决策、圈出凸的可行走廊,QP 在走廊里求平滑解。

接着看

  • 时空语义走廊 SSC——沿决策层前向仿真的状态,在 s-l-t 空间里修一串相连的无碰撞立方体,再在这条走廊里铺轨迹——决策和规划在这里合龙。