docs: clarify full-segment EM planning resources

This commit is contained in:
梁薄云
2026-08-11 16:49:14 +08:00
parent 8798ff94ec
commit fa6c7186ad
@@ -149,15 +149,15 @@ public static class EmPlannerFullPipelineDemo
MinimumClearanceReserveMeters = 0.02d, // 来源:固定额外净空;单位 m。 MinimumClearanceReserveMeters = 0.02d, // 来源:固定额外净空;单位 m。
CurvatureLimitRadiusToleranceMeters = 0.002d, // 来源:固定曲率半径容差;单位 m。 CurvatureLimitRadiusToleranceMeters = 0.002d, // 来源:固定曲率半径容差;单位 m。
}; };
smoothingConfiguration.LocalG2Quintic.MinimumWindowLengthMeters = 0.20d; // 单位 m。 smoothingConfiguration.LocalG2Quintic.MinimumWindowLengthMeters = 0.20d; // 最短窗口避免过短过渡放大曲率变化;单位 m。
smoothingConfiguration.LocalG2Quintic.PreferredWindowLengthMeters = 0.50d; // 单位 m。 smoothingConfiguration.LocalG2Quintic.PreferredWindowLengthMeters = 0.50d; // 优先用半米窗口平衡平滑范围与局部性;单位 m。
smoothingConfiguration.LocalG2Quintic.MaximumWindowLengthMeters = 0.80d; // 单位 m。 smoothingConfiguration.LocalG2Quintic.MaximumWindowLengthMeters = 0.80d; // 限制窗口不侵入过远路径几何;单位 m。
smoothingConfiguration.LocalG2Quintic.MaximumDeviationMeters = 0.10d; // 单位 m。 smoothingConfiguration.LocalG2Quintic.MaximumDeviationMeters = 0.10d; // 候选最多偏离粗路径十厘米;单位 m。
smoothingConfiguration.LocalG2Quintic.AbsoluteCurvatureJumpFloorPerMeter = 0.001d; // 单位 1/m。 smoothingConfiguration.LocalG2Quintic.AbsoluteCurvatureJumpFloorPerMeter = 0.001d; // 忽略低于数值噪声量级的曲率跳变;单位 1/m。
smoothingConfiguration.LocalG2Quintic.CurvatureJumpRatioOfMaximum = 0.05d; // 无单位。 smoothingConfiguration.LocalG2Quintic.CurvatureJumpRatioOfMaximum = 0.05d; // 以车辆最大曲率的 5% 识别相对跳变;无单位。
smoothingConfiguration.LocalG2Quintic.MinimumPeakGradientImprovementRatio = 0.20d; // 无单位。 smoothingConfiguration.LocalG2Quintic.MinimumPeakGradientImprovementRatio = 0.20d; // 候选至少改善 20% 峰值曲率梯度;无单位。
smoothingConfiguration.LocalG2Quintic.MaximumVariationCostRegressionRatio = 0.02d; // 无单位。 smoothingConfiguration.LocalG2Quintic.MaximumVariationCostRegressionRatio = 0.02d; // 最多容许 2% 曲率变化代价退化;无单位。
smoothingConfiguration.LocalG2Quintic.MaximumCandidatesPerRegion = 12; // 单位为候选数。 smoothingConfiguration.LocalG2Quintic.MaximumCandidatesPerRegion = 12; // 限制每个区域的搜索工作量;单位为候选数。
var smoothingRequest = new PathSmoothingRequest( var smoothingRequest = new PathSmoothingRequest(
coarseResult.Path, // 来源:成功粗路径;位置与弧长单位 m、航向 rad。 coarseResult.Path, // 来源:成功粗路径;位置与弧长单位 m、航向 rad。
coarseResult.Segments, // 来源:成功粗路径的方向分段;无单位。 coarseResult.Segments, // 来源:成功粗路径的方向分段;无单位。
@@ -206,18 +206,21 @@ public static class EmPlannerFullPipelineDemo
// 步骤 9:冻结 EM 配置 // 步骤 9:冻结 EM 配置
EmPlannerConfiguration emConfiguration = EmPlannerConfiguration.CreateDefault(); EmPlannerConfiguration emConfiguration = EmPlannerConfiguration.CreateDefault();
emConfiguration.Scheduling.TimeHorizonSeconds = 20d; // 固定完整段时间窗口;单位 s emConfiguration.Scheduling.TimeHorizonSeconds = 20d; // 仅供 RollingHorizon 裁剪预测时间;单位 sFullDirectionSegment 使用完整方向段与自适应时间表,不以此截断
emConfiguration.Scheduling.DistanceHorizonMeters = 10d; // 固定空间窗口;单位 m emConfiguration.Scheduling.DistanceHorizonMeters = 10d; // 仅供 RollingHorizon 裁剪参考距离;单位 m;完整方向段范围不受此值截断
emConfiguration.Scheduling.OutputTimeStepSeconds = 0.10d; // 固定发布间隔;单位 s。 emConfiguration.Scheduling.OutputTimeStepSeconds = 0.10d; // 固定发布间隔;单位 s。
emConfiguration.Scheduling.SolverTimeoutSeconds = 5d; // 固定求解预算;单位 s。 emConfiguration.Scheduling.SolverTimeoutSeconds = 5d; // 给离线 OSQP 足够的求解预算上限;单位 s。
emConfiguration.Scheduling.MaximumVehicleStateAgeSeconds = 1d; // 固定状态时效;单位 s。 emConfiguration.Scheduling.MaximumVehicleStateAgeSeconds = 1d; // 固定状态时效;单位 s。
emConfiguration.Longitudinal.MaximumForwardSpeedMetersPerSecond = 0.60d; // 单位 m/s。 emConfiguration.Scheduling.MaximumOptimizationTimeStepSeconds = 0.20d; // 自适应全段时间结点的最大间隔;单位 s。
emConfiguration.Longitudinal.DesiredForwardSpeedMetersPerSecond = 0.40d; // 单位 m/s emConfiguration.Scheduling.MaximumOptimizationSpatialStepMeters = 0.10d; // 自适应全段空间结点的最大间隔;单位 m。
emConfiguration.Longitudinal.MaximumAccelerationMetersPerSecondSquared = 0.40d; // 单位 m/s² emConfiguration.Scheduling.MaximumOptimizationKnotCount = 401; // 限制完整方向段自适应离散的资源上限;单位为结点数
emConfiguration.Longitudinal.MaximumDecelerationMetersPerSecondSquared = 0.40d; // 单位 m/s² emConfiguration.Longitudinal.MaximumForwardSpeedMetersPerSecond = 0.60d; // 限制固定停车场景的前进峰值速度;单位 m/s。
emConfiguration.Longitudinal.MaximumJerkMetersPerSecondCubed = 1.00d; // 单位 m/s³ emConfiguration.Longitudinal.DesiredForwardSpeedMetersPerSecond = 0.40d; // 采用低于上限的低速巡航目标;单位 m/s。
emConfiguration.Solver.MaximumOuterIterations = 5; // 固定顺序凸化迭代数 emConfiguration.Longitudinal.MaximumAccelerationMetersPerSecondSquared = 0.40d; // 限制起步加速以保持低速平顺;单位 m/s²
emConfiguration.Solver.MaximumOsqpIterations = 10000; // 固定 OSQP 迭代数 emConfiguration.Longitudinal.MaximumDecelerationMetersPerSecondSquared = 0.40d; // 为终点精确停车限制减速度幅值;单位 m/s²
emConfiguration.Longitudinal.MaximumJerkMetersPerSecondCubed = 1.00d; // 限制加速度变化以避免突变;单位 m/s³。
emConfiguration.Solver.MaximumOuterIterations = 5; // 限制 LS/ST 顺序凸化的外层资源;单位为迭代次数。
emConfiguration.Solver.MaximumOsqpIterations = 10000; // 为每次 QP 收敛提供明确上限;单位为 OSQP 迭代次数。
// 步骤 10:建立 EM 请求 // 步骤 10:建立 EM 请求
var emRequest = new EmPlanningRequest( var emRequest = new EmPlanningRequest(