Apollo10.0学习——planning模块(9)之参数详解二
planning_component加参数文件planning_config.pb.txt
public_road_planner.cc加参数文件public_road_planner_config.pb.txt(内置各种场景)
scenarios加载每个场景的scenario_conf.pb.txt h和pipeline.pb.txtpipeline.pb.txt
参数
- bare_intersection_unprotected
- emergency_pull_over
- emergency_stop
- stop_sign_unprotected
- traffic_light_protected
- traffic_light_unprotected_left_turn
- traffic_light_unprotected_right_turn
- yield_sign
- park_and_go
- pull_over
- valet_parking
bare_intersection_unprotected
核心参数解析
参数 | 类型 | 默认值 | 单位 | 功能说明 |
---|---|---|---|---|
start_bare_intersection_scenario_distance | 浮点 | 25.0 | 米 | 场景触发距离 - 车辆距离无保护路口 25米 时启动该场景的决策与规划逻辑 - 该距离需确保车辆有足够时间进行路权判断和路径调整(如减速或停车观察) |
enable_explicit_stop | 布尔 | false | - | 显式停车开关 - false : 车辆通过动态博弈(如减速让行)代替完全停车- true : 强制在路口前完全停止(类似 STOP 标志策略) |
approach_cruise_speed | 浮点 | 6.7056 | m/s (≈15 mph) | 接近路口巡航速度 - 车辆在路口前 非紧急状态下的推荐行驶速度 - 该值约为 24 km/h,平衡安全性与通行效率 |
stop_distance | 浮点 | 0.5 | 米 | 停车缓冲距离 - 车辆停止线前的安全余量(防止车身越过停止线) |
参数联动逻辑
-
场景触发阶段
- 当车辆距离路口 25米 (
start_bare_intersection_scenario_distance
) 时:- 规划模块开始监控路口交通流(如对向车、行人)。
- 速度控制器将目标速度调整至 6.7056 m/s (
approach_cruise_speed
)。
- 当车辆距离路口 25米 (
-
冲突决策阶段
- 若检测到潜在冲突(如横向来车未减速):
enable_explicit_stop=false
时:触发渐进式减速(减速度不超过max_deceleration
)。enable_explicit_stop=true
时:立刻制动至停止线前 0.5米 (stop_distance
)。
- 若检测到潜在冲突(如横向来车未减速):
-
路权博弈阶段
- 无保护路口通常依赖 V2X 或视觉感知判断路权,若持续无法获得通行权:
- 车辆会在
stop_distance
处停车等待,直至超时或路权清晰。
- 车辆会在
- 无保护路口通常依赖 V2X 或视觉感知判断路权,若持续无法获得通行权:
调参建议
场景特征 | 参数调整方向 |
---|---|
高交通流量路口 | - ↑ start_bare_intersection_scenario_distance (延长决策时间)- ↓ approach_cruise_speed (降低接近速度) |
低能见度路口 | - ↑ stop_distance (增加安全余量)- ↓ approach_cruise_speed |
激进驾驶策略 | - ↑ approach_cruise_speed - ↓ start_bare_intersection_scenario_distance |
典型错误配置后果
start_bare_intersection_scenario_distance
过小(如 10米):
车辆可能因反应时间不足导致急刹或越过停止线。enable_explicit_stop=false
但未配置博弈策略:
车辆可能因动态博弈失败引发路口僵局。stop_distance=0
:
定位误差可能导致车轮压线,违反交通规则。
scenario_conf.pb.txt文件
start_bare_intersection_scenario_distance: 25.0enable_explicit_stop: falseapproach_cruise_speed: 6.7056 # 15 mphstop_distance: 0.5
# 场景触发距离 - 车辆距离无保护路口 25米 时启动该场景的决策与规划逻辑- 该距离需确保车辆有足够时间进行路权判断和路径调整(如减速或停车观察)
# 显式停车开关 - false: 车辆通过动态博弈(如减速让行)代替完全停车- true: 强制在路口前完全停止(类似 STOP 标志策略)
# 接近路口巡航速度 - 车辆在路口前 非紧急状态下的推荐行驶速度- 该值约为 24 km/h,平衡安全性与通行效率
# 停车缓冲距离 - 车辆停止线前的安全余量(防止车身越过停止线)
emergency_pull_over
一、 紧急制动参数
参数 | 类型 | 默认值 | 单位 | 功能说明 |
---|---|---|---|---|
max_stop_deceleration | 浮点 | 4.5 | m/s² | 最大制动减速度 - 紧急停车时的最大减速度限制(防止抱死或失控) - 参考值:普通轿车紧急制动约 -6~-8 m/s²,此处保守设置以兼顾舒适性 |
slow_down_deceleration_time | 浮点 | 3.0 | 秒 | 渐进减速时间 - 从当前速度到 target_slow_down_speed 的过渡时间(匀减速模型) |
target_slow_down_speed | 浮点 | 1.0 | m/s | 减速目标速度 - 靠边前的低速巡航速度(约 3.6 km/h),便于精确控制停车位置 |
stop_distance | 浮点 | 1.5 | 米 | 停车缓冲距离 - 车辆最终停车位置距目标点的预留空间(防止碰撞路肩或障碍物) |
二、 路径优化配置(pull_over_path.pb.txt)
2.1 路径平滑代价函数权重
path_optimizer_config {l_weight: 1.0 // 横向偏差权重(偏离参考线惩罚)dl_weight: 20.0 // 横向速度(一阶导数)权重ddl_weight: 1000.0 // 横向加速度(二阶导数)权重dddl_weight: 50000.0 // 横向加加速度(三阶导数,急动度)权重lateral_derivative_bound_default: 2.0 // 横向导数变化率约束(m/s³)
}
- 设计逻辑:
- 高阶导数权重(
ddl > dl > l
)确保路径平滑性优先于绝对位置精度。 - 急动度(dddl)高权重减少方向突变,提升乘坐舒适性。
- 高阶导数权重(
2.2 泊车区域约束
参数 | 类型 | 默认值 | 单位 | 说明 |
---|---|---|---|---|
pull_over_destination_to_adc_buffer | 浮点 | 25.0 | 米 | 触发距离 - 车辆距离目标点 25米 时启动泊车路径规划 |
pull_over_destination_to_pathend_buffer | 浮点 | 4.0 | 米 | 路径终点冗余 - 路径终点超出目标点的距离(确保完整停车动作) |
pull_over_road_edge_buffer | 浮点 | 0.15 | 米 | 路肩安全距离 - 停车时车轮与路缘的最小横向间距 |
2.3 动态调整因子
参数 | 类型 | 默认值 | 单位 | 功能说明 |
---|---|---|---|---|
pull_over_approach_lon_distance_adjust_factor | 浮点 | 1.6 | - | 纵向距离调节因子 - 动态调整变道切入距离(距离越短,因子越大) |
2.4 决策权重与策略
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
pull_over_weight | 整型 | 2000 | 场景优先级权重 - 值越高,规划器越倾向于选择泊车路径(相对于其他场景) |
pull_over_direction | 枚举 | BOTH_SIDE | 泊车方向 - 可选 LEFT_SIDE /RIGHT_SIDE /BOTH_SIDE ,允许双侧停车增加灵活性 |
pull_over_position | 枚举 | NEAREST_POSITION | 停车点选择策略 - NEAREST_POSITION :最近有效停车位- FIXED_POSITION :固定目标点(需高精地图标记) |
三、 参数协同逻辑
-
触发阶段
- 当车辆距离目标点 25米 (
pull_over_destination_to_adc_buffer
),启动紧急停车场景。
- 当车辆距离目标点 25米 (
-
减速阶段
- 以 4.5 m/s² 最大减速度,在 3秒 内将车速降至 1.0 m/s,确保平缓制动。
-
路径规划
- 路径平滑器通过高权重(
dddl_weight=50000
)抑制急动度,生成舒适轨迹。 - 确保停车后距离路肩 0.15米 (
pull_over_road_edge_buffer
),防止剐蹭。
- 路径平滑器通过高权重(
-
终止条件
- 车辆在目标点前 1.5米 (
stop_distance
) 完全停止,等待系统复位或人工接管。
- 车辆在目标点前 1.5米 (
四、 参数调优建议
场景需求 | 参数调整方向 |
---|---|
紧急程度高 | - ↑ max_stop_deceleration (需考虑轮胎抓地力极限)- ↓ slow_down_deceleration_time |
复杂道路环境 | - ↑ pull_over_road_edge_buffer (路肩不平整时)- ↓ pull_over_destination_to_adc_buffer (缩短反应距离) |
舒适性优先 | - ↓ dddl_weight (允许更柔和的方向变化)- ↑ slow_down_deceleration_time |
pull_over_path.pb.txt
path_optimizer_config {l_weight: 1.0 # 横向偏差权重(偏离参考线惩罚)dl_weight: 20.0 # 横向速度(一阶导数)权重ddl_weight: 1000.0 # 横向加速度(二阶导数)权重dddl_weight: 50000.0 # 横向加加速度(三阶导数,急动度)权重lateral_derivative_bound_default: 2.0 # 横向加加速度(三阶导数,急动度)权重
}
pull_over_destination_to_adc_buffer: 25.0 # 触发距离- 车辆距离目标点 25米 时启动泊车路径规划
pull_over_destination_to_pathend_buffer: 4.0 # 路径终点冗余- 路径终点超出目标点的距离(确保完整停车动作)
pull_over_road_edge_buffer: 0.15 # 路肩安全距离- 停车时车轮与路缘的最小横向间距
pull_over_approach_lon_distance_adjust_factor: 1.6 # 纵向距离调节因子- 动态调整变道切入距离(距离越短,因子越大)
pull_over_weight: 2000 # 场景优先级权重- 值越高,规划器越倾向于选择泊车路径(相对于其他场景)
pull_over_direction: BOTH_SIDE # 泊车方向- 可选 LEFT_SIDE/RIGHT_SIDE/BOTH_SIDE,允许双侧停车增加灵活性
pull_over_position: NEAREST_POSITION # 停车点选择策略- NEAREST_POSITION:最近有效停车位- FIXED_POSITION:固定目标点(需高精地图标记)
scenario_conf.pb.txt
max_stop_deceleration: 4.5slow_down_deceleration_time: 3.0target_slow_down_speed: 1.0stop_distance: 1.5# 最大制动减速度- 紧急停车时的最大减速度限制(防止抱死或失控)- 参考值:普通轿车紧急制动约 -6~-8 m/s²,此处保守设置以兼顾舒适性# 渐进减速时间- 从当前速度到 target_slow_down_speed 的过渡时间(匀减速模型)# 减速目标速度- 靠边前的低速巡航速度(约 3.6 km/h),便于精确控制停车位置# 停车缓冲距离- 车辆最终停车位置距目标点的预留空间(防止碰撞路肩或障碍物)
emergency_stop
max_stop_deceleration: 6.0 # 最大制动减速度- 紧急停车时的最大减速度限制(防止抱死或失控)- 参考值:普通轿车紧急制动约 -6~-8 m/s²stop_distance: 1.0 # 停车缓冲距离- 车辆最终停车位置距目标点的预留空间(防止碰撞路肩或障碍物)
stop_sign_unprotected
以下是 Apollo 中 stop_sign_unprotected(无保护停车标志)场景参数的详细解释,结合交通规则和 Apollo 场景策略设计逻辑整理:
核心参数解析
参数 | 类型 | 默认值 | 单位 | 功能说明 |
---|---|---|---|---|
start_stop_sign_scenario_distance | 浮点 | 4.0 | m | 场景触发距离 车辆距离停车线 4米 时激活该场景逻辑,启动停车决策流程 |
watch_vehicle_max_valid_stop_distance | 浮点 | 5.0 | m | 他车有效停车范围 监测他车是否在停车线 5米内完全停下,用于判断路权(超出此距离的他车停车视为无效) |
max_valid_stop_distance | 浮点 | 2.0 | m | 自车有效停车范围 自主车辆必须在停车线 2米内完全静止,否则触发二次停车修正 |
stop_duration_sec | 浮点 | 1.0 | s | 完全停车持续时间 车辆静止后需保持 1秒 以满足交通法规要求 |
stop_timeout_sec | 浮点 | 8.0 | s | 停车等待超时 自车完成有效停车后,若 8秒内未获得通行权,则尝试缓慢切入(Creep) |
creep_timeout_sec | 浮点 | 10.0 | s | 缓行超时时间 持续缓行 10秒仍无法通行,则重新完全停车并等待 |
缓行阶段参数(creep_stage_config)
参数 | 类型 | 默认值 | 单位 | 功能说明 |
---|---|---|---|---|
min_boundary_t | 浮点 | 6.0 | s | 缓行时间窗口 进入缓行模式后至少维持 6秒,确保充分观察路口动态 |
ignore_max_st_min_t | 浮点 | 0.1 | s | 瞬时障碍忽略阈值 持续时间短于 0.1秒的障碍物(如误检)将被忽略 |
ignore_min_st_min_s | 浮点 | 15.0 | m | 远距离障碍忽略阈值 距离自车 15米外的静止障碍 不参与缓行决策 |
参数联动逻辑
-
场景触发
- 当车辆距离停车线 4米 时,激活
stop_sign_unprotected
场景,开始检测他车状态。
- 当车辆距离停车线 4米 时,激活
-
停车验证
- 自车需在 2米内停止(
max_valid_stop_distance
),否则触发路径重规划。 - 他车若未在 5米内停稳(
watch_vehicle_max_valid_stop_distance
),则认为其未遵守停车规则,自车优先通行。
- 自车需在 2米内停止(
-
等待与超时
- 保持静止 1秒(
stop_duration_sec
)后,若路口安全则通行。 - 8秒无路权(
stop_timeout_sec
)则进入缓行模式,以低速(如 0.5m/s)试探性前进。
- 保持静止 1秒(
-
缓行阶段调控
- 至少维持 6秒缓行(
min_boundary_t
),期间忽略 0.1秒瞬时障碍 和 15米外静止障碍。 - 10秒缓行无果(
creep_timeout_sec
),则复位至完全停车状态。
- 至少维持 6秒缓行(
scenario_conf.pb.txt
start_stop_sign_scenario_distance: 4.0 # 场景触发距离 车辆距离停车线 4米 时激活该场景逻辑,启动停车决策流程
watch_vehicle_max_valid_stop_distance: 5.0 # 他车有效停车范围 监测他车是否在停车线 5米内完全停下,用于判断路权(超出此距离的他车停车视为无效)
max_valid_stop_distance: 2.0 # 自车有效停车范围 自主车辆必须在停车线 2米内完全静止,否则触发二次停车修正
stop_duration_sec: 1.0 # 完全停车持续时间 车辆静止后需保持 1秒 以满足交通法规要求
stop_timeout_sec: 8.0 # 停车等待超时 自车完成有效停车后,若 8秒内未获得通行权,则尝试缓慢切入(Creep)
creep_timeout_sec: 10.0 # 缓行超时时间 持续缓行 10秒仍无法通行,则重新完全停车并等待
creep_stage_config {min_boundary_t: 6.0 # 缓行时间窗口 进入缓行模式后至少维持 6秒,确保充分观察路口动态ignore_max_st_min_t: 0.1 # 瞬时障碍忽略阈值 持续时间短于 0.1秒的障碍物(如误检)将被忽略ignore_min_st_min_s: 15.0 # 远距离障碍忽略阈值 距离自车 15米外的静止障碍 不参与缓行决策
}
traffic_light_protected
start_traffic_light_scenario_distance: 5.0 # 场景触发距离 车辆距离红绿灯 5米 时激活该场景逻辑
max_valid_stop_distance: 2.0 # 有效停车距离 车辆必须在红灯停止线前 2米内完全静止,否则视为无效停车
traffic_light_unprotected_left_turn
以下是 Apollo 中 traffic_light_unprotected_left_turn(无保护红灯左转)场景参数的详细解释,结合交通规则与自动驾驶决策逻辑整理:
核心参数解析
参数 | 类型 | 默认值 | 单位 | 功能说明 |
---|---|---|---|---|
start_traffic_light_scenario_distance | 浮点 | 30.0 | 米 | 场景触发距离 车辆距离红绿灯 30米 时激活场景逻辑,开始左转决策。 (左转需更长预判距离,因需观察对向直行车流和行人) |
approach_cruise_speed | 浮点 | 2.78 | m/s(≈10 km/h) | 接近速度 车辆驶向路口时的目标巡航速度,平衡安全与效率。 (较低速度确保稳定切入对向车道间隙) |
max_valid_stop_distance | 浮点 | 2.0 | 米 | 有效停车距离 车辆必须在停止线前 2米内完全静止,否则触发路径重规划。 (与定位精度匹配,防止越线) |
creep_timeout_sec | 浮点 | 10.0 | 秒 | 缓行超时时间 持续缓行 10秒 无通行机会,则退回完全停车状态。 |
max_adc_speed_before_creep | 浮点 | 5.56 | m/s(≈20 km/h) | 缓行前最大车速 进入缓行模式前车速需 ≤ 5.56 m/s,防止高速状态下紧急避让。 |
缓行阶段参数(creep_stage_config)
参数 | 类型 | 默认值 | 单位 | 功能说明 |
---|---|---|---|---|
min_boundary_t | 浮点 | 6.0 | 秒 | 最小缓行时间窗口 进入缓行后维持至少 6秒 ,充分观察对向车流间隙。 (左转需更长时间判断对向车速和距离) |
ignore_max_st_min_t | 浮点 | 0.1 | 秒 | 瞬时障碍忽略阈值 持续时间 < 0.1秒 的障碍物(如传感器噪点)将被忽略。 |
ignore_min_st_min_s | 浮点 | 15.0 | 米 | 远距离障碍忽略阈值 距离自车 > 15米 的对向车辆不参与缓行决策。 (聚焦近距离冲突) |
参数联动逻辑
-
场景触发与减速接近
- 车辆距红绿灯 30米 时激活场景,速度降至 10 km/h。
- 若检测到红灯且无保护左转许可,开始停车决策。
-
停车与缓行切换
- 车辆需在 2米内完全静止 ,否则触发二次停车修正。
- 静止后若路口复杂(如对向车流密集),以 ≤20 km/h 车速缓行试探。
-
缓行阶段冲突处理
- 6秒内 持续监测对向车流间隙,忽略 0.1秒瞬时干扰(如飞鸟、落叶)。
- 10秒未完成左转 ,退回停车状态重新评估。
左转场景特殊性(对比右转)
维度 | 左转场景 | 右转场景 |
---|---|---|
触发距离 | 30米(需提前观察对向车流) | 5米(仅需关注横向行人) |
接近速度 | 10 km/h(复杂冲突点) | 15 mph(≈24 km/h) |
风险焦点 | 对向直行车辆、行人 | 横向行人、自行车 |
法规约束 | 部分地区禁止无保护左转 | 部分地区允许红灯右转 |
调参建议
场景特征 | 参数调整方向 |
---|---|
高密度对向车流 | - ↑ min_boundary_t=8.0 (延长观察时间)- ↓ max_adc_speed_before_creep=3.0 (更低缓行速度) |
低能见度路口 | - ↑ start_traffic_light_scenario_distance=40.0 (提前触发)- ↓ approach_cruise_speed=1.5 (更慢接近) |
激进通行策略 | - ↓ creep_timeout_sec=5.0 (更快重置)- ↑ ignore_min_st_min_s=20.0 (忽略更远障碍) |
典型问题与参数影响
- 触发距离过短(如 15米):可能导致车辆未充分减速,紧急制动引发乘客不适。
- 缓行速度过高(如 8 m/s):难以在复杂车流中安全插入空隙,增加碰撞风险。
- 瞬时干扰误判:
ignore_max_st_min_t=0.1
可过滤 90% 以上的雷达噪点干扰。
scenario_conf.pb.txt
start_traffic_light_scenario_distance: 30.0 # 场景触发距离 车辆距离红绿灯 5米 时激活该场景逻辑
approach_cruise_speed: 2.78 # 接近速度 车辆驶向路口时的目标巡航速度,平衡安全与效率。(较低速度确保稳定切入对向车道间隙)
max_valid_stop_distance: 2.0 # 有效停车距离 车辆必须在红灯停止线前 2米内完全静止,否则视为无效停车
creep_timeout_sec: 10.0 # 缓行试探超时时间持续缓行 10秒 仍无法通行,则退回完全停止状态
max_adc_speed_before_creep: 5.56 # 缓行前最大车速进入缓行模式前车辆速度需 ≤ 3.0 m/s(≈10.8 km/h)
creep_stage_config {min_boundary_t: 6.0 # 最小缓行时间窗口进入缓行后维持至少 6秒,确保充分观察横向交通流ignore_max_st_min_t: 0.1 # 瞬时障碍忽略阈值持续时间 < 0.1秒 的障碍物(如传感器噪点)将被忽略ignore_min_st_min_s: 15.0 # 远距离障碍忽略阈值距离自车 > 15米 的静止障碍物不参与缓行决策
}
traffic_light_unprotected_right_turn
无保护红灯右转
核心参数解析
参数 | 类型 | 默认值 | 单位 | 功能说明 |
---|---|---|---|---|
start_traffic_light_scenario_distance | 浮点 | 5.0 | 米 | 场景触发距离 车辆距离红绿灯 5米 时激活该场景逻辑,开始红灯右转决策流程 |
enable_right_turn_on_red | 布尔 | false | - | 红灯右转开关 false : 禁止红灯右转(必须等待绿灯)true : 允许红灯右转(需满足完全停止条件) |
max_valid_stop_distance | 浮点 | 2.0 | 米 | 有效停车距离 车辆必须在红灯停止线前 2米内完全静止,否则视为无效停车 |
min_pass_s_distance | 浮点 | 3.0 | 米 | 最小通行安全距离 右转时与横向行人/车辆的最小纵向安全间距(防止抢行) |
red_light_right_turn_stop_duration_sec | 浮点 | 3.0 | 秒 | 红灯右转停车持续时间 车辆需完全静止至少 3秒(满足法规要求) |
creep_timeout_sec | 浮点 | 10.0 | 秒 | 缓行试探超时时间 持续缓行 10秒 仍无法通行,则退回完全停止状态 |
max_adc_speed_before_creep | 浮点 | 3.0 | m/s | 缓行前最大车速 进入缓行模式前车辆速度需 ≤ 3.0 m/s(≈10.8 km/h) |
缓行阶段参数(creep_stage_config)
参数 | 类型 | 默认值 | 单位 | 功能说明 |
---|---|---|---|---|
min_boundary_t | 浮点 | 6.0 | 秒 | 最小缓行时间窗口 进入缓行后维持至少 6秒,确保充分观察横向交通流 |
ignore_max_st_min_t | 浮点 | 0.1 | 秒 | 瞬时障碍忽略阈值 持续时间 < 0.1秒 的障碍物(如传感器噪点)将被忽略 |
ignore_min_st_min_s | 浮点 | 15.0 | 米 | 远距离障碍忽略阈值 距离自车 > 15米 的静止障碍物不参与缓行决策 |
参数联动逻辑
-
场景触发与停车验证
- 车辆距离红绿灯 5米 时触发场景。
- 若
enable_right_turn_on_red=true
,车辆需在 2米内完全停止 并保持 3秒(满足法规)。
-
缓行阶段
- 停止后若路口安全(无横向冲突),以 ≤ 3.0 m/s 车速缓行。
- 缓行期间:
- 忽略 0.1秒内出现 的瞬时障碍,减少误刹。
- 忽略 15米外静止障碍,聚焦近距离风险。
-
冲突处理与超时
- 10秒缓行无进展:退回停车等待状态,重新评估路权。
- 持续6秒缓行:强制维持低速观察,避免频繁启停。
场景策略与法规映射
地区法规特性 | 参数调整建议 |
---|---|
允许红灯右转(如美国) | enable_right_turn_on_red=true + red_light_right_turn_stop_duration_sec=3.0 |
禁止红灯右转(如中国) | enable_right_turn_on_red=false (车辆需等待绿灯) |
复杂路口(行人密集) | ↑ min_pass_s_distance=4.0 (增大安全间距) |
调参注意事项
- 安全冗余设计:
max_valid_stop_distance=2.0
需配合定位精度(通常 ≤0.2米),避免停车越线。 - 传感器误差补偿:
ignore_max_st_min_t=0.1
过滤激光雷达/相机短时噪点。 - 效率优化:在低流量区域可 ↓
red_light_right_turn_stop_duration_sec=1.5
(需法规允许)。
scenario_conf.pb.txt
start_traffic_light_scenario_distance: 5.0 # 场景触发距离 车辆距离红绿灯 5米 时激活该场景逻辑,开始红灯右转决策流程
enable_right_turn_on_red: false # 红灯右转开关 false: 禁止红灯右转(必须等待绿灯)true: 允许红灯右转(需满足完全停止条件)
max_valid_stop_distance: 2.0 # 有效停车距离 车辆必须在红灯停止线前 2米内完全静止,否则视为无效停车
min_pass_s_distance: 3.0 # 最小通行安全距离 右转时与横向行人/车辆的最小纵向安全间距(防止抢行)
red_light_right_turn_stop_duration_sec: 3.0 # 红灯右转停车持续时间 车辆需完全静止至少 3秒(满足法规要求)
creep_timeout_sec: 10.0 # 缓行试探超时时间 持续缓行 10秒 仍无法通行,则退回完全停止状态
max_adc_speed_before_creep: 3.0 # 缓行前最大车速 进入缓行模式前车辆速度需 ≤ 3.0 m/s(≈10.8 km/h)
creep_stage_config { min_boundary_t: 6.0 #最小缓行时间窗口 进入缓行后维持至少 6秒,确保充分观察横向交通流ignore_max_st_min_t: 0.1 # 瞬时障碍忽略阈值 持续时间 < 0.1秒 的障碍物(如传感器噪点)将被忽略ignore_min_st_min_s: 15.0 #远距离障碍忽略阈值 距离自车 > 15米 的静止障碍物不参与缓行决策
}
yield_sign
start_yield_sign_scenario_distance: 10.0 # # 场景触发距离 车辆距离红绿灯 10米 时激活该场景逻辑max_valid_stop_distance: 4.5 # 有效停车距离 4.5米内完全静止,否则视为无效停车creep_timeout_sec: 10.0 # # 缓行试探超时时间 持续缓行 10秒 仍无法通行,则退回完全停止状态creep_stage_config {min_boundary_t: 6.0 # 最小缓行时间窗口 进入缓行后维持至少 6秒,确保充分观察横向交通流ignore_max_st_min_t: 0.1 # 瞬时障碍忽略阈值 持续时间 < 0.1秒 的障碍物(如传感器噪点)将被忽略ignore_min_st_min_s: 15.0 # 远距离障碍忽略阈值 距离自车 > 15米 的静止障碍物不参与缓行决策
}
park_and_go
scenario_conf.pb
front_obstacle_buffer: 10.0 # 前方障碍物安全距离 - 车辆启动或行驶时,若前方 10米内存在障碍物,则暂停前进并等待。- 作用机理:融合激光雷达/相机检测结果,触发安全制动。heading_buffer: 0.3 # 航向角容差范围 - 车辆实际航向与规划路径的 最大允许偏差,超过此值触发航向修正。- 应用场景:驶离停车位时校准方向,防止斜向切入车道。min_dist_to_dest: 10.0 # 终点接近阈值 - 距离目标点 10米内 时,进入减速准备阶段,并校验停车条件(如车位空间)。max_steering_percentage_when_cruise: 20.0 # 巡航转向限制 - 巡航状态下方向盘最大转向角百分比(基于车辆最大转向能力)。- 示例:若车辆最大转向角为 500°,则 20% 对应 100°,限制急转弯以确保稳定性。
park_and_go_adjust/open_space_roi_decider.pb
roi_type: PARK_AND_GO
roi_line_segment_min_angle: 0.15
roi_line_segment_length: 0.2
perception_obstacle_buffer: 0.5
end_pose_s_distance: 10.0
roi_longitudinal_range_start : 10.0
roi_longitudinal_range_end : 20.0# ROI 类型标识,指定当前场景为停车后启动模式,触发对应的感知与规划策略
# 线段最小夹角,合并相邻线段时允许的最小角度差,小于此值则视为连续线段(过滤道路微小弯曲)
# 线段生成长度,将 ROI 边界离散化为 0.2 米长的线段,用于路径搜索与碰撞检测
# ROI 纵向起点,自车后方 10 米处开始定义 ROI(覆盖起步所需空间)
# ROI 纵向终点,自车前方 20 米处结束 ROI(聚焦起步后的行驶区域)
# 障碍物安全缓冲距离,ROI 内障碍物若进入此距离则触发紧急制动
# 目标点纵向距离,路径坐标系中车辆需行驶至自车当前位置前方 10 米处完成起步动作
park_and_go_check/open_space_roi_decider.pb
roi_type: PARK_AND_GO
perception_obstacle_buffer: 0.0# 场景标识,定义当前为“停车后启动”模式,触发对应的 ROI 范围和规划策略
# 动态障碍物缓冲距离 - 动态障碍物周围不添加额外安全距离(激进策略,依赖实时避障算法)- 适用场景:低动态障碍密度的停车场环境
park_and_go_cruise/path_decider.pb
static_obstacle_buffer: 0.2# 静态障碍物缓冲距离 - 静态障碍物周围保留 0.2 米安全间隙(防止刮擦)- 与车辆尺寸(vehicle_param)联动,确保几何包络安全
park_and_go_pre_cruise/open_space_roi_decider.pb
roi_type: PARK_AND_GO
perception_obstacle_buffer: 0.5
end_pose_s_distance: 5.0# end_pose_s_distance 终点纵向距离 - 启动后规划路径的目标点距初始位置 5 米(确保车辆完全脱离停车位进入车道)
modules/planning/scenarios/park_and_go/conf/park_and_go_pre_cruise/open_space_trajectory_provider.pb.txt
open_space_trajectory_optimizer_config {planner_open_space_config {iterative_anchoring_smoother_config {fem_pos_deviation_smoother_config {use_sqp: true # 启用序列二次规划(SQP) 求解器,提升轨迹平滑性(相比梯度下降法更精确)}s_curve_config {acc_weight: 1.0 # 1.0 加速度权重,抑制急加速/急减速(值越高,加速度变化越平缓)jerk_weight: 1.0 # 加加速度(急动度)权重,优化乘坐舒适性(值越高,加速度变化率越小)kappa_penalty_weight: 100.0 # 曲率惩罚权重,限制转向幅度(防止方向盘大幅摆动)ref_s_weight: 100.0 # 路径跟踪权重,确保轨迹紧密贴合参考线(值越高,偏离参考线的成本越大)ref_v_weight: 0.0 # 速度跟踪权重,设为 0 表示不强制匹配参考速度(允许动态调速)}}}
}
pull_over
start_pull_over_scenario_distance: 50.0 # 当车辆距离目标停车点还有50米时,系统开始准备进入靠边停车场景
pull_over_min_distance_buffer: 10.0 # 在寻找合适停车位置时,会保持至少10米的缓冲距离,确保安全余量
max_distance_stop_search: 25.0 # 系统会在目标点前后25米的范围内搜索合适的停车位置
max_s_error_to_end_point: 0.5 # 在纵向(沿着道路方向)上,车辆最终停靠位置与目标点的最大允许偏差为0.5米
max_l_error_to_end_point: 1.0 # 在横向(垂直于道路方向)上,车辆最终停靠位置与目标点的最大允许偏差为1米
max_theta_error_to_end_point: 0.2 # 车辆最终朝向与预期朝向的最大角度偏差为0.2弧度(约11.46度)
pass_destination_threshold: 15.0 # 如果车辆超过了目的地15米以上,可能需要重新规划路径或采取其他措施
max_distance_error_to_end_point: 0.2 # 车辆最终停靠位置与目标点的最大综合空间距离偏差为0.2米
pull_over_path.pb.txt
path_optimizer_config {l_weight: 1.0 # 横向位置(lateral position)的权重系数,用于平衡路径优化中横向位置的优先级dl_weight: 20.0 # 横向速度(lateral velocity)的权重系数,影响路径平滑度ddl_weight: 1000.0 # 横向加速度(lateral acceleration)的权重系数,值较大表示更注重乘坐舒适性dddl_weight: 50000.0 # 横向加加速度(lateral jerk)的权重系数,值很大表示非常注重运动平顺性lateral_derivative_bound_default: 2.0 # 默认的横向导数边界限制
}
pull_over_destination_to_adc_buffer: 25.0 # 车辆(ADC)与目的地之间的最小缓冲距离(米)
pull_over_destination_to_pathend_buffer: 4.0 # 路径终点与目的地之间的缓冲距离(米)
pull_over_road_edge_buffer: 0.15 # 车辆与道路边缘的最小安全距离(米)
pull_over_approach_lon_distance_adjust_factor: 1.6 #接近距离调整因子,用于调整纵向距离计算
pull_over_weight: 10 # 靠边停车行为的权重,影响决策时对此行为的偏好程度
pull_over_direction: RIGHT_SIDE # 指定靠边停车的方向为右侧(可能在右行交通国家使用)
pull_over_position: DESTINATION # 指定停车位置类型为"目的地"(可能是相对于其他参考点而言)
open_space_pre_stop_decider.pb.txt
stop_type: PULL_OVER
rightaway_stop_distance: 1.0 # 立即停止的距离阈值(单位通常是米) 如果距离目标停车点小于等于1.0米,系统会立即执行停止动作
open_space_roi_decider.pb.txt
roi_type: PULL_OVER
perception_obstacle_buffer: 0.5 # 感知障碍物的缓冲距离 值0.5可能表示0.5米(单位取决于系统设计)
open_space_trajectory_partition.pb.txt
heading_offset_to_midpoint: 0.79 # 车辆朝向(航向角)与中点之间的最大允许偏移量
lateral_offset_to_midpoint: 0.5 # 横向(左右方向)到中点的偏移量
longitudinal_offset_to_midpoint: 0.2 # 纵向(前后方向)到中点的偏移量
vehicle_box_iou_threshold_to_midpoint: 0.8 # 检测框与预期中点位置的重叠度阈值
linear_velocity_threshold_on_ego: 0.2 # 判断车辆是否处于静止状态(低于此值认为静止)
valet_parking
车辆控制与轨迹规划参数
-
换挡控制参数
gear_shift_max_t: 3.0
换挡最大时间阈值:允许车辆执行换挡操作(前进/倒车切换)的最大持续时间,超时则触发异常处理。gear_shift_unit_t: 0.02
换挡时间粒度:换挡动作的时间分辨率,控制换挡指令的发送频率(例如每 0.02 秒检测一次换挡状态)。gear_shift_period_duration: 2.0
换挡周期时长:两次换挡操作之间的最小时间间隔,防止频繁切换导致机械损耗。use_gear_shift_trajectory: true
启用换挡轨迹:在路径规划中考虑换挡动作,生成包含前进/倒车切换的轨迹。
-
轨迹插值与搜索参数
interpolated_pieces_num: 10
插值段数量:将优化生成的轨迹分割为 10 段进行插值,提升控制模块的跟踪精度。distance_search_range: 2.0
局部搜索范围:在车辆周围 2 米内进行实时路径搜索,适应狭窄停车环境。initial_gear_check_horizon: 15
初始档位检查距离:车辆启动时,检查前方 15 米内的障碍物以确定初始档位(前进/倒车)。
-
目标点匹配参数
heading_offset_to_midpoint: 1.4
航向偏移量:车辆到达停车位中点时允许的航向角偏差(约 80 度),适应斜向泊入。lateral_offset_to_midpoint: 0.5
横向偏移:停车位中点的横向容错距离,确保车辆居中对齐。vehicle_box_iou_threshold_to_midpoint: 0.5
包围盒交并比阈值:车辆与目标点包围盒重叠度需 ≥ 50% 才视为有效停靠。
-
运动状态判定
linear_velocity_threshold_on_ego: 0.1
静止判定速度:车辆线速度 ≤ 0.1 m/s 时判定为静止,用于泊车完成检测。
开放空间轨迹优化器配置
-
热启动配置(Warm Start)
- 网格搜索参数
xy_grid_resolution: 0.3
XY 网格分辨率:路径搜索时环境离散化的网格大小(0.3 米),影响搜索精度与效率。phi_grid_resolution: 0.1
航向角分辨率:车辆朝向的离散化间隔(约 5.7 度),用于生成多姿态候选路径。
- 轨迹惩罚项
traj_gear_switch_penalty: 3.0
换挡惩罚权重:优化目标中抑制频繁换挡的成本项权重,值越高换挡越少。traj_steer_penalty: 3.0
转向角惩罚:减少方向盘转动幅度,提升舒适性。
- 网格搜索参数
-
对偶变量热启动(Dual Variable Warm Start)
weight_d: 1.0
对偶变量权重:松弛约束的惩罚系数,平衡约束满足与优化目标。- Ipopt 求解器配置
ipopt_max_iter: 100
最大迭代次数:限制求解时间,防止优化过程过长。ipopt_tol: 1e-05
收敛容忍度:目标函数变化小于此值时终止迭代。
-
距离逼近优化(Distance Approach)
- 运动学权重
weight_steer: 0.3
转向权重:降低方向盘变化速率,平滑转向动作。weight_a: 1.1
加速度权重:抑制急加速/急减速,提升舒适性。
- 安全约束
min_safety_distance: 0.01
最小安全距离:轨迹与障碍物间至少保持 0.01 米的间隙,防止碰撞。
- 速度限制
max_speed_forward: 2.0
最大前进速度:泊车阶段车速 ≤ 2.0 m/s(≈7.2 km/h)。
- 运动学权重
-
迭代锚点平滑(Iterative Anchoring Smoother)
reanchoring_trails_num: 50
重锚定尝试次数:在局部调整轨迹锚点时最大迭代次数,避免陷入局部最优。curvature_constraint: 0.18
曲率约束:限制轨迹的最大曲率,确保转向机构可执行(对应最小转弯半径约 5.56 米)。
参数协同与场景应用
-
换挡与轨迹协同
当use_gear_shift_trajectory=true
时,优化器在生成轨迹时会预留换挡时间(gear_shift_max_t
),并避免短周期内的频繁切换(gear_shift_period_duration
)。 -
安全与效率平衡
distance_approach_config
中的权重(如weight_steer
)与warm_start_config
的网格分辨率共同作用:高分辨率网格提升路径质量,但增加计算量;权重调整则优化舒适性。 -
实时性保障
open_space_planning_period: 0.1
设定规划周期为 100ms,确保控制模块的实时响应,同时ipopt_max_iter: 100
限制单次求解时间。
调参建议
场景需求 | 参数调整 |
---|---|
狭窄停车位 | ↓ xy_grid_resolution=0.2 (提升精度)↑ min_safety_distance=0.1 (增加安全余量) |
复杂障碍物 | ↑ traj_steer_penalty=5.0 (减少转向抖动)↓ max_speed_forward=1.5 (降速观察) |
舒适性优先 | ↑ weight_a=2.0 (抑制加速度)↑ traj_steer_change_penalty=2.0 (平滑转向) |
通过合理配置上述参数,Valet Parking 场景可在确保安全的前提下,实现高效、舒适的自动泊车体验。
scenario_conf.pb.txt
parking_spot_range_to_start: 20.0 # 场景触发距离车辆距离无保护路口 25米 时启动该场景的决策与规划逻辑
max_valid_stop_distance: 1.0 # 有效停车距离1.0米内完全静止,否则视为无效停车
open_space_pre_stop_decider.pb.txt
stop_type: PARKING
open_space_roi_decider.pb.txt
roi_type: PARKING
open_space_trajectory_partition.pb.txt
gear_shift_max_t: 3.0 # 换挡最大时间阈值:允许车辆执行换挡操作(前进/倒车切换)的最大持续时间,超时则触发异常处理。
gear_shift_unit_t: 0.02 # 换挡时间粒度:换挡动作的时间分辨率,控制换挡指令的发送频率(例如每 0.02 秒检测一次换挡状态)。
gear_shift_period_duration: 2.0 # 换挡周期时长:两次换挡操作之间的最小时间间隔,防止频繁切换导致机械损耗。
interpolated_pieces_num: 10 # 插值段数量:将优化生成的轨迹分割为 10 段进行插值,提升控制模块的跟踪精度。
initial_gear_check_horizon: 15 # 初始档位检查距离:车辆启动时,检查前方 15 米内的障碍物以确定初始档
heading_search_range: 0.79
heading_track_range: 1.57
distance_search_range: 2.0 # 局部搜索范围:在车辆周围 2 米内进行实时路径搜索,适应狭窄停车环境。
heading_offset_to_midpoint: 1.4 # 航向偏移量:车辆到达停车位中点时允许的航向角偏差(约 80 度),适应斜向泊入。
lateral_offset_to_midpoint: 0.5 # 横向偏移:停车位中点的横向容错距离,确保车辆居中对齐。
longitudinal_offset_to_midpoint: 0.5
vehicle_box_iou_threshold_to_midpoint:0.5 # 围盒交并比阈值:车辆与目标点包围盒重叠度需 ≥ 50% 才视为有效停靠。
linear_velocity_threshold_on_ego: 0.1 # 静止判定速度:车辆线速度 ≤ 0.1 m/s 时判定为静止,用于泊车完成检测。
use_gear_shift_trajectory: true # 启用换挡轨迹:在路径规划中考虑换挡动作,生成包含前进/倒车切换的轨迹。
open_space_trajectory_provider.pb.txt
open_space_trajectory_optimizer_config { # 开放空间轨迹优化器配置planner_open_space_config { # 热启动配置(Warm Start)warm_start_config { xy_grid_resolution: 0.3 # XY 网格分辨率:路径搜索时环境离散化的网格大小(0.3 米),影响搜索精度与效率。phi_grid_resolution: 0.1 # 航向角分辨率:车辆朝向的离散化间隔(约 5.7 度),用于生成多姿态候选路径。traj_kappa_contraint_ratio: 0.8 next_node_num: 16step_size: 0.1traj_forward_penalty: 1.0traj_back_penalty: 1.0traj_gear_switch_penalty: 3.0 #换挡惩罚权重:优化目标中抑制频繁换挡的成本项权重,值越高换挡越少。max_explored_num:10000traj_short_length_penalty:20traj_expected_shortest_length:2.0traj_steer_penalty: 3.0 # 转向角惩罚:减少方向盘转动幅度,提升舒适性。traj_steer_change_penalty: 1.0grid_a_star_xy_resolution: 0.25node_radius: 0.2astar_max_search_time: 20desired_explored_num: 1000}dual_variable_warm_start_config { # 对偶变量热启动(Dual Variable Warm Start)weight_d: 1.0 # 对偶变量权重:松弛约束的惩罚系数,平衡约束满足与优化目标。ipopt_config {ipopt_print_level: 0mumps_mem_percent: 6000mumps_pivtol: 1e-06ipopt_max_iter: 100 # 最大迭代次数:限制求解时间,防止优化过程过长。ipopt_tol: 1e-05ipopt_acceptable_constr_viol_tol: 0.1ipopt_min_hessian_perturbation: 1e-12ipopt_jacobian_regularization_value: 1e-07ipopt_print_timing_statistics: "yes"ipopt_alpha_for_y: "min"ipopt_recalc_y: "yes"}qp_format: OSQPmin_safety_distance: 0.01 #最小安全距离:轨迹与障碍物间至少保持 0.01 米的间隙,防止碰撞。osqp_config {alpha: 1.0eps_abs: 1.0e-3eps_rel: 1.0e-3max_iter: 10000polish: trueosqp_debug_log: false}}distance_approach_config { # 距离逼近优化(Distance Approach)weight_steer: 0.3weight_a: 1.1 # 加速度权重:抑制急加速/急减速,提升舒适性。weight_steer_rate: 3.0weight_a_rate: 2.5weight_x: 2.3weight_y: 0.7weight_phi: 1.5weight_v: 0.0weight_steer_stitching: 1.75weight_a_stitching: 3.25weight_first_order_time: 4.25weight_second_order_time: 13.5weight_end_state: 1.0weight_slack: 1.0min_safety_distance: 0.01max_speed_forward: 2.0 # 最大前进速度:泊车阶段车速 ≤ 2.0 m/s(≈7.2 km/h)。max_speed_reverse: 1.0max_acceleration_forward: 2.0max_acceleration_reverse: 1.0min_time_sample_scaling: 0.8max_time_sample_scaling: 1.2use_fix_time: falseipopt_config {ipopt_print_level: 0mumps_mem_percent: 6000mumps_pivtol: 1e-06ipopt_max_iter: 1000ipopt_tol: 0.0001ipopt_acceptable_constr_viol_tol: 0.1ipopt_min_hessian_perturbation: 1e-12ipopt_jacobian_regularization_value: 1e-07ipopt_print_timing_statistics: "yes"ipopt_alpha_for_y: "min"ipopt_recalc_y: "yes"ipopt_mu_init: 0.1}enable_constraint_check: falseenable_initial_final_check: falseenable_jacobian_ad: falseenable_hand_derivative: falseenable_derivative_check: falsedistance_approach_mode: DISTANCE_APPROACH_IPOPT_RELAX_END_SLACKenable_check_initial_state: false}iterative_anchoring_smoother_config { # 迭代锚点平滑(Iterative Anchoring Smoother)interpolated_delta_s: 0.1reanchoring_trails_num: 50 # 重锚定尝试次数:在局部调整轨迹锚点时最大迭代次数,避免陷入局部最优。reanchoring_pos_stddev: 0.25reanchoring_length_stddev: 1.0estimate_bound: falsedefault_bound: 2.0vehicle_shortest_dimension: 1.04fem_pos_deviation_smoother_config {use_sqp: trueweight_fem_pos_deviation: 1e7weight_path_length: 0.0weight_ref_deviation: 1e3apply_curvature_constraint: trueweight_curvature_constraint_slack_var: 1e8curvature_constraint: 0.18 # 曲率约束:限制轨迹的最大曲率,确保转向机构可执行(对应最小转弯半径约 5.56 米)。max_iter: 500time_limit: 0.0verbose: falsescaled_termination: truewarm_start: true}s_curve_config {acc_weight: 1.0jerk_weight: 1.0kappa_penalty_weight: 100.0ref_s_weight: 10.0ref_v_weight: 0.0}collision_decrease_ratio: 0.0max_forward_v: 1.0max_reverse_v: 1.0max_forward_acc: 0.5max_reverse_acc: 0.3max_acc_jerk: 0.5delta_t: 0.2}delta_t: 0.5near_destination_threshold: 0.15enable_linear_interpolation: falseis_near_destination_theta_threshold: 0.1}
}
open_space_planning_period: 0.1
open_space_trajectory_stitching_preserved_length: inf
open_space_standstill_acceleration: 0.3