feat: add complete jerk-limited stopping math
This commit is contained in:
+7
-3
@@ -205,9 +205,13 @@ public sealed class SequentialLongitudinalOptimizer
|
||||
double horizon = times[knotCount - 1];
|
||||
double requestedSpeed = Math.Min(input.DirectionMaximumSpeedMetersPerSecond,
|
||||
Math.Max(0d, input.TerminalPathS / horizon));
|
||||
LongitudinalStoppingProfile terminalStop = LongitudinalStoppingMath.Calculate(requestedSpeed, 0d,
|
||||
input.Configuration.Longitudinal.MaximumDecelerationMetersPerSecondSquared,
|
||||
input.Configuration.Longitudinal.MaximumJerkMetersPerSecondCubed);
|
||||
if (!JerkLimitedStoppingMath.TryCalculate(requestedSpeed, 0d,
|
||||
input.Configuration.Longitudinal.MaximumDecelerationMetersPerSecondSquared,
|
||||
input.Configuration.Longitudinal.MaximumJerkMetersPerSecondCubed,
|
||||
out JerkLimitedStoppingProfile terminalStop, out _))
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(input));
|
||||
}
|
||||
double cruiseDistance = Math.Max(0d, input.TerminalPathS - terminalStop.DistanceMeters);
|
||||
for (int index = 0; index < knotCount; index++)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user