一、混合A*算法变更了连通图结构。
与A算法在网格上搜索相比,混合A算法额外考虑了θ这一维度,从而将连续的三维(x, y, θ)状态空间网格化。且混合A*使用车辆后轴中心点坐标,使用θ代表车辆位姿。
二、混合A*更改了节点拓展方式。
假设当前节点Nodecurrent中具体记录着车辆位姿(x, y, θ),混合A算法要求在v, Φ在单位时间1.0秒内采样为某常值,是的车辆以初始状态在单位时间内1.0秒内按照v, Φ行驶,通过前向模拟获得一段始于起点位姿的符合车辆运动学的行车路径,且路径末端位姿落入的三位网格对应子节点Nodechild。其中,保证v∈{-vmax, vmax}, Φ∈{-Φmax,0,Φmax}条件下至少可拓展6个子节点。在前向模拟过程中,混合A忽略车辆加速度以及前轮转角速度,仅考虑最基础的自行车模型,如下:
在1.0秒内,设置v恒为vmax,Φ恒为Φmax,则可以确定t∈[0, 1]时间内车辆的运动轨迹。
θ(t) = θ(0) + [vmax * tan(-Φmax) / Lw] * t
x(t) = x(0) + ∫ v(τ)* cos(θ) dτ;
y(t) = y(0) + ∫ v(τ)* sin(θ) dτ; v∈[0, 1]
[x(t), y(t), θ(t)]对应车辆在t∈[0, 1]区间上的运动轨迹,这条完整轨迹连通其末端位姿都记录着子节点Node中。
v∈{-vmax, vmax}, Φ∈{-Φmax,0,Φmax}。一共六种组合,可以生成六种轨迹
三、混合A*丰富了每一个节点所需记录的字段类别。
除记录f, g, h, pa