Commit
dd3ac6978e9051b56ed9ac071022ddb138f543b5
by liuhongshuofeat: 新增障碍物置信度评分 行人靠近报警
|
 | sink/ros_sink_chassis_ctrl.cpp |
 | CMakeLists.txt |
 | data/obstacle/obstacle_decider_attr.cpp |
 | data/config/cfg_func_sw.cpp |
 | data/config/cfg_region.cpp |
 | data/obstacle/obstacle.cpp |
 | data/obstacle/obstacle.hpp |
 | plan/prepare/prepare_objs.cpp |
 | data/config/cfg_func_sw.hpp |
 | scenarios/stage.cpp |
 | tasks/deciders/other_decider/alarm_decider.cpp |
 | data/config/cfg_region.hpp |
 | data/obstacle/obstacle_decider_attr.hpp |
 | data/obstacle/perception_obstacle.hpp |
 | tasks/deciders/other_decider/alarm_decider.hpp |
 | sink/ros_sink_chassis_ctrl.hpp |
Commit
ae82cd70389db148891fd4f0f8354dae82623fb4
by liuhongshuofeat: 预警时间间隔参数化
|
 | sink/ros_sink_chassis_ctrl.cpp |
 | data/config/cfg_func_sw.cpp |
 | data/config/cfg_func_sw.hpp |
Commit
02eef33286fd2c1fd15c3630295167bbdca79308
by liuhongshuofeat: 合并冲突
|
 | data/config/cfg_region.cpp |
Commit
067a789e161bce5878bb983eebdd5bad63d66765
by wuyanjun110feat: 新增障碍物置信度评分 行人靠近报警
|
 | tasks/deciders/other_decider/alarm_decider.hpp |
 | data/obstacle/perception_obstacle.hpp |
 | scenarios/stage.cpp |
 | sink/ros_sink_chassis_ctrl.cpp |
 | data/config/cfg_func_sw.hpp |
 | data/config/cfg_region.cpp |
 | plan/prepare/prepare_objs.cpp |
 | data/obstacle/obstacle_decider_attr.cpp |
 | data/obstacle/obstacle.cpp |
 | CMakeLists.txt |
 | sink/ros_sink_chassis_ctrl.hpp |
 | tasks/deciders/other_decider/alarm_decider.cpp |
 | data/obstacle/obstacle_decider_attr.hpp |
 | data/config/cfg_region.hpp |
 | data/config/cfg_func_sw.cpp |
 | data/obstacle/obstacle.hpp |
Commit
aefad2d72b50d177f73b39b6f3f88b95699e6be7
by wuyanjun110feat: 预警时间间隔参数化
|
 | data/config/cfg_func_sw.hpp |
 | sink/ros_sink_chassis_ctrl.cpp |
 | data/config/cfg_func_sw.cpp |
Commit
f694b82452efc96843fefb947d35b12040e75007
by wuyanjun110feat: 合并冲突
|
 | data/config/cfg_region.cpp |
Commit
f17dd3022e07cf16f5602cd595b4e53c639163b3
by liuhongshuofeat: DeadLock新的停止点在1m以内车辆不启动
|
 | data/app/cmd/cmd_dead_lock_force_park.cpp |
 | data/app/cmd/cmd_dead_lock.cpp |
 | tasks/deciders/long_decider/constrain_decider.cpp |
Commit
f1f7bca7f335e3bb4f3e97eb16477ece7ac41509
by liuhongshuofix: DeadLock 使用历史纵向约束判断近距离停车锁存状态
|
 | tasks/deciders/long_decider/constrain_decider.cpp |
Commit
95737210ab3b8548ebf8930d3c4267544256fd36
by tangwenqingchore: Keb: 忽略ssep_ec中缓存的real obstacles
|
 | tasks/plan/keb_utils.cpp |
Commit
cf9bf06e62975a44420683b8d68b1a1c38d24ebb
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
49da4fba25e8910c876f430f1f1b28a8e67e0f63
by wuyanjun110perf: 回放同帧降频节流, 暂停/停在末帧时避免循环满频重复计算, 改参数仍0.5s内重算生效
|
 | replayer/logic.cpp |
Commit
72009854a7c4ddb6758552e58d1be9e0ca3e37d2
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 |
 | data/app/fsm/motion_fsm/motion_remote_fsm/motion_remote_state.hpp |
 | plan/prepare/prepare_status.hpp |
Commit
a5afde418b758301551f63748ff5a58175d144cb
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
24fd81a9d13c83e6652e19c559f8f82118f72887
by tangwenqingrefactor: SSEP: 移除ilqr集卡轨迹库功能
|
 | ssep/coarse_search/motion_primitive_sampler/ilqr_motion_primitive_sampler.cc |
 | ssep/coarse_search/searcher_builders/rigid_truck_general_searcher_builder.cc |
 | ssep/coarse_search/searcher_builders/tractor_trailer_bidirectional_searcher_builder.cc |
 | ssep/coarse_search/searcher_builders/truck_multi_segment_parking_bidirectional_searcher_builder.cc |
 | ssep/coarse_search/searcher_builders/tractor_trailer_general_searcher_builder.cc |
 | ssep/scenarios/tractor_trailer_multi_segment_parking_planner.h |
 | ssep/coarse_search/searcher_builders/u_turn_insertion_maneuver_searcher_builder.cc |
 | ssep/coarse_search/searcher_builders/back_insertion_maneuver_searcher_builder.h |
 | ssep/coarse_search/motion_primitive_sampler/ilqr_motion_primitive_sampler.h |
 | ssep/coarse_search/searcher_builders/truck_reference_following_searcher_builder.cc |
 | ssep/coarse_search/searcher_builders/back_insertion_maneuver_searcher_builder.cc |
 | ssep/coarse_search/searcher_builders/imv_bidirectional_searcher_builder.cc |
 | ssep/coarse_search/searcher_builders/u_turn_insertion_maneuver_searcher_builder.h |
 | ssep/coarse_search/searcher_builders/imv_general_searcher_builder.cc |
Commit
42056f95c73509f3f58d61530894685e20a604d4
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
511e2bf053a7c68b76ae177ef28fd9cf9e4ae056
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_point.cpp |
 | data/common/path.cpp |
 | data/common/path.hpp |
Commit
d06067513a0b5bde9107fa12fb1bfdd64afad47f
by tangwenqingfeat: SSEP: 集卡多段倒车场景前进后退使用不同曲率上限
|
 | ssep/keb_optimizer/keb_problem.cc |
 | ssep/keb_optimizer/tractor_trailer_keb_optimizer.cc |
 | ssep/scenarios/tractor_trailer_multi_segment_parking_planner.h |
 | ssep/keb_optimizer/keb_problem.h |
 | ssep/keb_optimizer/tractor_trailer_keb_optimizer.h |
 | ssep/coarse_search/searcher_builders/tractor_trailer_multi_segment_parking_bidirectional_searcher_builder.cc |
Commit
8188b089eb1d8bd51678d2586c3c21c9251f160d
by liuhongshuofix: 速度置信度的引入收敛到只影响行人靠近预警功能
|
 | data/obstacle/obstacle.cpp |
 | data/obstacle/obstacle.hpp |
 | data/obstacle/perception_obstacle.hpp |
 | data/obstacle/obstacle_decider_attr.cpp |
Commit
f8e0b4f0d509e20cc24569fcda6a4e14fb765d12
by liuhongshuofix: 格式漂移更改 配置参数更改
|
 | tasks/deciders/other_decider/alarm_decider.hpp |
 | sink/ros_sink_chassis_ctrl.cpp |
 | data/obstacle/obstacle.hpp |
 | data/config/cfg_func_sw.cpp |
 | tasks/deciders/other_decider/alarm_decider.cpp |
 | data/config/cfg_region.hpp |
 | data/obstacle/obstacle_decider_attr.cpp |
 | data/config/cfg_func_sw.hpp |
 | data/obstacle/obstacle_decider_attr.hpp |
 | CMakeLists.txt |
Commit
72d3639900cb42c6d339f7bf69736eb8099f709b
by chenranfix: revering in straight line
|
 | data/plan/start_point_data.cpp |
Commit
abc6a188c290e2ade83d974d1c3bdedd7b295b70
by chenranfix: is_in_straight_lane = false during park state
|
 | plan/prepare/prepare_status.cpp |
Commit
9152b3d115c2ef7450db98344b5e702217cd003a
by wuyanjun110fix: Station2Align 补齐准入过滤, 防不该进align场景绕道从station复入
|
 | data/app/fsm/task_fsm/task_fsm.cpp |
Commit
39bf5226ef6719b607a7d0542bf55d778e7d359d
by tangwenqingfeat: SSEP: 集卡多段倒车支持GPU搜索,搜索速度提升5-10倍
|
 | ssep/gpu/heuristic/heuristic_batch_bridge.cu |
 | ssep/coarse_search/gpu_context.cc |
 | ssep/scenarios/tractor_trailer_single_segment_parking_planner.h |
 | ssep/gpu/collision/collision_checker.cuh |
 | ssep/gpu/heuristic/heuristic_batch_bridge.h |
 | ssep/coarse_search/searcher_builders/tractor_trailer_multi_segment_parking_bidirectional_searcher_builder.h |
 | ssep/coarse_search/bidirectional_hybrid_astar_search_engine.cc |
 | ssep/scenarios/tractor_trailer_multi_segment_parking_planner.h |
 | ssep/coarse_search/indexed_priority_queue.h |
 | ssep/coarse_search/evaluator/heuristic_feature_computer.h |
 | ssep/coarse_search/searcher_builders/tractor_trailer_multi_segment_parking_bidirectional_searcher_builder.cc |
 | ssep/coarse_search/batched_priority_queue.h |
 | ssep/coarse_search/evaluator/gpu_bidirectional_kinematic_heuristic_computer.h |
 | ssep/coarse_search/motion_primitive_sampler/composed_motion_primitive_sampler.h |
 | ssep/coarse_search/evaluator/gpu_kinematic_heuristic_computer.h |
 | ssep/coarse_search/gpu_context.h |
 | ssep/coarse_search/searcher_builders/tractor_trailer_bidirectional_searcher_builder.cc |
 | ssep/gpu/device_types.h |
 | ssep/coarse_search/bounded_priority_queue.h |
 | ssep/coarse_search/evaluator/evaluator.h |
 | ssep/coarse_search/evaluator/composite_heuristic_computer.h |
 | ssep/gpu/heuristic/dubins_kernel.cuh |
 | ssep/gpu/heuristic/reeds_shepp_kernel.cuh |
Commit
aaf191484e4e3f33b0ca49fe3b1749ebf8d2e9b2
by tangwenqingfix: SSEP: 修复变道轨迹末端可能画龙的问题
|
 | ssep/scenarios/tractor_trailer_lane_change_planner.h |
Commit
bacd6f75095ebef05f68e0eaf0414f92cb592fee
by tangwenqingchore: SSEP: 解决集卡倒车距离障碍物较近时会倒着进的问题
|
 | ssep/scenarios/tractor_trailer_single_segment_parking_planner.h |
Commit
c2113047bac08d73e9035f2f77f37a6270bc6e0e
by wuyanjun110feat: 新增镇石(ZHEN_SHI)站点地理围栏, IMV前进进出站复用西联场景
|
 | data/config/cfg_region.cpp |
 | data/ssep/forward_ec.cpp |
 | data/config/cfg_region.hpp |
Commit
1e0426b45af918c79f26461ff56f81c6830e8b3b
by wuyanjun110feat: HMI快照按钮触发发SNAP录包(关掉决策结果保存)
- DecisionReaction 加一次性标志 hmi_req_record_snap_(不序列化/不入FromHis) - logic plan循环消费快照按钮标志并当场复位, 修从不复位每帧触发问题 - 快照按钮不再置 save_decision_result - RosSinkRecordTrigger 按钮标志与自动条件一并发 SNAP Trigger
|
 | data/decide/decide_reaction.hpp |
 | data/decide/decide_reaction.cpp |
 | sink/ros_sink_record_trigger.cpp |
 | node/logic.cpp |
Commit
92088627602c301bd21d516bfa3654bcba0cc818
by wuyanjun110fix: 极限变道弯道tunnel沿参考线折线化, 补挂车offtracking裕量与急弯降级
极限变道的 tunnel 约束原本用单条长直线段近似弯曲车道, 弦误差为 L^2*kappa/8 (40m 直线在 R=100m 弯道上偏 2.0m), 而 end tunnel 的 HARD 管道半宽只有车道半宽 加 5cm(约2m), 弯道上管道与真实车道几乎不重叠, 起点/终点被墙关在外面, 导致 搜索必然失败。
- 折线化: 新增 AppendOffsetPolylineTunnel(沿参考线 2m 等 l 偏移折线) / AppendCrossLineTunnel(等 s 断面法向封口线) / CalcMaxCurvature(theta 差分 带符号曲率), 替换四处弦近似: ConstructStartTunnel 两条侧墙+横切线、 ConstructEndTunnel 左右管道+后端封口、ConstructObsTunnel、 GetRealObstacleTunnel。横向量统一为 SL 约定(左正右负), 与旧 GetParallelLine "线段方向右侧为正"、且纵向线反向构造致法向翻转的隐式约定等价 - 弯道裕量: end tunnel 补挂车 offtracking(L^2*kappa/2, 上限 1.2m, 按曲率符号 只放宽弯道内侧, 仅带挂车型); 后向管道长度按曲率收缩(kappa>0.01 起, 最短 8m) - 急弯兜底: kappa>0.02(R<50m) 且端约束为 HARD 且带挂时降级为 SOFT, IMV 不降级 - 顺带修: s 超出参考线长度时线段退化的隐患; SL 法向外推在 |l|*kappa 接近 1 时 跨过曲率中心翻折成幽灵墙, 按局部曲率钳制横向跨度; 曲率采样改用插值的 GetReferencePoint, 避免最近离散点致曲率被静默低估为 0
灰度 use_func_lc_tunnel_curvature_fit / use_func_lc_tunnel_curvature_margin, cfg_func_sw 序列化 version 15。replay 与实车均未验证。
|
 | data/config/cfg_func_sw.cpp |
 | data/ssep/ex_lane_change_ec.cpp |
 | data/config/cfg_func_sw.hpp |
Commit
4f9de105c49de6de1a32e3b706f16133628e6479
by tangwenqingfix: SSEP: 解决终点区域被加入close set导致无法搜到终点的问题
|
 | ssep/coarse_search/motion_primitive_sampler/dubins_path.cc |
 | ssep/coarse_search/motion_primitive_sampler/dubins_path_motion_primitive_sampler.cc |
 | ssep/coarse_search/multi_stage_hybrid_astar_search_engine.cc |
 | ssep/coarse_search/searcher_builders/rigid_truck_general_searcher_builder.cc |
Commit
a56b63fa3d80b8b6fb06b27af17a45be8dbe73dc
by tangwenqingfeat: SSEP: IMV新增基于pass point倒车点的多段搜索
|
 | ssep/coarse_search/searcher_builders/imv_multi_segment_parking_bidirectional_searcher_builder.cc |
 | ssep/coarse_search/searcher_builders/imv_multi_segment_parking_bidirectional_searcher_builder.h |
 | ssep/protos/ssep_scenario_type.proto |
 | ssep/coarse_search/bidirectional_hybrid_astar_search_engine.cc |
 | ssep/scenarios/imv_multi_segment_parking_planner.h |
 | ssep/scenarios/scenario_planner_factory.h |
 | ssep/data_structures/ssep_scenario_type.hpp |
 | ssep/coarse_search/bidirectional_hybrid_astar_search_engine.h |
 | ssep/maps/ogm_config_utils.cc |
Commit
ec9340249732808b8bb0aff790e41a93e52afb95
by wuyanjun110build: Debug 调试信息拆到 .dwo, 链接改用 lld
-fstandalone-debug 让每个 .o 都带完整调试信息, 全量产出 819 个 .o 共 4.7GB、 可执行文件各 1.35GB, 结果 ccache 装不下一次全量(命中率仅 17%), 链接也很慢。 追加 -gsplit-dwarf 把调试信息拆到独立 .dwo, 不再进 .o 和最终二进制。两个 flag 各管一件事(前者决定类型完整性, 后者决定存放位置), 必须同时保留, 调试能力不变。 改动后 .o 总量降到 1.25GB, pnc_node 降到 768MB。
链接器在探测到 lld 时改用 lld, 链接阶段耗时占比从瓶颈降到 0.3%。lld 是独立包 不随 clang 一起装, 所以先问编译器能否使用再启用, 没装的机器回落系统默认链接器。
注意: .dwo 按相对路径记录, 调试器需从 build/ 目录启动才能定位。
|
 | CMakeLists.txt |
Commit
8a87ff88ceb619b57bc3fb2609e3e5d5731598a1
by wuyanjun110fix: BETWEEN_YARD 条件增加前进方向判断, 倒车时不启用
|
 | scenarios/task_condition_evaluator.cpp |
Commit
7268950b8f11da77e93c148cf9e661c396982533
by wuyanjun110feat: 锁站方向判定增加终点在车后倒车分支
终点在车后且对齐余量超过 1m 时直接置为倒车方向, 避免落到 req_step_align 分支后按前进方向规划。
|
 | data/plan/path_direction_data.cpp |
Commit
ffcbaf27b3966535b3120134e0ae867ba6af7098
by wuyanjun110fix: 途径点匹配改按横向距离绝对值取最近中心线
引桥/岸桥/park/buffer/lane_change 五处筛选中心线时, min_l 初值为 DBL_MAX 却用带符号的 l() 比较, 实际选出的是横向偏移最负(最靠右)的那条, 而非横向 最近的。外层已按 fabs(l()) < 2.0 过滤, 内层比较与之矛盾。改为与 UpdateDestAttr / UpdateCurrentAttr 一致的 fabs 写法。
|
 | data/map/reference/center_line.cpp |
Commit
07d92304fb54c78cba2b3372c5c505f2b6438d9d
by wuyanjun110fix: center_line 深度 review 一轮(判定修正+越界防护+去冗余拷贝+清死代码)
判定: - 变道左右邻的 distance 跨越数不同, 原 check_range 被右邻覆盖后左侧实线 检查也复用它, 拆成 left/right 各算各的 - 引桥途径点 s 只算不用, 结果取到最后一个而非最近的, 补上筛选 - seaside/lane_change 比较用 start_match.s() 却存 end_match.s(), 下一轮 比较基准错位, 统一回 start
越界与崩溃防护: - RelationOfRefByIdx 两个重载空容器时 size()-1 下溢, 后面 CHECK 必失败, 改优雅返回 INT32_MAX(46 处调用点已按此值处理) - UpdateSwitchAttr 开头补 empty() 早退, 原先 back() 无保护 - JudgeIsInBlackLane 查的是邻车道, 补 idx==0 查左邻的边界判断 - GetBlackLaneDistanceFromEgo 的 count 是变道相对关系可为负, idx+count 走 size_t 会下溢, 改 int64_t 中转后校验 - SwitchData::curr_lane_idx_/target_lane_idx_ 无类内初始化也不在构造列表, 补 SIZE_MAX
冗余拷贝(均为每帧热路径, CenterLine 含完整点列): - UpdateBlackLaneDistance 深拷贝整个 MltCenterLines - GetBlackLaneDistanceFromEgo 首次 at(idx) 拷贝立即被覆盖 - JudgeIsInBlackLane 按值拷贝邻车道
死代码: - 136 行注释掉的 lane_change 旧实现 - LaneChangePtIsInCurPath(条件括号错位致语义反转, 仅注释块内调用) - buffer 途径点在 center_line 侧的链路(赋值处早已注释, 无消费者); AppReaction::buffer_passing_pts_ 仍在用, 未动
|
 | data/plan/switch_data.hpp |
 | data/map/reference/center_line.cpp |
 | data/map/reference/center_line.hpp |
Commit
f52a80e3e066ada24ab08c9c3386d1f6dcc18f1a
by wuyanjun110feat: 添加车辆最大曲率计算函数,优化运动学处理
|
 | data/config/vehicle_kinematics.hpp |
 | math/dubins_curve/dubins_curve.hpp |
Commit
110e813513452226d19c6b61ef6ade1f9018d9ca
by wuyanjun110fix: 修复 TrajectoryPoints 三处按弧长插值的参数误用
MatchPtByt/MatchPtByS/MatchMultiPtsByMultiS 都把 [0,1] 的比例传给 InterpPtByLinearS, 而后者第三参是绝对弧长, 于是恒命中其 "p0.s() >= s - 0.01" 早退分支 —— 轨迹中段 s 是几十米量级、恒大于比例值, 插值从未真正生效, 取点一直 退化成按离散点向下取整。
- MatchPtByt: 把时间比例换算成对应弧长再传 - MatchPtByS / MatchMultiPtsByMultiS: 本就按 s 查, 直接传 s - MatchMultiPtsByMultiS: 顺带修解引用 end() 的 UB 与 l/u 写反(该函数无调用方) - InterpPtByLinearS: z_ 是被重载的字段(存挂车横摆角, 另有 10000 终止哨兵), 插值真正生效后不能再盲目 lerp —— 任一端越界或两端相差超过 pi 时取下界点
影响面较大: obstacle 预测采样、DP 动态代价、走廊 s<->t 反查、lattice 停车轨迹、 cloud_trajectory 都从"取整"变为"真插值", 数值会有变化, 目前只验证过变道场景。
|
 | data/common/trajectory_point.cpp |
Commit
da4be3630541b4f5bdbf9c92a634bdf9edf092ca
by wuyanjun110fix: 修复 PJPO 变道横移走不完与跨两车道路径扭曲
一、变道横移走不完(车挪 1~3m 就停住, 路径起点段变直) 车的横移速率 ≈ init_dl × v(每帧只执行路径最前约 0.5m), 所以起点斜率一旦被压到 0, 路径形状再对车也不动。两处把它压到 0: - 起点 dl 在变道场景恢复硬约束(新增 soften_init_dl)。dcf2390c1 为治 side-pass 的起点 kappa kink 把 init_dl 软化, 但变道恰恰需要起点持续保持朝目标的横移 斜率, 软化后 QP 每帧把它拉回 0(kSoftInitPenalty 相对 l_ref 权重极低, 拉回几乎 无代价), 实测逐帧 0.113 -> 0.0137 -> 0.00065。 - kInitDlOutwardMax 的"向外"判据改为相对 path_reference_l。原按 init_l 符号判, 会把 PREPARE 段"正朝目标车道靠拢"误判成向外漂移(实测 ref_l=1.57/init_l=0.82/ init_dl=0.06), 起点斜率被夹死在 0.05。 另新增 BoostLaneChangeInitDl: QP 每帧的解从起点起 dl 就单调递减, 而车只执行起点 段, 构成一阶惯性环节(指数收敛、尾巴无限长), 只能在入口给定横移速率下限打破。
二、跨两车道路径扭曲(变一道正常, 变两道路径扭、控制跟不住而触发曲率限速) - 变道 dl 上限放宽到 0.8。单车道 S 曲线峰值仅 0.26, 跨两车道需 ~0.5, 恰好顶死 ±0.5 上限, QP 在约束边界上滑动导致解非光滑。用同一帧 dump 离线扫描, dl 拐点 数与触限程度严格对应: 0.3->7, 0.5->3, 0.8->1; 放宽后实际只用到 0.505。 - config_local 的 lane_change_weight.dl_weight 20->5000(不在本仓库, 需单独同步) 压 dl 峰值治"急": 峰值 0.42->0.30, 拐点 2->0, 收敛距离 18m->44.5m。
三、连带修复 - init_dl 为硬约束时补上夹进 dl 边界。piecewise_jerk_problem 把 dx[0] 上下界同设 为 init 值(硬等式), 与 dx 的 box 约束矛盾时 OSQP 直接 primal infeasible, 而变道 关闭了 all_soft 兜底, 会一路掉到 last_path fallback。 - 起点 dl/ddl 增加 Frenet 直传(参考线几何未变时从上一帧解按 s 取), 绕开 Cartesian 往返; 失败自动回退反算。 - PjpoConstraintOptions 序列化补 enable_all_soft_fallback(版本 2->3)。生产置 false 而结构体默认 true, 之前从不入档, 离线回放会多挂 all_soft 档致复现不可信。 - 新增离线工具 AnalyzeDlBoundEffect(扫 dl 上限/权重, 打印 opt_dl 曲线与拐点数)与 SidePassOutwardClampRegression(比对新旧向外判据并校验解是否退化)。
验证: 实车变道正常、曲率连续; side-pass 回归 72 例 0 退化, 其中 1 例判据差异是对 旧判据误夹的纠正(车朝走廊中点走却被当成向外漂移)。
|
 | algorithm/plan/pjpo.hpp |
 | algorithm/plan/pjpo.cpp |
 | Testing/pjpo_case_test.cpp |
 | tasks/deciders/lat_decider/switching_bounds_decider.cpp |
 | tasks/plan/pjpo_task.cpp |
 | data/plan/start_point_data.cpp |
Commit
8625a005fd68e71ee1e7bdf936f0c6edfc0d9b7e
by wuyanjun110feat: 云端轨迹下发各 lane 的剩余长度与总长度
Traj.msg 的 length_s/total_length_s 与 lane_ids 逐项对齐, 取值来自 第一条引导线的 line_infos: 自车所在 lane 只算未走完的部分, 其后的 lane 取引导线覆盖的全长; 变道备用引导线不下发长度。
|
 | data/plan/cloud_trajectory.hpp |
 | data/plan/cloud_trajectory.cpp |
Commit
30cbd506d639839b8df2171d9863099ea9492048
by wuyanjun110feat: HMI 显示 road boundary 的 shift type
在 road boundary 左边界点旁标注每段的 shift type, 类型跳变处各标一个, 同类型连续断面不重复标。
文字画在 cv::flip 之后(flip 前画会上下颠倒), 沿用 DrawReverseApproach 的两段式: Draw 阶段只缓存 UTM 锚点, DrawText 做坐标变换并出字。
|
 | hmi/draw/draw_path_boundary.cpp |
 | hmi/draw/draw_path_boundary.hpp |
 | hmi/draw/draw_all.cpp |
 | hmi/widget/pnc_mat_shared.cpp |
Commit
3359cfe5cd2ae8331fcf07d12735f02b624b095e
by wuyanjun110fix:修复合并的bug
|
 | hmi/draw/draw_all.cpp |
 | hmi/widget/pnc_mat_shared.cpp |
Commit
e616fd804dd4aad2831290b29e1549a66b725bf2
by tangwenqingchore: KEB: 集卡lane follow优化轨迹末状态使用软约束、调整参数
|
 | offboard/keb_path_opt_cli/keb_simulator.cc |
 | offboard/keb_path_opt_cli/keb_scene_converter.cc |
 | ssep/keb_optimizer/tractor_trailer_keb_optimizer.h |
 | algorithm/plan/keb_optimizer.cpp |
 | algorithm/plan/keb_optimizer.hpp |
 | ssep/keb_optimizer/tractor_trailer_keb_optimizer.cc |
 | tasks/plan/keb_lane_follow_path_task.cpp |
Commit
f8383017ad40e74bba23f8eedfd1ed144d3a18e1
by wuyanjun110feat: 增加堆高机侧向吊具高度防护
按堆高机与车身的横纵向位置及垂直朝向识别侧向作业场景。
场景内采用可配置的 5.5 米吊具高度阈值,并追加角度、横向距离和纵向容错配置及回放序列化。
|
 | tasks/deciders/long_decider/constrain_decider.hpp |
 | config/config_truck/plan.yaml |
 | config/config_car/plan.yaml |
 | tasks/deciders/long_decider/constrain_decider.cpp |
 | data/config/cfg_safe_const.cpp |
 | config/config_imv/plan.yaml |
 | data/config/cfg_safe_const.hpp |
Commit
ca4985937f3eda88a3813000f1dc4ce9e56ab031
by wuyanjun110feat: 显示障碍物朝向与速度方向
修正速度方向访问器,并为外部聚类障碍物初始化速度方向。
HMI 使用较浅、较短的箭头区分 heading 和速度方向,同时过滤场桥虚拟障碍物及聚类障碍物。
|
 | data/obstacle/perception_obstacle.hpp |
 | hmi/draw/draw_perception.cpp |
 | data/obstacle/perception_obstacle.cpp |
Commit
29b6b238475dd1893941953a4293910c95006f40
by wuyanjun110fix: 禁止跳过动态场桥临停约束
在 Range 中增加可跳过属性,并将属性传递到临停约束。\n\n区分动态场桥与静态场桥、未聚类障碍物,动态场桥始终保持停车且拒绝 SS 跳过请求,同时记录告警日志。\n\n修正出堆场场桥障碍物索引读取错误。
|
 | data/constrain/block_data.cpp |
 | data/constrain/block_data.hpp |
 | data/constrain/disable_stop_range.hpp |
 | data/constrain/disable_stop_range.cpp |
 | data/constrain/temporary_stop_data.cpp |
Commit
ad80465330e84bdcb0d01569eb179354d4cb00d1
by wuyanjun110feat: 支持真石 IMV 按途经点多段停车
真石 IMV 进场且携带搜索途经点时,切换到 IMV 多段停车规划器并构建 pass posture。
收紧途经点支持范围,避免真石 CAR/TT 意外启用随机途经点采样,同时保持其他港区原有逻辑不变。
|
 | data/ssep/forward_ec.cpp |
Commit
b6b21565597dd3baf38a62e8f98787370de0198f
by tangwenqingchore: SSEP: Duplicate turning-in-place points in straddle carrier scenario.
|
 | ssep/scenarios/straddle_carrier_pick_vehicle_planner.h |
Commit
0c3fea420317acb226dbc6e783f141e5854c7558
by wuyanjun110fix: 修复直线步进指令立即中断
区分远控命令尚未进入与已退出 MOTION_REMOTE 的状态,保留 STOP/DISABLE 启动阶段请求,使 stop2remote 能在后续周期正常触发。\n\n进入 MOTION_REMOTE 后退出仍立即中断,并保留原有超时保护;同步升级命令序列化版本。
|
 | data/app/cmd/cmd_remote_ctrl.cpp |
 | data/app/cmd/cmd_remote_ctrl.hpp |
Commit
570a5354eaa718c4626c8bd24d1aefad515aa52b
by wuyanjun110fix: 提前窄路靠边车辆绕行判定
缩短动态障碍转静态时的确认帧数和近期位移窗口,降低停车后开始绕行的等待时间。\n\n靠边判断增加障碍外缘到真实道路边界的距离证据,使窄路上绝对横向偏移较小但实际已贴边的车辆能够及时放行;道路边界无效时保留原中心带判据。
|
 | data/config/cfg_lat_plan.hpp |
 | data/obstacle/decision/obstacle_decision.cpp |
Commit
9daeef8eed2c2e3f87c130bd6dde91ed5f784927
by wuyanjun110fix: 防止DP搜索中断后绕行路径错误回正
DP完整路径无解时,从最深层的最优可行节点回溯,仅保留无碰撞、无越界的搜索前缀。
保持失败帧不发起新绕行决策,并让后续路径边界维持中断前的绕行侧位置,避免采用硬约束节点之后的虚假回目标车道段。
|
 | data/dp_poly_path/dp_road_graph.hpp |
 | data/dp_poly_path/dp_road_graph.cpp |
Commit
1f00d3f56d59576d06c495cce42712d94264cf1a
by tangwenqingfix: SSEP: IMVMultiSegmentParking: Use given pass point heading as heuristic search target.
|
 | ssep/scenarios/imv_multi_segment_parking_planner.h |
 | ssep/coarse_search/searcher_builders/imv_multi_segment_parking_bidirectional_searcher_builder.cc |
 | ssep/coarse_search/searcher_builders/imv_multi_segment_parking_bidirectional_searcher_builder.h |
Commit
ea1ed71bd038fc6b4f93a9c4519f1904b52c5564
by wuyanjun110fix: 稳定动态障碍绕行边界切换
隔离 UseHis 最终执行路径与动态交互路径,并改用原始可行 gap 计算窄会车空间,消除历史 DP 反灌造成的边界闪烁。
横向切入采用让速不让道,切入完成或障碍后缘超过自车后释放来源侧车道边界,同时保留 KEB 碰撞防护。
增加 OG 到 obj 的占用交接标签,以历史原始 OG 作为新 box 的成熟度证据;仅旁路 age,侧向与 KEB 构图均保留原始 bbox 且不额外膨胀。
|
 | data/obstacle/obstacle_decider_attr.cpp |
 | data/obstacle/obstacle_decider_attr.hpp |
 | tasks/deciders/lat_decider/trailer_side_pass_decider.cpp |
 | data/obstacle/decision/obstacle_decision.cpp |
 | data/boundary/driving_corridor.hpp |
 | data/boundary/driving_corridor.cpp |
 | tasks/deciders/lat_decider/side_pass_decider.cpp |
 | data/obstacle/decision/obstacle_decision.hpp |
 | tasks/plan/keb_utils.cpp |
Commit
3b0e547e25d4f535a44a0549efb3910dd9a897ae
by wuyanjun110fix: 稳定窄路会车的 DP 采样边界
在自车纵向范围内延后边界收缩,并结合历史可行 gap、当前道路边界、安全缓冲和栅格余量保证最小通行空间。
锁存贴右进入与退出状态,对各采样断面的对向车几何独立做短时保持,避免快速来车时边界逐帧收缩和放开。
|
 | data/boundary/driving_corridor.hpp |
 | data/boundary/driving_corridor.cpp |
Commit
8eb6c8060e6e7bb18987b2f6220a5a1beaa5be5c
by wuyanjun110fix: 过滤未沿道路对齐的会车收边
MEETING 障碍只有通过沿当前道路逆向对齐确认后才能进入动态边界收窄,避免弯道外侧、支路横穿或调头车辆误触发狭窄会车。
补充 along 诊断字段,便于回放区分标签命中与沿路对开确认。
|
 | data/boundary/driving_corridor.cpp |
 | data/obstacle/decision/obstacle_decision.hpp |
 | data/obstacle/decision/obstacle_decision.cpp |
Commit
c5d61657e629d304d2463ecfbb5a47b6b735b6f8
by wuyanjun110fix: 修正 DP 动态障碍横向范围过滤
使用障碍物 SL 横向边界与走廊横向宽度进行比较,修复原先混用 s 边界造成的量纲错误。\n\n避免前方动态障碍被提前过滤,恢复 DP 动态碰撞代价的有效性。
|
 | data/dp_poly_path/trajectory_cost.cpp |
Commit
421fbda76064ca97a6705ec7761467e39bfc8e18
by wuyanjun110feat: 支持受控低速车辆超车
新增清扫车和洒水车类型,支持明确类型授权与可配置速度门控的低速超车候选。\n\n实现单目标锁定、左侧单向 DP 采样、目标扫掠与短时掉帧占用、动作承诺及超车限速,并在切入、会车、路口、倒车和目标失效时统一退出。\n\n按道路姿态区分静止车辆绕行:纵向对齐车辆使用短等待,斜停或横停车辆仅在确认静止并长时间堵塞后开放,避免方向和靠边判据旁路姿态保护。\n\n补充配置、诊断标记和快照序列化兼容。
|
 | data/obstacle/perception_obstacle.hpp |
 | data/plan/side_pass_data.cpp |
 | config/config_imv/plan.yaml |
 | data/boundary/driving_corridor.cpp |
 | hmi/draw/draw_perception.cpp |
 | data/obstacle/decision/obstacle_decision.hpp |
 | data/config/cfg_lat_plan.hpp |
 | data/config/cfg_func_sw.cpp |
 | data/dp_poly_path/dp_road_graph.cpp |
 | data/config/cfg_lat_plan.cpp |
 | tasks/deciders/long_decider/constrain_decider.cpp |
 | data/obstacle/decision/obstacle_decision.cpp |
 | data/obstacle/obstacle_decider_attr.hpp |
 | data/obstacle/perception_obstacle.cpp |
 | data/obstacle/obstacle_decider_attr.cpp |
 | data/plan/side_pass_data.hpp |
 | data/config/cfg_func_sw.hpp |
Commit
49b1706abe4aa9841141d718927fa1ac19f5282c
by wuyanjun110fix: 收紧快速对向会车边界
快速对向车改用到达时刻对齐和局部参考线投影,投影异常时按当前状态匀速回退。
窄会车仅保留真实不足的断面,并按整组更新历史贴右区域,避免移动预测留下长尾收边和跨支路误收缩。
|
 | data/obstacle/decision/obstacle_decision.cpp |
 | data/boundary/driving_corridor.cpp |
 | data/config/cfg_lat_plan.cpp |
 | data/obstacle/decision/obstacle_decision.hpp |
Commit
448bc5c581f7903a3befb73a05404843d9c8a982
by wuyanjun110fix: 保持绕行路径连续性
绕行未获得足够回中空间或本帧 DP 无解时,请求沿用历史路径,避免车辆提前回目标车道后陷入首层无解。
历史路径复用增加参考线锚点与当前可行走廊校验;校验失败时交由上层停车兜底,并修正拖挂路径使用错误参考线的问题。
|
 | tasks/deciders/lat_decider/side_pass_decider.cpp |
 | data/dp_poly_path/dp_road_graph.hpp |
 | tasks/deciders/lat_decider/trailer_side_pass_decider.cpp |
 | data/dp_poly_path/dp_road_graph.cpp |
Commit
75ddb364839d8c88ff2a9e802606bd70a9bac1e4
by wuyanjun110fix: 修正录包触发模块标识
将快照录包触发消息的模块名由 decision 统一为 pnc,与当前节点其他对外消息保持一致。
|
 | sink/ros_sink_record_trigger.cpp |
Commit
8431c0cf7263b8e64e011c14543bcca8c13f58f0
by wuyanjun110fix: 延迟普通出堆场区域切换
普通出堆场场景按挂尾所在路段确定反馈区域,挂尾仍在堆场或堆垛区时保持对应安全档位,完全离开后再切换为出堆场路口。
复用按需计算的挂尾路段查询,避免非相关场景执行额外地图查询,并保持 open space 原有逻辑不变。
|
 | plan/prepare/prepare_status.cpp |
Commit
6ee53cedccd00a851aa1e1bff39897eacd3f4e39
by wuyanjun110fix: 稳定任务切换期间区域状态
车辆静止且 PNC local map 尚未稳定时沿用上一帧区域状态,地图恢复或车辆起步后退出保持。
通过新 routing 接收标志和 task id 变化识别任务首帧,避免场景状态尚未更新时短暂回退到普通道路或路口区域;保留 PARK_LOCK 专用判定优先级。
|
 | plan/prepare/prepare_status.cpp |
Commit
9a38fc7decf718c1b841c65117eda39a4e352472
by chenranfix: serialize WBCA max cost
|
 | data/config/cfg_lat_plan.hpp |
Commit
9d2aba33a792be680c5fc0f7c831bb6c5f799330
by wuyanjun110fix: 低速出桥场景适配锁站安全档位
启用低速安全阈值调整时,将 REGION_OUT_BRIDGE 纳入锁站安全档位转换范围,避免该枚举因数值位于 REGION_STACKER 之后而被遗漏。
|
 | plan/prepare/prepare_status.cpp |
Commit
eef8e9a6d8adc39d76cc7f720a1d7102ebdacd24
by 5081703.crfix: plan from history in low speed
|
 | data/plan/start_point_data.cpp |
Commit
f196f370519ae2951f909d6067cbb575ca6936db
by wuyanjun110fix: 修正场景规划器过早退出判断
修正横向偏差与航向角阈值表达式的括号错误,避免将比较结果传入 fabs 导致左右判断不对称。
补齐出堆场区域切换判断,并校验搜索路径坐标长度,防止错误退出及无效路径访问。
|
 | data/scenario/scenario_planner_action.cpp |
Commit
12a6cda7e67d01b78624b8ff8f5a32cde1234548
by chenranfix: update WBCA for truck and imv
|
 | algorithm/wbca/imv_wbca_manager.cpp |
 | algorithm/wbca/imv_wbca_manager.hpp |
 | algorithm/wbca/path_optimization/truck_path_optimization.cpp |
 | algorithm/wbca/path_optimization/imv_path_optimization.cpp |