74 lines
3.6 KiB
C#
74 lines
3.6 KiB
C#
namespace MultiWheelC.TrajectoryPlanning.EMPlanner;
|
|
|
|
/// <summary>
|
|
/// EM 规划的触发节奏、预测窗口、离散上限和发布样本上限配置;默认值由 <see cref="EmPlannerConfiguration.CreateDefault"/> 为低速泊车协调。
|
|
/// </summary>
|
|
public sealed class SchedulingConfiguration
|
|
{
|
|
/// <summary>
|
|
/// 两次规划触发之间的周期;单位 s,默认值 0.20,必须为正有限值。
|
|
/// </summary>
|
|
public double ReplanPeriodSeconds { get; set; }
|
|
/// <summary>
|
|
/// 单次优化覆盖的预测时间窗口;单位 s,默认值 6,必须为正有限值。
|
|
/// </summary>
|
|
public double TimeHorizonSeconds { get; set; }
|
|
/// <summary>
|
|
/// 单次优化覆盖的最大参考线距离;单位 m,默认值 500,必须为正有限值;滚动规划时还须覆盖制动距离及一个重规划周期内的行程。
|
|
/// </summary>
|
|
public double DistanceHorizonMeters { get; set; }
|
|
/// <summary>
|
|
/// 发布轨迹相邻样本的时间间隔;单位 s,默认值 0.05,必须为正有限值。
|
|
/// </summary>
|
|
public double OutputTimeStepSeconds { get; set; }
|
|
/// <summary>
|
|
/// 单次求解允许使用的超时预算;单位 s,默认值 0.10,必须为正有限值。
|
|
/// </summary>
|
|
public double SolverTimeoutSeconds { get; set; }
|
|
/// <summary>
|
|
/// 与已发布轨迹交接时向前查看的时长;单位 s,默认值 0.30,必须为正有限值。
|
|
/// </summary>
|
|
public double HandoffLookaheadSeconds { get; set; }
|
|
/// <summary>
|
|
/// 接受车辆状态输入的最大时效;单位 s,默认值 0.20,必须为正有限值。
|
|
/// </summary>
|
|
public double MaximumVehicleStateAgeSeconds { get; set; }
|
|
/// <summary>
|
|
/// 纵向优化结点允许的最大时间间距;单位 s,默认值 0.20,必须为正有限值。
|
|
/// </summary>
|
|
public double MaximumOptimizationTimeStepSeconds { get; set; }
|
|
/// <summary>
|
|
/// 横向或走廊优化结点允许的最大空间间距;单位 m,默认值 0.10,必须为正有限值。
|
|
/// </summary>
|
|
public double MaximumOptimizationSpatialStepMeters { get; set; }
|
|
/// <summary>
|
|
/// 一次优化允许的最大结点数量;单位为结点数,默认值 401,必须为不小于 3 的整数。
|
|
/// </summary>
|
|
public int MaximumOptimizationKnotCount { get; set; }
|
|
/// <summary>
|
|
/// 一条发布轨迹允许的最大样本数量;单位为样本数,默认值 5001,必须为不小于 2 的整数。
|
|
/// </summary>
|
|
public int MaximumPublishedSampleCount { get; set; }
|
|
|
|
/// <summary>
|
|
/// 复制当前调度配置;输入为当前标量限制,输出为无共享可变状态的标量快照,不对数值作校验且不产生失败状态。
|
|
/// </summary>
|
|
internal SchedulingConfiguration Copy()
|
|
{
|
|
return new SchedulingConfiguration
|
|
{
|
|
ReplanPeriodSeconds = ReplanPeriodSeconds,
|
|
TimeHorizonSeconds = TimeHorizonSeconds,
|
|
DistanceHorizonMeters = DistanceHorizonMeters,
|
|
OutputTimeStepSeconds = OutputTimeStepSeconds,
|
|
SolverTimeoutSeconds = SolverTimeoutSeconds,
|
|
HandoffLookaheadSeconds = HandoffLookaheadSeconds,
|
|
MaximumVehicleStateAgeSeconds = MaximumVehicleStateAgeSeconds,
|
|
MaximumOptimizationTimeStepSeconds = MaximumOptimizationTimeStepSeconds,
|
|
MaximumOptimizationSpatialStepMeters = MaximumOptimizationSpatialStepMeters,
|
|
MaximumOptimizationKnotCount = MaximumOptimizationKnotCount,
|
|
MaximumPublishedSampleCount = MaximumPublishedSampleCount,
|
|
};
|
|
}
|
|
}
|