Commit
f2465adad2f30214486ed6c3cc446b6e77660e9f
by haoxiangtaofix:内存问题修复测试
|
 | data/map/envelop/map_envelops.cpp |
Commit
8d8fc8fe71f58f96d192b653849d57121839fec6
by haoxiangtaofix:内存问题修复测试
|
 | data/map/envelop/map_envelops.cpp |
Commit
21a0e06624f66dc6703d77bd676c5703caf4fc77
by tangwenqingfeat: SSEP: 调整集卡多段倒车拉直逻辑
|
 | ssep/scenarios/tractor_trailer_multi_segment_parking_planner.h |
Commit
4d3241f90aeda494cce7064f1ee3afdfa6991103
by tangwenqingfix: Keb: 调整避障参数,解决距离障碍物距离太近的问题
|
 | tasks/plan/keb_lane_follow_path_task.cpp |
 | offboard/keb_path_opt_cli/keb_scene_converter.cc |
Commit
705d55953bfa28c60e7c32205a25fce0642c4088
by tangwenqingfix: SSEP: remove strcat
|
 | ssep/scenarios/tractor_trailer_multi_segment_parking_planner.h |
Commit
4b940c29b51dd847bea5729ac85f01c9b5837b2d
by chenranfix: destination distance exception
|
 | data/map/pnc_map/routing_extension/routing_data.cpp |
Commit
c87ab5c742c1ab47bbb67327191b68d32269ec0e
by wuyanjun110block: 过滤本车自己上报的堆高机作业区(stackerWork_*_本车ID)
|
 | data/obstacle/block.cpp |
Commit
72cb8313bcdb67e98625e34abb90fc48dac09efb
by wuyanjun110block: 过滤本车自己上报的堆高机作业区(stackerWork_*_本车ID)
|
 | data/obstacle/block.cpp |
Commit
2c663fc2e3eb7ba04d86a73d6c074e7ef2fd6b61
by wuyanjun110ssep: 进场景计划区域合并起点框时校验面积, 防止区域轮廓被 sanitize 丢弃后只剩起点框
|
 | data/ssep/into_yard_junction_ec.cpp |
Commit
a156a6dbb9763d6fb15daf0e957a4dce81d11ac2
by wuyanjun110boundary: 路口边界改用多边形 SL 投影, 修复异形路口边界错误(灰度默认关)
旧逻辑逐点垂线射线与手工过滤的多边形边集求交, 对凹形/异形路口取 最近交点语义错误, 门边剔除脆弱, 单点失败兜底值无限传播。
新增 PolygonSLProjector: 将路口多边形/envelope 轮廓离散投影到 guide line SL 系逐格聚合左右边界。要点: - 门区(出入口 ±gate_window)样本一律不采信, 防异形门口的门柱顶点 把 l≈0 砸进门口格子(实车日志实证) - 横跨 guide line 且交叉点落在门区内的门边整条剔除 - max_slope=3.0 限坡磨尖刺, 不削直角外凸的可行驶区 - max_lateral=50 覆盖大路口敞开区, 避免人为截断走廊 - 出入口不与车道宽度混合, 门口宽度台阶是放宽方向, 与旧逻辑一致
顺手修复 Path::GetProjection s_range 窗口两处隐藏 bug(上界 fmax 应为 fmin; 平方距离误与 50.0 比较), 新增显式窗口投影接口 GetProjectionInRange(不回退全线扫描)。
开关 use_func_junction_boundary_sl_projection 默认关闭; 开启时 每帧输出 [sl_bd] 新旧对比与边界表摘要日志, 供灰度期 replay 排查, 默认打开后随旧射线路径一并清理。
单测 pnc_polygon_sl_projector_test(-DPNC_BUILD_TESTS=ON) 覆盖 矩形/凹形/直角外凸/门柱坑/单侧无约束/退化输入与窗口投影。
|
 | data/boundary/polygon_sl_projector.cpp |
 | data/common/path.cpp |
 | data/boundary/polygon_sl_projector_test.cpp |
 | data/boundary/road_boundary.cpp |
 | data/config/cfg_func_sw.hpp |
 | CMakeLists.txt |
 | data/config/cfg_func_sw.cpp |
 | data/boundary/road_boundary.hpp |
 | data/common/path.hpp |
 | data/boundary/polygon_sl_projector.hpp |
Commit
9b202b39519038925ea10704abad7c572fc8c21a
by wuyanjun110fix:出堆场 直接open sapce上码头面搜索起点不合适的bug
|
 | data/map/reference/reference_line.cpp |
 | data/map/reference/reference_line.hpp |
 | data/ssep/open_space_ec.cpp |
Commit
0528362a8f7311d237c27a23d17b41227443cddb
by wuyanjun110ssep: 删除路口终点位姿的车头点框内回退校验
终点区域已扩大且终点支持动态调整, 该直矩形点包含校验失去保护意义, 且在出口车道大曲率时误杀(回退到停止线得到未拉直的终点位姿)。
|
 | data/ssep/normal_junction_ec.cpp |
Commit
fb51a26b1bdd53e3f14d69ad32617986390f2833
by wuyanjun110feat:删除打印的日志
|
 | ssep/maps/ogm.cc |
Commit
a8c764bfaa62b8a6fd5f3ae8525f2f040260ff66
by wuyanjun110fix: 禁用前向搜索设置中的 theta 功能
|
 | data/config/cfg_func_sw.cpp |
Commit
753c91b3c2828e366752290b615b03dd2503db2b
by chenranfix: imv wbca smooth mode bug
|
 | algorithm/wbca/imv_wbca_manager.cpp |
Commit
db9852088a8685659c5d2a514467f0c3a043a94d
by wuyanjun110ssep: 进场景计划区域合并起点框时校验面积, 防止区域轮廓被 sanitize 丢弃后只剩起点框
|
 | data/ssep/into_yard_junction_ec.cpp |
Commit
334f7e6b591f70224a2ce59a9bf77c8e5f92ec64
by wuyanjun110fix:出堆场 直接open sapce上码头面搜索起点不合适的bug
|
 | data/map/reference/reference_line.cpp |
 | data/map/reference/reference_line.hpp |
 | data/ssep/open_space_ec.cpp |
Commit
2b8475bdb14b662acfee2cb39481684d3113ae6a
by wuyanjun110ssep: 删除路口终点位姿的车头点框内回退校验
终点区域已扩大且终点支持动态调整, 该直矩形点包含校验失去保护意义, 且在出口车道大曲率时误杀(回退到停止线得到未拉直的终点位姿)。
|
 | data/ssep/normal_junction_ec.cpp |
Commit
8328dcf4d1ffd9899770b804a78dc318a6700d42
by wuyanjun110feat:删除打印的日志
|
 | ssep/maps/ogm.cc |
Commit
dce71e2b8c063039797da73999b2986ad4e6f52d
by wuyanjun110fix: 禁用前向搜索设置中的 theta 功能
|
 | data/config/cfg_func_sw.cpp |
Commit
7a2e36942a4c2b3bf93b0d98d1a6340e31595aeb
by chenranfix: wbca direct link mode bug
|
 | algorithm/wbca/wbca_manager.cpp |
 | algorithm/wbca/wbca_manager.hpp |
 | algorithm/wbca/imv_wbca_manager.cpp |
Commit
7aae25bd393db481ed8f8640a5caec04821f7546
by chenranfix: wbca velocity profile bug
|
 | algorithm/wbca/linear_velocity_generator.cpp |
Commit
f85431cb05e0e7c164cf3be366a708c89e795640
by chenranfix: wbca velocity profile bug
|
 | algorithm/wbca/linear_velocity_generator.cpp |
Commit
360e40ff32048f35c5c75bcd9f4be93ab6768510
by tangwenqingfeat: 适配云端access line
|
 | data/vehicle/cloud_pnc_config.hpp |
 | data/ssep/ssep_ec.hpp |
 | data/ssep/ssep_ec.cpp |
Commit
213b9b1ba2fdfd2c2cca12ee810cd90698c7167a
by wuyanjun110boundary: OGM 真值入栅格+贴边位编码, 修无障碍走廊边界内缩
旧的贴边点云改标 200 方案用无符号距离带, 边界内侧真障碍点云也被吞成 道路(限速被豁免+不发绕行+HMI 显示错), 且写入时销毁真源。改为:
- 点云一律写真实灰度(253/255); BuildOgm 构建有符号边界带 mask(外侧 0.75m+内侧 2 格离散容差), ConstructDistanceMap 给占用像素打 kOccInBandBit 高位, 低 7 位保真源, 消费端各自解释: 限速豁免 in_band 亦豁免; DP 软罚按真源档(贴边点云 underlying 1.0m > 几何墙 road 0.3m, 观测优先于几何), in_band 只豁免硬判; gap 分型贴边点云 归 ROAD 不发绕行 - Gap::Source 扩 7 值与 OccSource 数值一一对齐, side 判定改 IsBoundarySource(ROAD||DITCH), HMI DP 窗 7 桶分色, trace 数值语义 同步(旧 dump 不兼容) - 修无障碍下走廊边界内缩(路口张开区不跟随/直线段锯齿/加点反而外扩): 挖窗豁免 ROAD(墙斜连线平坦垂距区被误判局部极小整片挖占用); 墙折线宽度突变阶梯化(斜连线贴线带啃噬 ~0.2*Δl); 扫描端点带 0.3m 内纯几何墙豁免(封边由扫描范围表达, 消像素基线锯齿); EMA 匹配容差 0.6→0.35(防历史系统性偏差持续混入不收敛) - HMI DP 窗加 shift 边界白点线(gap 端点对比定位内缩来源)
|
 | hmi/widget/dp_decision_detail.hpp |
 | data/dp_poly_path/decision_trace.hpp |
 | hmi/widget/dp_decision_detail.cpp |
 | data/boundary/driving_corridor.cpp |
 | data/obstacle/ogm.cpp |
 | data/obstacle/ogm.hpp |
 | data/boundary/driving_corridor.hpp |
 | data/dp_poly_path/trajectory_cost.cpp |
Commit
86128a399f44d1f70d71b1cb91cd19c8ec03043d
by wuyanjun110feat: 云端pnc config适配access line转换, 补HMI绘制与收包打印
|
 | hmi/draw/draw_map.cpp |
 | source/ros_source_pnc_config.hpp |
 | data/vehicle/cloud_pnc_config.hpp |
 | source/ros_source_pnc_config.cpp |
 | data/vehicle/cloud_pnc_config.cpp |
Commit
03260cb307241474583031ba804545e680c3466c
by wuyanjun110fix: 修正云端访问线路的yard_id赋值
|
 | data/vehicle/cloud_pnc_config.cpp |
Commit
e2f0c15e9a21b38099c5448c01e4b4e244f4d386
by tangwenqingfix: Keb: 修复Warm start频繁失败的问题
|
 | algorithm/plan/keb_optimizer.cpp |
Commit
44d902e0bf0b25cdb826c586914fcaf8958e3900
by wuyanjun110fix: 修正云端配置中access line的yard_id赋值
|
 | data/vehicle/cloud_pnc_config.cpp |
Commit
824daf8445e92722d6ce546b2e8a03a11c876376
by wuyanjun110fix: Align FSM超距退出3/4阶段时更新need_spreader_align_计数, 防止重回3阶段
|
 | data/app/fsm/task_fsm/task_align_fsm/task_align_fsm.cpp |
Commit
4f361ae47bc58a4dca72f5bed937aac4e62e5974
by wuyanjun110perf: OGM精细碰撞采样点分级去重, 控制序列化体积
精细碰撞开启时采样点不再全量保留: - 引导线路径带(半径12m, 1m粗块掩码)内按1/4 cell子格去重, 位置误差上界约3.5cm, 每cell至多16点 - 路径带外及无引导线时退化为每cell仅保留首点(等同旧抽稀密度) - 栅格写入逻辑不变, 仅瘦身采样点集; 精细开关关闭时行为不变 - 顺手收拢龙须/上下层四处重复写入分支为AddPoint
|
 | plan/prepare/prepare_ogm.hpp |
 | plan/prepare/prepare_ogm.cpp |
Commit
41119aa52d08f3d36a58e0f0bd5bd9e77c269c67
by wuyanjun110fix: Guardian锁站区域退出改为锚定车尾(带挂取挂车尾), 途径点单点前后扩展近似锁站区间, 防止车尾未过锁站障碍物提前退出
|
 | data/vehicle/lock_station_data.cpp |
Commit
211ee4a470c1d5d83dafe07ea65bb65fef432a7d
by wuyanjun110fix: Align FSM超距退出3/4阶段时更新need_spreader_align_计数, 防止重回3阶段
|
 | data/app/fsm/task_fsm/task_align_fsm/task_align_fsm.cpp |
Commit
037d24ad730656b6b84ce85ecd9ff179d1e6286f
by wuyanjun110perf: OGM精细碰撞采样点分级去重, 控制序列化体积
精细碰撞开启时采样点不再全量保留: - 引导线路径带(半径12m, 1m粗块掩码)内按1/4 cell子格去重, 位置误差上界约3.5cm, 每cell至多16点 - 路径带外及无引导线时退化为每cell仅保留首点(等同旧抽稀密度) - 栅格写入逻辑不变, 仅瘦身采样点集; 精细开关关闭时行为不变 - 顺手收拢龙须/上下层四处重复写入分支为AddPoint
|
 | plan/prepare/prepare_ogm.cpp |
 | plan/prepare/prepare_ogm.hpp |
Commit
50a557ba5ed0e80690bfb2284a4aed695e47745e
by wuyanjun110fix: Guardian锁站区域退出改为锚定车尾(带挂取挂车尾), 途径点单点前后扩展近似锁站区间, 防止车尾未过锁站障碍物提前退出
|
 | data/vehicle/lock_station_data.cpp |
Commit
c3d8a6c116c0a9e8f4ff69bf5904033acab647a1
by wuyanjun110fix: 恢复union region异步计算, latch结果消费即释放治理内存驻留
- CreateUnionRegion恢复std::async异步, polygons改move捕获少一份拷贝 - latch结果消费一次即move取走并shrink_to_fit释放, 不再常驻AsyncUnionRegionState - 重建路径不再预清union_region_/重建async_state, 异步未就绪时沿用上一帧轮廓
|
 | data/map/envelop/map_envelops.cpp |
Commit
d749b4221ec4750bc1d19a2308f5c31730545b71
by wuyanjun110perf: 回放同帧降频节流, 暂停/停在末帧时避免循环满频重复计算, 改参数仍0.5s内重算生效
|
 | replayer/logic.cpp |
Commit
46f793d6f300e33aa0d19b0a6c518d26f886bfd1
by wuyanjun110fix: 远程单次直线步进END后不退出循环重回MOVE
UpdateFSMState 每周期被调两次(pilot_update 一次, 失败 stage 经 ResetSuccessorTasks 仍强制执行的 MOTION_FSM_TASK 一次), fsm_interface 的 last_motion_sub_state_type 被第二次快照拍平, REMOTE_MOVE->REMOTE_END 边沿被吞, is_need_increase_remote_idx_ 永不置位, cur_remote_idx_ 不推进, finishReqRemoteCtrl 不触发, REMOTE_END 停 remote_align_stop_sec 后经 RemoteInit 无条件重回 REMOTE_MOVE 直至超时.
prepare 改为自持上周期 remote 子状态判 END 进入沿, 不再依赖 fsm_interface 的 last_*; REMOTE_STOP 跳过判断同步替换恢复原语义.
|
 | plan/prepare/prepare_status.cpp |
 | plan/prepare/prepare_status.hpp |
 | data/app/fsm/motion_fsm/motion_remote_fsm/motion_remote_state.hpp |
Commit
74b035a35b095b2e5650e2eb298b03fd8d46b143
by wuyanjun110feat: 走廊边界按gap端点来源差异化内缩(corridor_buffer_*), 钳制保DP路径可行
- GenerateBoundary: 选中gap端点按来源查buffer内缩(道路/沟点小, 点云/实体/预测框大), 钳制到容得下DP路径(车中心±半宽+0.3 slack, 覆盖WBCA Dilated每侧0.2m侵蚀), 只缩不反转; 贴障/起步时要求的预留自适应压到实际余量, 不做近自车渐变(避免越接近障碍预留越衰减); DP无路径降级帧不内缩, 保持原始边界 - 新增raw_path_bound(未内缩原始端点): path_bounds/trailer_path_bounds_decider的 区域相等性判定(bound==shift宽)改读raw, 防内缩翻转is_in_obstacle_region分支 - cfg_lat_plan新增6个corridor_buffer_*参数(rosparam, 序列化v5), 类内初始化0兜底 老dump反序列化(v<5跳过字段落0=不内缩=复现老行为) - BuildGaps拆出BuildGapAt(单gap构建), 免每断面整表分类; 挂车半宽提TrailerAwareHalfWidths 与GetSpeedLimitsAndDistances共用
|
 | tasks/deciders/lat_decider/trailer_side_pass_decider.cpp |
 | data/config/cfg_lat_plan.cpp |
 | data/config/cfg_lat_plan.hpp |
 | tasks/deciders/lat_decider/path_bounds_decider.cpp |
 | replayer/replayer_data_process/replayer_data_process.cpp |
 | tasks/deciders/lat_decider/trailer_path_bounds_decider.cpp |
 | data/boundary/driving_corridor.cpp |
 | data/boundary/driving_corridor.hpp |
 | tasks/deciders/lat_decider/side_pass_decider.cpp |
Commit
8f7e94a46edce22ff96ee1be076fdc8031d6b153
by wuyanjun110fix: park子状态机收普通任务卡死PARK_MOVE无法退出
bulk分支(FSM_TYPE_B)在PARK_LOCK收到无散货途径点的普通任务时, Lock2Init/Init2Move仅凭routing标志放行进入PARK_MOVE, 而该态下 Move2Adjust(需bulk_in点)与Park_Bulk2Travel(需bulk_out点)恒假, 只能靠再次取消任务解锁(实车卡死近4小时): - Lock2Init/Init2Move补散货途径点检查, 普通任务不再进入死区 - Park_Bulk2Travel新增逃生: 新任务无任何散货途径点且地图可用时退回TRAVEL
同修停车场分支(FSM_TYPE_A)同类隐患: Park_Park2Travel对PARK_MOVE 放行新routing逃生, 但带双卡死判据(switch恒KEEP+停留超20s), 正常进位途中刷新停车任务不受影响
另补EnumType2String缺失的E_TASK_FSM/E_MOTION_FSM映射, 日志不再把正常事件误打成E_NO_STATE
|
 | data/app/fsm/task_command_type.cpp |
 | data/app/fsm/task_fsm/task_park_fsm/park_fsm_transition/bulk_transition.cpp |
 | data/app/fsm/task_fsm/task_fsm.cpp |
Commit
f7ecf7b1dee5d6720bc871d7301910b4d6fd3b39
by wuyanjun110fix: 空Path取点断言与退化lane segment构造CHECK线上崩溃, 改优雅降级
- Path::GetIndexFromS/GetSmoothPoint 空路径不再fatal, 返回默认值并记ERROR日志 - PncMapPath lane segment构造函数点数不足2时清空path_points_留无效path, 下游经IsAvailable安全降级, 不再CHECK崩进程
|
 | data/common/path.cpp |
 | data/map/pnc_map/pnc_map_path.cpp |
Commit
f8233babbba259246c3ed95227f6b9e2a070d600
by wuyanjun110fix: Path/DiscretizedPath 空与单点场景既有隐患修复
- Path::Reset 补清 length_/num_sample_points_, 防复位后陈旧值残留 - path.hpp 给 num_sample_points_/length_ 加类内默认值, 防默认构造读未初始化垃圾 - Path::InitPoints 单点路径不再越界访问 path_pts_[-1] - DiscretizedPath::GetPathPtFromS/GetPathPtIdxFromS 空容器 front() UB 改空判降级, Evaluate/EvaluateReverse 的 CHECK(!empty()) fatal 同步改 LOG(ERROR)+默认点
|
 | data/common/path.hpp |
 | data/common/path.cpp |
 | data/common/path_point.cpp |
Commit
6087fa2830942d05011e37f9971570f912f11c23
by wuyanjun110fix: 堆场内open space场景误报REGION_OUT_BRIDGE提前降安全阈值, 改按guide line查挂尾所在路段类型, 挂出堆场后再切换
|
 | plan/prepare/prepare_status.cpp |
Commit
6762d53f760e626f1471f94fdd2ee82ef093e505
by wuyanjun110fix: MatchPtByS 对超末端 s 解引用 end() 迭代器的未定义行为
lower_bound 落在 end() 时原代码用 *end() 参与外插, 读垃圾内存, 结果不可信 且可崩溃; 与 MatchPtByt 的同款历史修复对齐, 夹到末点返回, 并补 size<2 的 begin 分支越界保护。动态边界收窄的 arrive_t 反查每帧命中该分支, 既有 cloud_trajectory/trajectory_combiner 调用点同受益。
|
 | data/common/trajectory_point.cpp |
Commit
b9defc7cc8a6bd2c81866bf3e0ebfc67f944ffd5
by wuyanjun110feat: 障碍决策模块化, 运动状态迟滞+label消抖+准入谓词单一源
新增 data/obstacle/decision/: ObstacleDecider 循环体收敛为 obstacle_decision:: Update(决策态继承→运动状态估计→Base/Label 决策→label 消抖)。
- 运动状态估计治动静误判误绕行: 感知 is_static 是 1km/h 单帧阈值, 测速置零 即翻转, 走静态标签分支引发误绕行。改用 his_states 15帧均值速度 + 3s 窗 净位移证据(≥0.8m, 滤 bbox 遮挡抖动) + 非对称迟滞(判动3帧/判静10帧); UNDETERMINED 回落感知 is_static, 真静障首帧即走静态通道。 - direction 修复: 投影失败返 0 误判 REVERSE(同向车被当对向画反向延伸/污染 长决策)。改 +0.3/-0.15 非对称死区, 死区内保持上帧值。 - label 消抖: 收紧立即生效, 放松需连续 5 帧确认。 - 决策态继承走 Update 内 InheritDecisionState 而非 Obstacles::FromHis: 后者全 stage 无条件跑, 会在不调度 OBSTACLE_DECIDER 的 stage 残留旧值。 - 准入谓词统一: IsDpDynamicCandidate/IsCorridorGridObstacle 单一事实源, DP 动态盒与 KEB 走廊消费端只调用不自判。 - ObstacleHisStates 加 velocity_filter_available(): MeanFilter 空缓存取均值 LOG_ASSERT 直接崩, 且该滤波器不参与序列化(回放载入恒空), 消费前必查。 - debug_str 增加运动状态标记(U_/S_/M_)。attr 序列化升 v3。
|
 | data/obstacle/obstacle.hpp |
 | data/obstacle/decision/obstacle_decision.cpp |
 | data/dp_poly_path/trajectory_cost.cpp |
 | data/obstacle/decision/obstacle_decision.hpp |
 | tasks/plan/keb_utils.cpp |
 | tasks/deciders/other_decider/obstacle_decider.cpp |
 | data/obstacle/obstacle_decider_attr.cpp |
 | data/obstacle/obstacle_decider_attr.hpp |
Commit
4c6347125137a837135fd420306b5564fb539b50
by wuyanjun110feat: 动态障碍时间对齐边界收窄+会车旁路(灰度 use_dynamic_bound_clamp)
DP 有时间参数化的动态碰撞 cost 但 path_bound 只由静态化 OGM 切出, 动态避让 仅经 ref_l 软引导进 WBCA, 平滑权重把绕行量拉回。GenerateBoundary 在静态内缩 后追加动态收窄:
- 同向车时间对齐投影: 自车到达时刻按上帧轨迹反查(与 DP 同口径), 回放/首帧 退化匀速映射(下限步速 1.5m/s, 防起步覆盖塌缩); 预测横向漂移限幅采信在 当前实测 l ± min(0.5·t, 1m), 防邻道预测线漂移把直道路径挤偏。 - 对向车会车旁路(dyn_clamp_meeting_bypass): 常被弯道/航向门打成 IGNORE 但 会车交互仍在, REVERSE+FRONT/SIDE+确认运动独立于 label 进收窄(不进 DP 盒 不改绕行决策); 弃时间对齐用 6s 扫掠包络(低速会车两车到达时刻天然错开), 豁免横向限幅(弯道对向车 Frenet 横移是真实几何), 收窄深度封顶半富余。 - 安全阀: 只收窄不翻转绕行侧, 下限=DP路径±半宽+slack, 车前 5m 起步豁免, K=3/M=5 帧锁存消抖(锁存迁移不受单帧降级门控, 防会车中途边界抖动)。 - 障碍 SL 半宽取 fabs: GetSLBoundary start/end 顺序未归一化, 裸减得负宽会 把占用区间整段丢弃(根治待源头归一, 见审计记录)。 - 观测: 障碍 debug_str 追加 _D<C|B><H><A>:<n> 漏斗标记(幂等, 防回放重算 累积); trailer 走廊共用对象但不参与收窄不触碰锁存。 - 灰度默认关(rosparam use_dynamic_bound_clamp, 验证需显式开)。
|
 | tasks/deciders/lat_decider/side_pass_decider.cpp |
 | replayer/replayer_data_process/replayer_data_process.cpp |
 | data/boundary/driving_corridor.cpp |
 | data/boundary/driving_corridor.hpp |
 | tasks/deciders/lat_decider/trailer_side_pass_decider.cpp |
 | data/config/cfg_lat_plan.hpp |
 | data/config/cfg_lat_plan.cpp |
Commit
613bb76c1c04a61369d8cf718abbdd3ac5273f35
by wuyanjun110feat: side-pass trace 增加动态收窄漏斗与逐障碍投影明细
dyn_dbg 漏斗行(enabled→cand/bypass→arrive→hit→active→clamped, 哪层归零卡 哪层) + dyn_notes 逐障碍投影统计(预测 s/l 范围/swept/inter/被拒原因) + 断面级 dyn_* 收窄快照; dump 移到 GenerateBoundary 之后以带出收窄结果。 排查'为什么没收窄'先看这两处。
|
 | data/dp_poly_path/decision_trace.hpp |
 | data/dp_poly_path/decision_trace.cpp |
Commit
5e94cf0938c76aee4944c9521d1073f2e917a140
by wuyanjun110fix: Station2Align 补齐准入过滤, 防不该进align场景绕道从station复入
|
 | data/app/fsm/task_fsm/task_fsm.cpp |
Commit
5d4c8178edc1a0a13f8a08bd4e556f43e4ac96cf
by wuyanjun110feat: 绕行决策加固一轮(误绕行治理+类型策略+动作承诺+限速补全)
- DP 动态碰撞时域修复: num=5.0/0.5 却按 0.1 步进致实际只看 1s, 收成 编译期单源 kDynEvalDtS/kDynHorizonS(5s), 让 DP 及早为对向车主动让行 - 动态障碍边界时间对齐收窄 + 会车 MEETING label 化 + 投影策略集中 (对向扫掠包络/收窄深度封顶 dyn_clamp_meeting_depth_cap 可调) + trace 观测 - 狭窄会车识别: 收窄后可用宽度不足→降速+缩跟车距离(narrow_meeting) - 误绕行治理: * 跟踪成熟度门(reserved_int_1 未初始化 + age), 修 age>0 放过新 track 的洞 * 动态障碍足迹掩膜: 动车漏聚类只剩 OGM 点云时不切 gap(仅横向, 纵向照常) * 类型策略 SidePassPolicy: 车辆类居中跟车等/VRU 居中停让/靠边绕/场桥不碰, VRU 靠边无条件绕(解耦动静), 车辆类居中抛锚超时逃生口 * 动作承诺: 一旦绕行锁到动作完成(甩到车后/VRU挡前硬退出/超时), 承诺期 旁路各软门, 防超车并排时半途回摆; 进入侧连续 N 帧确认防单帧误判固化 - 走廊限速失真治理(零新栅格): 静态非绕行障碍横向余量按 frenet 补进限速; 同向并行/超车贴身降速(空间足够不降速), 复用 PARALLEL_OBSTACLE_SPEED_LIMIT - SL 约定全仓统一(start_l=左缘/end_l=右缘)+语义访问器 - 所有功能使能开关集中到 CfgFuncSw, 数值调参留各域 config; 序列化迁移用占位模式保旧 dump 对齐(CfgFuncSw/CfgLatPlan/CfgSafeConst/ ObstacleDeciderAttr/PerceptionObstacle 各升版本)
|
 | data/obstacle/obstacle_decider_attr.cpp |
 | data/obstacle/perception_obstacle.cpp |
 | data/config/cfg_safe_const.cpp |
 | data/config/cfg_func_sw.cpp |
 | data/config/cfg_lat_plan.cpp |
 | data/boundary/driving_corridor.hpp |
 | data/config/cfg_safe_const.hpp |
 | data/obstacle/perception_obstacle.hpp |
 | tasks/deciders/long_decider/constrain_decider.cpp |
 | data/obstacle/decision/obstacle_decision.cpp |
 | data/dp_poly_path/trajectory_cost.cpp |
 | data/common/sl_boundary.hpp |
 | data/constrain/longitude_constrain.hpp |
 | data/boundary/driving_corridor.cpp |
 | hmi/draw/draw_perception.cpp |
 | data/map/reference/reference_segment.cpp |
 | data/config/cfg_func_sw.hpp |
 | data/dp_poly_path/decision_trace.hpp |
 | data/constrain/longitude_constrain.cpp |
 | data/obstacle/obstacle_decider_attr.hpp |
 | tasks/deciders/long_decider/constrain_decider.hpp |
 | data/obstacle/decision/obstacle_decision.hpp |
 | data/config/cfg_lat_plan.hpp |
 | data/dp_poly_path/decision_trace.cpp |
Commit
57432d24b14d214084e3c0719893a693d3db7796
by wuyanjun110fix: 绕行DP转移预剪放宽, 治偏置起点+畸短首段致l=0直行走廊不可达误绕行
dl剪枝带用弦斜率avg_dl=Δl/seg_len当机动激进度代理, 在短基线上被天然放大; init锚车辆真实s防采样抖导致首段常畸短, 偏置起点回正弦斜率超带→l=0在DP图上 不可达(留默认inf非碰撞)→被迫朝障碍侧大拱误绕行。改: 短段按基线比例放宽带宽 (cap 5x), 回正方向(|cur_l|<|prev_l|)一律放行打破方向锁; 激进度仍由IsValidCurve兜底。 不动s锚定/采样。
|
 | data/dp_poly_path/dp_road_graph.cpp |
Commit
7f9cc76953b6e990b2a03616093dd9a9369432f7
by wuyanjun110feat: 绕行动作承诺加实际横向执行门槛(防空承诺固化误绕行)
- 进入承诺除 label 意图外, 增加自车已实际横向偏移(|ego_match l|>0.5, 与 DP KeepSidePassUntilCentered 同源、对齐 kKeepLThr)作为必要条件, 防 l≈0 纯意图被单帧抖动瞬时锁成 30s 承诺 - 退出新增"空承诺撤销": 已承诺但未实际横向执行且已不满足准入即释放, 零回摆风险; 已绕到一半(lateral_engaged)的仍走硬承诺完成 - ego_match 不可用时证据无效, 进入保守拒绝、已建承诺不误撤
|
 | data/obstacle/decision/obstacle_decision.cpp |
Commit
245dc82d4e357b7d33cabc7b091bdb2b7c2aeead
by wuyanjun110feat: 类型策略灰度默认开启(use_sidepass_type_policy 默认 true)
|
 | data/config/cfg_func_sw.cpp |
Commit
e448e4ce08f401dd7e70250707072e155614d092
by wuyanjun110feat: 直道正面逆向车走会车收窄让行, 不再 BLOCK 死等
会车 MEETING 原只挂在弯道/航向差大两门上, 直道正面对开车掉头后与参考线 反平行(r_diff≈0)且在直线, 两门都不触发, 掉进余宽判定两侧不足即 BLOCK 停等。在 LabelDecider !treat_as_static 块【先于】两门加会车短路: IsMeetingScenario(确认运动+逆向+车前/侧)一律走 MEETING——本体不 BLOCK/ 不写实体栅格, 只按预测轨迹收窄边界让行; 空间真不够时收窄切不出 gap, 纵向 ST/guardian 照常停, 安全不丢。灰度仍 dyn_clamp_meeting_bypass。
|
 | data/obstacle/obstacle_decider_attr.cpp |
Commit
40537f7ac3d275051064cfa1361a4a989672e8a6
by wuyanjun110chore: 会车收窄封顶 dyn_clamp_meeting_depth_cap 默认 0.8→0.9(收窄更紧)
|
 | data/config/cfg_lat_plan.cpp |
Commit
ac4a015c1d0fa9fff7faee5f20a363bfd4d0706b
by wuyanjun110fix: 补 NARROW_MEETING_SPEED_LIMIT 登记, 修 CreateNarrowMeetingConstrain 断言崩溃
NARROW_MEETING_SPEED_LIMIT 实装时只登记了 IsSpeedLimitType, 漏了 LongitudeSpeedLimitConstrain::Initialize 的类型断言白名单。窄会车识别一旦 触发 CreateNarrowMeetingConstrain 就 LOG_ASSERT 崩溃(Signal 6)。补三处: 断言白名单 / TraceBack switch 分组(同 PARALLEL 走减速曲线) / ToString case (原走 default 显示 UNKNOWN)。走软限速, 未加 IsHardConstrainType。
|
 | data/constrain/longitude_constrain.cpp |
 | data/constrain/longitude_constrain.hpp |
Commit
58317cd215b7ab93b84dab9a684c06666a8dacec
by wuyanjun110feat: 会车逆向道窄时不借道让行(纯逻辑判场景+走廊左界渐变钳)
窄路正面会车时, 本车道被 OGM 点堵住需绕行, 原会向左借进逆向道, 与对向 来车正面冲突。改为在决策层纯逻辑判场景, 执行侧钳走廊左界, 不动 DP 搜索。
参考线预计算逆向车道几何(PncMapPath::InitWidth): - 新增 ReverseLaneGeo{valid,num,near_bound_l,far_bound_l,gap}, 逐采样点 存左/右逆向道近远边界与缝宽(可为负), 复用原有 GetToRoadBoundaryDistance /GetProjection 结果不重复查图; 不序列化。 - 访问器 GetReverseLaneGeo(s, is_left, out)。
场景判定(obstacle_decision::IsMeetingBorrowYieldScenario, 帧级): 对向逆向车快速逼近(速度取 his_states 15 帧均值, 不用裸 speed_km_h——感知 单帧测速置零会误撤让行门, 是危险方向的失效) + 逆向道过窄 → 宁让不借。
执行(DrivingCorridor::Init) 三层门控: 1. 场景成立; 2. 已承诺左借(ego 中心越过车道左边线)则不钳——中途拉回比走完更危险, 让它尽快清空逆向道; 让行只拦尚未起步的借行; 3. 本车道确实被堵才钳——用 his 走廊 drivable_seg 判(原始 OGM 堵塞, 与本帧 钳制无关, 不震荡); 本车道畅通则完全不动边界。 命中后左界按 ego 左边缘锚点沿 12m 线性渐变钳到 lane_left_l, 避免硬钳导致 方向盘猛打; 车道被堵死→无 gap→复用纵向停, 不硬挤右侧。
停住的对向车写入栅格(IsCorridorGridObstacle): 对方停下后让行解除放行绕道, 若它不在图里就是"图上空、实际有车"。故确认 静止+逆向+heading 对齐者写图, 能否通过交真实几何判定。heading 对齐判定 (30°+3 帧防抖)从 meeting_fallback 分支提到动静分支之外, 否则静态车只能 读到上帧陈旧值。
其他: - 逆向车绕行策略直接 ALLOW: pulled_over 相对自车参考线判, 会把侵入自车道 的逆向车误判为"居中"→跟一辆迎面来的车。 - 走廊左钳与堵塞判据统一用 TrailerAwareHalfWidths(挂车感知/左右非对称), 该函数上移至 Init 之前, 保持各处 footprint 口径一致。 - GetBoundaryFromS 内是 CHECK(!empty()), 新增调用在断面循环之前, 加空守卫。 - 灰度 use_meeting_borrow_yield_(cfg_func_sw v14), 观测日志 LOG_EVERY_N 降频。
|
 | data/config/cfg_func_sw.hpp |
 | data/map/pnc_map/pnc_map_path.hpp |
 | data/obstacle/decision/obstacle_decision.hpp |
 | data/obstacle/obstacle_decider_attr.cpp |
 | data/config/cfg_func_sw.cpp |
 | data/boundary/driving_corridor.cpp |
 | data/obstacle/obstacle_decider_attr.hpp |
 | data/obstacle/decision/obstacle_decision.cpp |
 | data/map/pnc_map/pnc_map_path.cpp |
Commit
51819254225b35991f7648de9c4d98c51f1e32b2
by wuyanjun110feat: 烟台车内/柱子/房子点云及下沉坑点适配
新增 107/108/110/111 四种点云类型: 前三者(车辆内部/柱子/房子点云)标记 为无效点云, 碰撞与侧避均不考虑; 下沉坑点(111)按路边点云同等逻辑处理, 参与侧避绕行(限速不因它降速, 但 gap/碰撞仍当墙, KEB 补画为障碍规避)。
|
 | data/boundary/driving_corridor.cpp |
 | tasks/plan/keb_utils.cpp |
 | hmi/draw/draw_perception.cpp |
 | data/obstacle/ogm.cpp |
 | data/obstacle/ogm.hpp |
Commit
336c09dfd3035a62ada742b79f001dbda066f0c3
by wuyanjun110fix: 会车让行逆向道几何改用 guide 系断面, 钳制线改为逆向道近边界
坐标系纠错: 障碍物 sl_boundary 由 GenerateRefSlBoundary(guide_line) 生成, 是 guide 系, 原实现却拿它的 s 去查 reference_line().pnc_map_path() 的 ref 系逆向道表, 两系不重合时取到错误断面; 且硬编码主参考线, standby 断面直接查错线。 改为在 GenerateRoadBoundary 建表时用 point_info.s() 从该断面对应的那条 参考线取, 存进 BoundaryPt, 与 lane_left_l 同源, 消费侧全在 guide 系查。 顺带补 rev_s<0 早退(GetBoundaryFromS 对负 s 退化返回最远断面)。
钳制线纠错: 原钳到自车道左边线, 而"不借道"的硬线是逆向道近边界, 二者之间的本方向 其余车道与道间缝隙被白白没收; 本方向多车道时还会拦住合法的同向换道绕行。 改为 lane_left_l + reverse_lane_gap(自车道边线到逆向道近边界的距离), 承诺判据线同步取同一条, 否则同向换道会被误判成"已借逆向道"而撤销钳制。 地图两 road 重叠(gap<0)时该线比车道边线更靠右, 反而堵住侵入漏洞。
只搬差值(宽度、缝隙)不搬 near/far 绝对量: 差值的参考系零点相消, 绝对量 搬进 guide 系必须先减 point_info.l()。
SSEP 断面排除: 该段无对应参考线, lane_left_l 停在"半车宽+0.15"兜底值而本身是 left_l=10 的开阔区; meeting_yield 是帧级开关而 guide line 多段拼接, 不排除会把开阔 的 SSEP 段硬缩到贴车身。
|
 | data/boundary/driving_corridor.cpp |
 | data/obstacle/decision/obstacle_decision.cpp |
 | data/map/pnc_map/pnc_map_path.hpp |
 | data/obstacle/decision/obstacle_decision.hpp |
 | data/boundary/road_boundary.cpp |
 | data/boundary/road_boundary.hpp |
 | data/map/pnc_map/pnc_map_path.cpp |
Commit
2bc76bf271b37cbd6e4fb2c4eb1b0e65228db1bf
by wuyanjun110feat: HMI快照按钮触发发SNAP录包(关掉决策结果保存)
- DecisionReaction 加一次性标志 hmi_req_record_snap_(不序列化/不入FromHis) - logic plan循环消费快照按钮标志并当场复位, 修从不复位每帧触发问题 - 快照按钮不再置 save_decision_result - RosSinkRecordTrigger 按钮标志与自动条件一并发 SNAP Trigger
|
 | data/decide/decide_reaction.hpp |
 | sink/ros_sink_record_trigger.cpp |
 | data/decide/decide_reaction.cpp |
 | node/logic.cpp |
Commit
bef81f367cafc8ae74ab8e77155a23d1478f14c7
by wuyanjun110feat: 窄会车主动贴右让行(走廊左界钳到对向车近侧)+修急停判定两处笔误
- 走廊 Init 注入 narrow_hug: 距会车点 kHugLeadS 内把左界钳到"对向车近侧-余量", 逼 DP/PJPO 贴右, 横向让出空间给对向车; 读 his 帧结果同时喂 DP 与 PJPO - 判窄改用交互过滤前的几何净空(raw_l_intervals), 不再要求收窄锁存 active, 避免"对向车已压上路径才判窄"(该刹车非靠边)的时机错位 - 逐断面存对向车近侧 l(narrow_hug_near_l_), 贴对向车而非道路右界免疫弯道 SL 畸变 - GenerateBoundary 贴右时右侧障碍源保留最小膨胀(kNarrowRightObsKeep), 防啃 og 点 - 缩跟车距离加距会车点门(kNarrowFollowLeadS), 与贴右提前量口径一致 - side_margin 默认 0.4→0.6 - 修 constrain_decider 两处: fabs(end_l()<=3.0) 括号错位; 横向切入判定 M_2_PI(36°)误用应为 M_PI_2(90°), 致同向并行车误急停/斜插漏拦
|
 | data/config/cfg_lat_plan.cpp |
 | data/boundary/driving_corridor.cpp |
 | data/boundary/driving_corridor.hpp |
 | common/util/express.cpp |
 | data/constrain/longitude_constrain.cpp |
 | tasks/deciders/long_decider/constrain_decider.cpp |
Commit
b3106e93ac9e3d2edae8c64ad2ea91fc7c15e877
by wuyanjun110perf: 窄会车贴右就近查改单调游标(O(n²)→均摊O(n)), 诊断日志降频
- Init 内 his_hug/his_pb 逐断面线性扫描改只前进的单调游标: 二者沿行驶方向 单调且与本帧 while 同向, start_s 单调推进→最近邻单调推进, 均摊 O(n); 仅采信半个 interval 内最近点, 阈值语义与原线性扫描一致 - [narrow_hug]/[narrow_hug_dbg]/[narrow_meet] 三条诊断日志频率降到 EVERY_N 50
|
 | data/boundary/driving_corridor.cpp |
Commit
ed38742ac3653b98bffbf6039acd113a38e5c05d
by wuyanjun110feat: 新增镇石(ZHEN_SHI)站点地理围栏, IMV前进进出站复用西联场景
|
 | data/ssep/forward_ec.cpp |
 | data/config/cfg_region.hpp |
 | data/config/cfg_region.cpp |