fix: correct EM observation painter geometry
This commit is contained in:
@@ -23,6 +23,7 @@ internal static class TrajectoryObservationChecks
|
||||
{
|
||||
TrajectoryObservationSettingsChecks.Run();
|
||||
TrajectoryObservationSegmentChecks.Run();
|
||||
VerifiesPainterPoseGeometryReplacesLargeArrow();
|
||||
TrajectoryObservationVisualizationChecks.Run();
|
||||
VerifiesObservationSourceHasNoActuatorCalls();
|
||||
VerifiesObservationSourceUsesRequiredOperatorText();
|
||||
@@ -48,6 +49,7 @@ internal static class TrajectoryObservationChecks
|
||||
VerifiesPublishedPlanningDiagnosticsIncludeTrajectorySummary();
|
||||
VerifiesEmptyChartsReceivePersistentPlanningDiagnostic();
|
||||
VerifiesLsPresentationUsesPathSOnHorizontalAxis();
|
||||
VerifiesPainterStAxesUsePathSAndTimeUnits();
|
||||
VerifiesRollingRequestUsesOnePublishedTrajectorySnapshot();
|
||||
VerifiesActiveSegmentControllerDoesNotCrossSeedTrajectories();
|
||||
VerifiesLoopDefersSegmentAdvanceUntilPlanningIsConsumed();
|
||||
@@ -982,14 +984,52 @@ internal static class TrajectoryObservationChecks
|
||||
|
||||
TrajectoryObservationLsPresentationModel model = TrajectoryObservationLsPresentationModel.Create(charts);
|
||||
|
||||
Verification.Equal("path-S (m)", model.HorizontalAxisLabel, "observer LS horizontal axis label");
|
||||
Verification.Equal("lateral offset (m)", model.VerticalAxisLabel, "observer LS vertical axis label");
|
||||
Verification.Equal("ReferenceS (m)", model.HorizontalAxisLabel, "observer LS horizontal axis label");
|
||||
Verification.Equal("l (m)", model.VerticalAxisLabel, "observer LS vertical axis label");
|
||||
Verification.NearlyEqual(10.25d, model.Samples[0].HorizontalPathS,
|
||||
"observer LS path-S is horizontal");
|
||||
"observer LS shared ReferenceS is horizontal");
|
||||
Verification.NearlyEqual(0.10d, model.Samples[0].VerticalLateralOffset,
|
||||
"observer LS lateral offset is vertical");
|
||||
}
|
||||
|
||||
private static void VerifiesPainterPoseGeometryReplacesLargeArrow()
|
||||
{
|
||||
string presentationPath = Path.Combine(Directory.GetCurrentDirectory(), "ClumsyPilot",
|
||||
"ParkrobTrajplanner", "tarjplanner_movementtest", "TrajectoryObservationPresentation.cs");
|
||||
string source = new UTF8Encoding(false, true).GetString(File.ReadAllBytes(presentationPath));
|
||||
|
||||
Verification.True(!source.Contains("endArrow: true"),
|
||||
"observer painter removes the large terminal arrow");
|
||||
Verification.True(source.Contains("endArrow: false"),
|
||||
"observer painter uses a thin heading ray without an arrow");
|
||||
foreach (string corner in new[]
|
||||
{
|
||||
"frontLeftX", "frontLeftY", "frontRightX", "frontRightY",
|
||||
"rearRightX", "rearRightY", "rearLeftX", "rearLeftY",
|
||||
})
|
||||
{
|
||||
Verification.True(source.Contains(corner), "observer pose outline includes " + corner);
|
||||
}
|
||||
Verification.True(source.Contains("VehicleParameters vehicle"),
|
||||
"observer pose outline is scaled from vehicle parameters");
|
||||
Verification.True(source.Contains("MillimetersPerMeter = 1000f") &&
|
||||
source.Contains("ToMillimeters(path[index - 1].X)") &&
|
||||
source.Contains("ToMillimeters(path[index - 1].Y)") &&
|
||||
source.Contains("ToMillimeters(path[index].X)") &&
|
||||
source.Contains("ToMillimeters(path[index].Y)"),
|
||||
"observer world paths use one millimetres-per-metre factor for x and y");
|
||||
}
|
||||
|
||||
private static void VerifiesPainterStAxesUsePathSAndTimeUnits()
|
||||
{
|
||||
string presentationPath = Path.Combine(Directory.GetCurrentDirectory(), "ClumsyPilot",
|
||||
"ParkrobTrajplanner", "tarjplanner_movementtest", "TrajectoryObservationPresentation.cs");
|
||||
string source = new UTF8Encoding(false, true).GetString(File.ReadAllBytes(presentationPath));
|
||||
|
||||
Verification.True(source.Contains("\"t (s)\""), "observer ST horizontal axis uses seconds");
|
||||
Verification.True(source.Contains("\"PathS (m)\""), "observer ST vertical axis uses true PathS");
|
||||
}
|
||||
|
||||
private static void FreezesBootstrapVehicleForRollingRequests()
|
||||
{
|
||||
DateTimeOffset effectiveAt = new DateTimeOffset(2026, 8, 4, 2, 0, 0, TimeSpan.Zero);
|
||||
|
||||
Reference in New Issue
Block a user