限制单车自转角速度并更新底盘配置与项目文档

This commit is contained in:
2026-07-31 15:34:11 +08:00
parent c1fe73caec
commit 5da31a6c40
12 changed files with 453 additions and 196 deletions
+17 -1
View File
@@ -70,6 +70,8 @@ namespace MedullaAdapter
[AsInitParam(desc = "手动控制夹臂速度系数")] public float ManualArmSpeedFac = 1.0f;
[AsInitParam(desc = "遥控转弯舵角同步限速宽度,单位为度")]
public float ManualSteeringAlignmentSigmaDegrees = 8.0f;
[AsInitParam(desc = "自转最大角速度,单位deg/s")]
public float MaxSpinAngularSpeedDegreesPerSecond = 30f;
[AsInitParam(desc = "轮速诊断日志相对目录")]
public string WheelSpeedDiagnosticDirectory =
@"logs\wheel-speed";
@@ -335,10 +337,24 @@ namespace MedullaAdapter
// 自转时speed表示最外侧舵轮中心的目标切向速度,
// 根据v=omega*r换算为SendXYThSpeed需要的角速度。
var spinOmegaRadiansPerSecond =
var requestedSpinOmegaRadiansPerSecond =
speed /
adapter.MaximumWheelRadiusMeters;
// 对半径换算结果做正负对称限幅,防止遥控速度参数误设后自转过快。
var maximumSpinOmegaRadiansPerSecond =
Math.Max(
0f,
MaxSpinAngularSpeedDegreesPerSecond) *
Math.PI / 180.0;
var spinOmegaRadiansPerSecond =
Math.Max(
-maximumSpinOmegaRadiansPerSecond,
Math.Min(
maximumSpinOmegaRadiansPerSecond,
requestedSpinOmegaRadiansPerSecond));
// 普通安全版SendXYThSpeed只下发角速度,
// 四轮实际舵角未到位时不会开放驱动速度。
if (!adapter.Send(