Files
ParkingRobot/ClumsyPilot/ParkrobTrajplanner/EMPlanner/Configuration/FrenetConfiguration.cs
T

34 lines
1.4 KiB
C#
Raw Normal View History

2026-08-03 22:22:44 +08:00
namespace MultiWheelC.TrajectoryPlanning.EMPlanner;
2026-08-11 20:32:31 +08:00
/// <summary>
/// 世界坐标与 Frenet 参考之间投影和边界判定的容差配置。
/// </summary>
2026-08-03 22:22:44 +08:00
public sealed class FrenetConfiguration
{
2026-08-11 20:32:31 +08:00
/// <summary>
/// 世界姿态投影到方向段所允许的最大欧氏距离;单位 m,默认值 0.50,必须为正有限值。
/// </summary>
2026-08-03 22:22:44 +08:00
public double MaximumProjectionDistanceMeters { get; set; }
2026-08-11 20:32:31 +08:00
/// <summary>
/// Frenet 重建中 <c>1-kappa*l</c> 的最小绝对安全余量;无量纲,默认值 0.20,必须为大于 0 且小于 1 的有限值。
/// </summary>
2026-08-03 22:22:44 +08:00
public double MinimumFrenetDenominator { get; set; }
2026-08-11 20:32:31 +08:00
/// <summary>
/// 判断投影是否锚定在段边界的距离容差;单位 m,默认值 1e-8,必须为正有限值。
/// </summary>
2026-08-03 22:22:44 +08:00
public double BoundaryAnchorToleranceMeters { get; set; }
2026-08-11 20:32:31 +08:00
/// <summary>
/// 复制当前 Frenet 配置;输入为当前三个标量,输出为无共享可变状态的标量快照,不对数值作校验且不产生失败状态。
/// </summary>
2026-08-03 22:22:44 +08:00
internal FrenetConfiguration Copy()
{
return new FrenetConfiguration
{
MaximumProjectionDistanceMeters = MaximumProjectionDistanceMeters,
MinimumFrenetDenominator = MinimumFrenetDenominator,
BoundaryAnchorToleranceMeters = BoundaryAnchorToleranceMeters,
};
}
}