Lattice Planner规划算法权重

apollo/modules/planning/planning_base/gflags
/planning_gflags.cc

// Lattice Evaluate Parameters
DEFINE_double(weight_lon_objective, 10.0, "Weight of longitudinal travel cost");
DEFINE_double(weight_lon_jerk, 1.0, "Weight of longitudinal jerk cost");
DEFINE_double(weight_lon_collision, 5.0,
              "Weight of longitudinal collision cost");
DEFINE_double(weight_lat_offset, 2.0, "Weight of lateral offset cost");
DEFINE_double(weight_lat_comfort, 10.0, "Weight of lateral comfort cost");
DEFINE_double(weight_centripetal_acceleration, 1.5,
              "Weight of centripetal acceleration");
DEFINE_double(cost_non_priority_reference_line, 5.0,
              "The cost of planning on non-priority reference line.");
DEFINE_double(weight_same_side_
在自动驾驶中,Lattice Planner算法中的碰撞检测代价函数设计是轨迹规划的关键部分。其核心目标是通过量化潜在轨迹与障碍物之间的冲突风险,为轨迹选择提供评分依据。代价函数的设计需结合车辆运动学约束、环境感知信息以及轨迹的动态特性,确保生成的轨迹安全、平滑且符合车辆动力学要求。 ### 碰撞检测代价函数的基本设计原理 碰撞检测代价函数通常基于以下几类信息进行构建: 1. **障碍物距离** 通过计算轨迹上各点与最近障碍物之间的距离,评估潜在的碰撞风险。距离越近,代价越高。这种设计可以有效避免轨迹穿过障碍物密集区域。例如,在Frenet坐标系下,横向位移(d轴)和纵向位移(s轴)的轨迹点可以映射回世界坐标系,与感知系统提供的障碍物边界框(bounding box)进行距离计算[^2]。 ```python def compute_collision_cost(trajectory, obstacles): cost = 0.0 for point in trajectory: min_distance = float('inf') for obs in obstacles: dist = distance(point, obs) if dist < min_distance: min_distance = dist cost += 1.0 / (min_distance + 1e-5) # 避免除零,距离越小代价越高 return cost ``` 2. **时间维度上的风险评估** 轨迹的时间参数(t轴)在碰撞检测中同样重要。例如,轨迹上某一点若在障碍物未来可能占据的区域中,则即使当前时刻无碰撞,也应赋予较高的代价。这种时间维度上的预测通常结合障碍物的运动状态(如速度、加速度)进行风险评估[^2]。 3. **轨迹曲率和车辆动力学约束** 除了与障碍物的距离,轨迹的曲率也是代价函数的重要组成部分。高曲率区域可能导致车辆失控或乘客不适,因此代价函数中通常会加入对轨迹曲率的惩罚项。这可以表示为轨迹上各点的曲率平方和: ```python def compute_curvature_cost(trajectory): curvature = compute_trajectory_curvature(trajectory) return sum([k ** 2 for k in curvature]) ``` 4. **轨迹长度与平滑性** 轨迹长度和变化率(如加速度、 jerk)也会影响代价函数。较短且平滑的轨迹通常更优,因此代价函数中常加入对轨迹长度和变化率的惩罚项,以提高轨迹的可执行性和舒适性。 ### 多目标优化与加权策略 Lattice Planner中的代价函数通常是多个子代价函数的加权和。例如: $$ C_{total} = w_1 C_{collision} + w_2 C_{curvature} + w_3 C_{length} + w_4 C_{jerk} $$ 其中,权重系数 $w_1, w_2, w_3, w_4$ 根据实际场景和系统需求进行调整。例如,在高速场景中,轨迹长度和平滑性可能更重要;而在复杂障碍物环境中,碰撞代价的权重应更高。 ### 与其他规划算法的对比 与混合A*等全局规划算法相比,Lattice Planner更注重局部轨迹的动态可行性和安全性。其代价函数设计更偏向于基于采样的轨迹评估,而非路径搜索。此外,Lattice Planner的代价函数通常直接与控制器输出对接,因此必须满足车辆动力学约束,确保轨迹可跟踪。 ### 工程实现中的注意事项 - **采样密度与计算效率**:代价函数的计算需要在轨迹采样点上进行,因此采样密度直接影响计算复杂度。为提高效率,可以采用稀疏采样结合插值方法。 - **障碍物建模精度**:障碍物通常建模为边界框(bounding box)或凸包(convex hull),模型的精度直接影响碰撞检测的准确性。 - **多传感器融合**:感知系统提供的障碍物信息可能来自激光雷达、摄像头或雷达,不同传感器的精度和更新频率需在代价函数中加以考虑。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值