feat: add local G2 smoothing contracts

This commit is contained in:
梁薄云
2026-07-30 16:12:06 +08:00
parent f19034db1e
commit 3e1126936d
13 changed files with 364 additions and 9 deletions
@@ -17,6 +17,36 @@ public sealed class SmoothedPathPoint
double bodyClearanceMeters,
bool isGearSwitchPoint,
SmoothedPathPointSource source)
: this(
xMeters,
yMeters,
headingRadians,
unwrappedHeadingRadians,
arcLengthMeters,
direction,
geometricCurvaturePerMeter,
vehicleCurvaturePerMeter,
0d,
bodyClearanceMeters,
isGearSwitchPoint,
source)
{
}
/// <summary>创建带有车辆曲率对弧长导数的不可变采样点。</summary>
public SmoothedPathPoint(
double xMeters,
double yMeters,
double headingRadians,
double unwrappedHeadingRadians,
double arcLengthMeters,
TravelDirection direction,
double geometricCurvaturePerMeter,
double vehicleCurvaturePerMeter,
double vehicleCurvatureDerivativePerSquareMeter,
double bodyClearanceMeters,
bool isGearSwitchPoint,
SmoothedPathPointSource source)
{
X = xMeters;
Y = yMeters;
@@ -26,6 +56,7 @@ public sealed class SmoothedPathPoint
Direction = direction;
GeometricCurvature = geometricCurvaturePerMeter;
VehicleCurvature = vehicleCurvaturePerMeter;
VehicleCurvatureDerivative = vehicleCurvatureDerivativePerSquareMeter;
BodyClearance = bodyClearanceMeters;
IsGearSwitchPoint = isGearSwitchPoint;
Source = source;
@@ -55,6 +86,9 @@ public sealed class SmoothedPathPoint
/// <summary>车辆模型使用的有符号曲率,单位 1/m。</summary>
public double VehicleCurvature { get; }
/// <summary>车辆曲率对弧长的导数 dκ/ds,单位 1/m²。</summary>
public double VehicleCurvatureDerivative { get; }
/// <summary>扩大车体后的保守净空下界,单位 m。</summary>
public double BodyClearance { get; }