feat: configure observation visualization

This commit is contained in:
梁薄云
2026-08-06 10:16:48 +08:00
parent 0bc8df9d5e
commit c5ea4f6d91
5 changed files with 201 additions and 14 deletions
@@ -31,16 +31,26 @@ public sealed class TrajectoryObservationMovementTest : MovementTest
public float MapResolutionMm = 50f;
public double ReplanPeriodSeconds = 0.20d;
public double ObserverPeriodSeconds = 0.05d;
public double SolverTimeoutSeconds = 0.50d;
public int MaximumOsqpIterations = 12000;
/// <summary>单次 ST 轨迹覆盖的未来时长,单位 s;默认 6s,不等于观察循环周期。</summary>
public double TimeHorizonSeconds = 6d;
public double SolverTimeoutSeconds = 5.0d;
public int MaximumOsqpIterations = 100000;
/// <summary>单次 ST 轨迹覆盖的未来时长,单位 s;默认 2s,不等于观察循环周期。</summary>
public double TimeHorizonSeconds = 2d;
/// <summary>Trajectory 相邻 TimeFromStart 时间戳的间隔,单位 s;默认 0.10s,不等于观察循环周期。</summary>
public double OutputTimeStepSeconds = 0.10d;
public double VehicleLengthMeters = 0.80d;
public double VehicleWidthMeters = 0.60d;
public double SafetyMarginMeters = 0.05d;
public double MaximumCurvaturePerMeter = 1d / 1.20d;
public bool EnableWebVisualization = false;
public bool AutoOpenWebVisualization = true;
public int WebVisualizationPort = 0;
public double WebRefreshRateHz = 10d;
public int VisualizationHistoryCycleLimit = 60;
public bool EnableNativePainterVisualization = false;
public double DirectionConfirmationSpeedMetersPerSecond = 0.02d;
public int DirectionConfirmationSamples = 3;
public double GearSwitchProjectionToleranceMeters = 0.50d;
public double GearSwitchStopHoldSeconds = 0.20d;
public override void Test()
{
@@ -73,6 +83,16 @@ public sealed class TrajectoryObservationMovementTest : MovementTest
VehicleWidthMeters = VehicleWidthMeters,
SafetyMarginMeters = SafetyMarginMeters,
MaximumCurvaturePerMeter = MaximumCurvaturePerMeter,
EnableWebVisualization = EnableWebVisualization,
AutoOpenWebVisualization = AutoOpenWebVisualization,
WebVisualizationPort = WebVisualizationPort,
WebRefreshRateHz = WebRefreshRateHz,
VisualizationHistoryCycleLimit = VisualizationHistoryCycleLimit,
EnableNativePainterVisualization = EnableNativePainterVisualization,
DirectionConfirmationSpeedMetersPerSecond = DirectionConfirmationSpeedMetersPerSecond,
DirectionConfirmationSamples = DirectionConfirmationSamples,
GearSwitchProjectionToleranceMeters = GearSwitchProjectionToleranceMeters,
GearSwitchStopHoldSeconds = GearSwitchStopHoldSeconds,
};
settings = settings.CreateValidatedSnapshot();
TimeSpan observerPeriod = TimeSpan.FromSeconds(settings.ObserverPeriodSeconds);