打通新版Stanley轨迹跟踪闭环并补充实验测试与数据分析脚本

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-06 15:14:12 +08:00
co-authored by Cursor
parent 47973cc94b
commit 19b1e49189
27 changed files with 3482 additions and 22 deletions
@@ -1 +1,51 @@
// 横向控制器的输出
using System;
namespace MultiWheelC.Control.Abstractions
{
/// <summary>
/// 表示横向控制器生成的车体中心目标曲率命令。
/// </summary>
public readonly struct LateralControlCommand
{
/// <summary>
/// 创建统一使用SI单位和左转为正约定的横向控制命令。
/// </summary>
public LateralControlCommand(
double targetCurvaturePerMeter)
{
EnsureFinite(
targetCurvaturePerMeter,
nameof(targetCurvaturePerMeter));
TargetCurvaturePerMeter =
targetCurvaturePerMeter;
}
/// <summary>
/// 获取车体中心目标轨迹曲率,单位为1/m,左转为正、右转为负。
/// </summary>
public double TargetCurvaturePerMeter { get; }
/// <summary>
/// 创建保持直线行驶的零曲率命令。
/// </summary>
public static LateralControlCommand Straight =>
new LateralControlCommand(0.0);
/// <summary>
/// 检查横向曲率命令是否为有限值。
/// </summary>
private static void EnsureFinite(
double value,
string parameterName)
{
if (double.IsNaN(value) ||
double.IsInfinity(value))
{
throw new ArgumentOutOfRangeException(
parameterName,
"横向控制目标曲率必须是有限值。");
}
}
}
}