决策规划算法二:生成参考线(FEM_POS_DEVIATION_SMOOTHING)

本文详细阐述了Apollo规划算法中如何通过FEM_POS_DEVIATION_SMOOTHING方法改进道路中心线平滑性,以减少车辆晃动。方法涉及生成符合要求的参考线,通过二次规划调整路径,确保平滑性、均匀性和与原路径的适配。关键步骤包括计算平滑成本、设置QP求解器,以及实例演示优化过程。

  Apollo的的规划算法基于Frenet坐标系,因此道路中心线的平滑性控制着车辆是否左右频繁晃动,而高精地图的道路中心线往往不够平滑。

离散点平滑法,包括

1,FEM_POS_DEVIATION_SMOOTHING有限元位置差异

2,COS_THETA_SMOOTHING余弦)

3,QpSplineReferenceLineSmoother(三次样条插值法)

4,SpiralReferenceLineSmoother(螺旋曲线法)

本文只讲解FEM_POS_DEVIATION_SMOOTHING有限元位置差异的方法。

一,为什么需要重新生成参考线

导航路径存在的问题:1,导航路径过长;2,不平滑

导致的结果:

1,不利于主车以及障碍物寻找投影点,甚至出现多个投影点。

2,原本的导航路径不平滑,车辆无法直接进行轨迹跟踪。

解决方案:根据导航路径,生成参考线。

二,生成参考线的具体步骤与方法

1,找到匹配点以及投影点

2,以匹配点或者投影点为原点,往后取30个点,往前取150个点。对这180个点进行平滑处理,生成符合要求的参考线,作为该规划周期内的参考线,并以此参考线为Frenet坐标系。

三,参考线平滑方法:QP

方法步骤:

1,设计Cost:平滑程度,与原路径的偏离程度,路径点距离分布的均匀程度。

2,整理Cost目标函数,使其符合QP的表达形式。

minJ=\frac{1}{2}x^{T}Qx+f^{T}x

3,考虑约束条件,并整理为QP的约束表达式形式。

sb: Ax<= b

4,运用合适的QP求解器进行求解,获取优化后的结果。

四,设计Cost:平滑程度,与原路径的偏离程度,路径点距离分布的均匀程度(长度代价)

1,平滑程度

衡量指标\left | P_{1}P_{3} \right |。其值越小, 路径越平滑。

2,与原路径的偏离程度

 如上图所示,平滑前的点记为P_{1r},P_{2r},P_{3r},平滑后的点记为P_{1},P_{2},P_{3}

虽然路径平滑了,但与原路径距离偏差太大,不符合要求。

衡量指标:\left | P_{1} P_{1r} \right |+\left | P_{2} P_{2r} \right |+\left | P_{3} P_{3r} \right |

3,路径点距离分布的均匀程度(长度代价)

衡量指标\left | P_{1} P_{2} \right |^{2}+\left | P_{2} P_{3} \right |^{2}。其值越小,分布越均匀。

五,实例讲解

1,以3个点为例求解目标函数

在设备位置偏差相关的函数或方法中,`set_weight_fem_pos_deviation` 这一函数或方法通常用于调整参考线平滑处理过程中对位置偏差的权重设置。该函数或方法的主要作用是通过调节权重参数,优化参考线的平滑程度,以确保生成参考线更加贴近实际设备位置,同时满足运动规划的约束条件[^1]。 在参考线平滑处理中,QP(Quadratic Programming)方法被用于优化参考线的形状,使其在几何上更加平滑,并符合车辆或设备的运动学约束。`set_weight_fem_pos_deviation` 通常用于定义目标函数中的权重矩阵,其中设备位置偏差项的权重直接影响参考线对原始路径的贴合程度。该权重越高,参考线越接近原始路径点,反之则更注重平滑性[^1]。 以下是一个简化的伪代码示例,展示了如何在QP优化框架中使用 `set_weight_fem_pos_deviation`: ```python # 初始化QP优化器 qp_optimizer = QPSmoother() # 设置参考线平滑的权重,其中设备位置偏差的权重通过 set_weight_fem_pos_deviation 设置 qp_optimizer.set_weight_fem_pos_deviation(weight=0.8) # 定义QP问题中的目标函数和约束条件 qp_optimizer.define_objective_function() qp_optimizer.add_constraints() # 执行优化过程,生成平滑参考线 smoothed_reference_line = qp_optimizer.optimize() ``` 在实际应用中,`set_weight_fem_pos_deviation` 的实现可能涉及矩阵操作和QP求解器的接口调用,具体形式依赖于所使用的软件框架或库。通常,它会与路径点的几何信息、参考线的曲率约束以及设备的运动学模型相结合,以生成满足实际需求的参考线。 此外,与设备位置偏差相关的函数或方法还包括: - `calculate_position_deviation`:用于计算设备当前位置与参考线之间的偏差。 - `update_reference_line`:基于最新的设备位置信息更新参考线。 - `is_position_deviation_within_threshold`:判断设备位置偏差是否在可接受范围内,以决定是否重新生成参考线。 这些函数或方法通常协同工作,确保设备在路径跟踪过程中保持良好的定位精度和平滑性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值