feat: separate rolling horizons from stop boundaries
This commit is contained in:
@@ -58,11 +58,11 @@ public sealed class EmPlanningService : IEmPlanningService
|
||||
initialAcceleration, configuration, out PlanningHorizonSelection horizon, out string horizonReason);
|
||||
if (horizonStatus != EmPlanningStatus.Success)
|
||||
return Failure(horizonStatus, request, horizonReason);
|
||||
ReferenceHorizonSlice slice = ReferenceHorizonSlicer.Slice(segment, horizon.TerminalReferenceS);
|
||||
ReferenceHorizonSlice slice = ReferenceHorizonSlicer.Slice(segment, horizon.WindowEndReferenceS);
|
||||
EmitDebug(request, "exact horizon and terminal selection succeeded");
|
||||
|
||||
IReadOnlyList<FrenetProjection> previousSeed = ProjectPreviousTrajectorySeed(request.PreviousTrajectory, segment,
|
||||
startProjection.ReferenceS, horizon.TerminalReferenceS, configuration.Frenet.MaximumProjectionDistanceMeters);
|
||||
startProjection.ReferenceS, horizon.WindowEndReferenceS, configuration.Frenet.MaximumProjectionDistanceMeters);
|
||||
var corridorSeed = new List<FrenetProjection>(previousSeed.Count + 1) { startProjection };
|
||||
for (int index = 0; index < previousSeed.Count; index++) corridorSeed.Add(previousSeed[index]);
|
||||
EmitDebug(request, "previous-trajectory seed projection completed");
|
||||
@@ -83,7 +83,8 @@ public sealed class EmPlanningService : IEmPlanningService
|
||||
EmitDebug(request, "LS optimization and validation succeeded");
|
||||
|
||||
var longitudinalInput = new LongitudinalPlanningInput(lateral.Path, segment.Direction, initialProgressSpeed,
|
||||
initialAcceleration, horizon.TerminalType, configuration, Array.Empty<double>(), Array.Empty<double>());
|
||||
initialAcceleration, horizon.TerminalType, horizon.LongitudinalMode, configuration,
|
||||
Array.Empty<double>(), Array.Empty<double>());
|
||||
EmPlanningStatus envelopeStatus = new PathSpeedLimitBuilder().Build(longitudinalInput, out _, out string envelopeReason);
|
||||
if (envelopeStatus != EmPlanningStatus.Success)
|
||||
return Failure(envelopeStatus, request, envelopeReason);
|
||||
|
||||
Reference in New Issue
Block a user