优化差速转舵并增加纵向辨识测试
This commit is contained in:
@@ -16,6 +16,14 @@ namespace MedullaAdapter
|
||||
[UseManualController(manualController = typeof(Remote))]
|
||||
public class DiverCartDefinition : MultiWheelCartDefinition
|
||||
{
|
||||
public DiverCartDefinition()
|
||||
{
|
||||
// 实车配置可覆盖这些回退值;四个舵轮在MotorRoutine中统一读取它们。
|
||||
DiffSteerKp = 0.0042f;
|
||||
DiffSteerKi = 0f;
|
||||
DiffSteerKd = 0f;
|
||||
}
|
||||
|
||||
#region 基本成员
|
||||
public MCUSerialBridge Bridge;
|
||||
|
||||
@@ -65,16 +73,37 @@ namespace MedullaAdapter
|
||||
|
||||
#region 初始参数
|
||||
|
||||
[AsInitParam(desc = "差速转舵目标角速度前馈增益")]
|
||||
// public float DiffSteerRateFeedforwardGain = 0.9f;
|
||||
// 旧参数仅用于兼容已有配置和历史日志,新模型逆前馈不读取它。
|
||||
[AsInitParam(desc = "旧差速转舵目标角速度前馈增益(已停用)")]
|
||||
public float DiffSteerRateFeedforwardGain = 0f;
|
||||
|
||||
[AsInitParam(desc = "差速舵轮左右轮间距,单位mm")]
|
||||
[AsInitParam(desc = "旧前馈差速舵轮左右轮间距,单位mm(已停用)")]
|
||||
public float DiffSteerWheelDistanceMillimeters = 85f;
|
||||
|
||||
[AsInitParam(desc = "差速转舵前馈最大速度,单位m/s")]
|
||||
public float DiffSteerRateFeedforwardMaximumSpeed = 0.03f;
|
||||
|
||||
[AsInitParam(desc = "启用差速舵轮到位迟滞")]
|
||||
public bool EnableDiffSteerSettlingHysteresis = false;
|
||||
|
||||
[AsInitParam(desc = "差速舵轮停止调整误差,单位deg")]
|
||||
public float DiffSteerStopErrorDegrees = 0.5f;
|
||||
|
||||
[AsInitParam(desc = "差速舵轮重新启动误差,单位deg")]
|
||||
public float DiffSteerRestartErrorDegrees = 0.8f;
|
||||
|
||||
[AsInitParam(desc = "差速舵轮到位确认周期数")]
|
||||
public int DiffSteerSettlingCycles = 3;
|
||||
|
||||
[AsInitParam(desc = "启用差速转舵模型逆前馈")]
|
||||
public bool EnableDiffSteerInverseFeedforward = false;
|
||||
|
||||
[AsInitParam(desc = "静止舵轮模型增益")]
|
||||
public float DiffSteerPlantGain = 687.06f;
|
||||
|
||||
[AsInitParam(desc = "模型逆前馈滤波时间常数,单位s")]
|
||||
public float DiffSteerInverseFeedforwardTimeConstantSeconds = 0.15f;
|
||||
|
||||
[AsInitParam(desc = "MCU端口号")] public string MCUPort = "COM4";
|
||||
[AsInitParam(desc = "遥控器速度上限")] public float TransmitterSpeedUpperLimit = 1.0f;
|
||||
[AsInitParam(desc = "遥控器速度下限")] public float TransmitterSpeedLowerLimit = 0.0f;
|
||||
@@ -119,6 +148,18 @@ namespace MedullaAdapter
|
||||
[IOObjectMonitor(desc = "左后舵轮转向合成差速输出")] public float DiffSteerTotalOutputLeftRear;
|
||||
[IOObjectMonitor(desc = "右前舵轮转向合成差速输出")] public float DiffSteerTotalOutputRightFront;
|
||||
[IOObjectMonitor(desc = "右后舵轮转向合成差速输出")] public float DiffSteerTotalOutputRightRear;
|
||||
[IOObjectMonitor(desc = "左前舵轮进入停止调整区")] public bool DiffSteerInStopZoneLeftFront;
|
||||
[IOObjectMonitor(desc = "左后舵轮进入停止调整区")] public bool DiffSteerInStopZoneLeftRear;
|
||||
[IOObjectMonitor(desc = "右前舵轮进入停止调整区")] public bool DiffSteerInStopZoneRightFront;
|
||||
[IOObjectMonitor(desc = "右后舵轮进入停止调整区")] public bool DiffSteerInStopZoneRightRear;
|
||||
[IOObjectMonitor(desc = "左前舵轮连续到位周期数")] public int DiffSteerSettlingCountLeftFront;
|
||||
[IOObjectMonitor(desc = "左后舵轮连续到位周期数")] public int DiffSteerSettlingCountLeftRear;
|
||||
[IOObjectMonitor(desc = "右前舵轮连续到位周期数")] public int DiffSteerSettlingCountRightFront;
|
||||
[IOObjectMonitor(desc = "右后舵轮连续到位周期数")] public int DiffSteerSettlingCountRightRear;
|
||||
[IOObjectMonitor(desc = "左前舵轮已到位")] public bool DiffSteerSettledLeftFront;
|
||||
[IOObjectMonitor(desc = "左后舵轮已到位")] public bool DiffSteerSettledLeftRear;
|
||||
[IOObjectMonitor(desc = "右前舵轮已到位")] public bool DiffSteerSettledRightFront;
|
||||
[IOObjectMonitor(desc = "右后舵轮已到位")] public bool DiffSteerSettledRightRear;
|
||||
[IOObjectMonitor(desc = "灯光模式")] public int LightMode = 0;
|
||||
[IOObjectMonitor(desc = "实体遥控器当前速度倍率")] public float TransmitterSpeed = 0.3f;
|
||||
[IOObjectMonitor(desc = "轮速诊断记录已启用")]
|
||||
@@ -154,6 +195,14 @@ namespace MedullaAdapter
|
||||
internal float DiffSteerTargetRateRightFrontDegreesPerSecond;
|
||||
internal float DiffSteerTargetRateRightRearDegreesPerSecond;
|
||||
internal float DiffSteerFeedforwardDeltaTimeMilliseconds;
|
||||
internal float DiffSteerInverseFeedforwardRawLeftFront;
|
||||
internal float DiffSteerInverseFeedforwardRawLeftRear;
|
||||
internal float DiffSteerInverseFeedforwardRawRightFront;
|
||||
internal float DiffSteerInverseFeedforwardRawRightRear;
|
||||
internal float DiffSteerInverseFeedforwardFilteredLeftFront;
|
||||
internal float DiffSteerInverseFeedforwardFilteredLeftRear;
|
||||
internal float DiffSteerInverseFeedforwardFilteredRightFront;
|
||||
internal float DiffSteerInverseFeedforwardFilteredRightRear;
|
||||
internal bool DiffSteerFeedforwardLimitedLeftFront;
|
||||
internal bool DiffSteerFeedforwardLimitedLeftRear;
|
||||
internal bool DiffSteerFeedforwardLimitedRightFront;
|
||||
|
||||
Reference in New Issue
Block a user