CogniPilot

MODELICA LIBRARY · ENGINEERING REFERENCE

Planning/DubinsPolynomial/smoothOffsetCoefficients.mo

Download original .moGitHub source

Documentation: Planning.DubinsPolynomial.smoothOffsetCoefficients

within Planning.DubinsPolynomial;
function smoothOffsetCoefficients
  "Convenience wrapper returning the exact C3 septic seed"
  input Planning.Dubins.Path path;
  input Real startCurvature;
  input Real goalCurvature;
  input Real startCurvatureDerivative = 0.0;
  input Real goalCurvatureDerivative = 0.0;
  output Real offsetCoefficient[3, 8];
protected
  Boolean accepted;
algorithm
  (offsetCoefficient, accepted) := Planning.DubinsPolynomial.jointOptimizeOffsets(
    Planning.Dubins.Path(
      startPosition=path.startPosition,
      startHeading=path.startHeading,
      goalPosition=path.goalPosition,
      goalHeading=path.goalHeading,
      turnRadius=path.turnRadius,
      pathType=path.pathType,
      normalizedSegmentLength=path.normalizedSegmentLength,
      length=path.length,
      feasible=path.feasible),
    startCurvature,
    goalCurvature,
    startCurvatureDerivative,
    goalCurvatureDerivative);
  assert(accepted,
    "Dubins-polynomial smoothing requires a positive-length nominal path");
end smoothOffsetCoefficients;