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

59 lines
2.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>
/// 横向 QP 目标函数的权重快照;权重只影响偏好,不放宽安全约束。
/// </summary>
2026-08-03 22:22:44 +08:00
public sealed class LateralWeights
{
2026-08-11 20:32:31 +08:00
/// <summary>
/// 惩罚偏离参考线横向偏移的权重;无量纲,默认值 10,必须为非负有限值。
/// </summary>
2026-08-03 22:22:44 +08:00
public double ReferenceOffset { get; set; }
2026-08-11 20:32:31 +08:00
/// <summary>
/// 惩罚横向偏移一阶导数的权重;无量纲,默认值 1,必须为非负有限值。
/// </summary>
2026-08-03 22:22:44 +08:00
public double HeadingDeviation { get; set; }
2026-08-11 20:32:31 +08:00
/// <summary>
/// 惩罚横向偏移二阶导数的权重;无量纲,默认值 5,必须为非负有限值。
/// </summary>
2026-08-03 22:22:44 +08:00
public double SecondDerivative { get; set; }
2026-08-11 20:32:31 +08:00
/// <summary>
/// 惩罚横向偏移三阶导数的权重;无量纲,默认值 10,必须为非负有限值。
/// </summary>
2026-08-03 22:22:44 +08:00
public double ThirdDerivative { get; set; }
2026-08-11 20:32:31 +08:00
/// <summary>
/// 惩罚由横向解导出的车辆曲率的权重;无量纲,默认值 5,必须为非负有限值。
/// </summary>
2026-08-03 22:22:44 +08:00
public double Curvature { get; set; }
2026-08-11 20:32:31 +08:00
/// <summary>
/// 惩罚相邻站曲率变化的权重;无量纲,默认值 20,必须为非负有限值。
/// </summary>
2026-08-03 22:22:44 +08:00
public double CurvatureVariation { get; set; }
2026-08-11 20:32:31 +08:00
/// <summary>
/// 惩罚偏离上一轮横向轨迹的权重;无量纲,默认值 5,必须为非负有限值。
/// </summary>
2026-08-03 22:22:44 +08:00
public double PreviousTrajectory { get; set; }
2026-08-11 20:32:31 +08:00
/// <summary>
/// 滚动规划末端横向状态的稳定权重;无量纲,默认值 10,必须为非负有限值。
/// </summary>
2026-08-03 22:22:44 +08:00
public double RollingTerminal { get; set; }
2026-08-11 20:32:31 +08:00
/// <summary>
/// 复制当前横向权重;输入为当前八个标量,输出为无共享可变状态的标量快照,不对数值作校验且不产生失败状态。
/// </summary>
2026-08-03 22:22:44 +08:00
internal LateralWeights Copy()
{
return new LateralWeights
{
ReferenceOffset = ReferenceOffset,
HeadingDeviation = HeadingDeviation,
SecondDerivative = SecondDerivative,
ThirdDerivative = ThirdDerivative,
Curvature = Curvature,
CurvatureVariation = CurvatureVariation,
PreviousTrajectory = PreviousTrajectory,
RollingTerminal = RollingTerminal,
};
}
}