namespace MultiWheelC.TrajectoryPlanning.EMPlanner; /// /// LS 横向优化的离散、收敛、曲率和边界限制配置。 /// public sealed class LateralConfiguration { /// /// 相邻外层迭代横向解之间允许的最大偏移量;单位 m,默认值 0.05,必须为正有限值。 /// public double MaximumLateralStepPerIterationMeters { get; set; } /// /// 横向偏移对弧长的一阶导数上限;无量纲,默认值 0.50,必须为正有限值。 /// public double MaximumLateralSlope { get; set; } /// /// 横向偏移对弧长的二阶导数上限;单位 1/m,默认值 1,必须为正有限值。 /// public double MaximumLateralSecondDerivativePerMeter { get; set; } /// /// 横向偏移对弧长的三阶导数上限;单位 1/m²,默认值 2,必须为正有限值。 /// public double MaximumLateralThirdDerivativePerSquareMeter { get; set; } /// /// 横向 QP 目标函数的权重集合;无直接单位,必须非空且其每项为非负有限值,默认值为新的 对象。 /// public LateralWeights Weights { get; set; } /// /// 复制当前横向配置;输入为当前标量和权重引用,输出为不共享非空权重对象的可修改快照,权重为 null 时保持为空且不产生失败状态。 /// internal LateralConfiguration Copy() { return new LateralConfiguration { MaximumLateralStepPerIterationMeters = MaximumLateralStepPerIterationMeters, MaximumLateralSlope = MaximumLateralSlope, MaximumLateralSecondDerivativePerMeter = MaximumLateralSecondDerivativePerMeter, MaximumLateralThirdDerivativePerSquareMeter = MaximumLateralThirdDerivativePerSquareMeter, Weights = Weights == null ? null : Weights.Copy(), }; } }