同步中英文README与当前工程结构,并整理文档目录与构建忽略规则

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-04 11:31:14 +08:00
co-authored by Cursor
parent 097853234f
commit 31ec941b07
9 changed files with 276 additions and 338 deletions
+50
View File
@@ -0,0 +1,50 @@
{
"WheelConfig": {
"LeftFront": {
"Position": {
"X": 525.0,
"Y": 200.0
},
"WheelDistance": 85.0,
"AngleLowerLimit": -128.0,
"AngleUpperLimit": 172.0,
"IsDiffWheel": true
},
"RightFront": {
"Position": {
"X": 525.0,
"Y": -200.0
},
"WheelDistance": 85.0,
"AngleLowerLimit": -128.0,
"AngleUpperLimit": 172.0,
"IsDiffWheel": true
},
"LeftRear": {
"Position": {
"X": -525.0,
"Y": 200.0
},
"WheelDistance": 85.0,
"AngleLowerLimit": -126.0,
"AngleUpperLimit": 174.0,
"IsDiffWheel": true
},
"RightRear": {
"Position": {
"X": -525.0,
"Y": -200.0
},
"WheelDistance": 85.0,
"AngleLowerLimit": -130.0,
"AngleUpperLimit": 170.0,
"IsDiffWheel": true
}
},
"MinimumTurningAngleForAckermann": 60.0,
"ControlPointRadius": 500.0,
"MaxSpeed": 1.0,
"AccPerSecond": 0.3,
"DeAccPerSecond": 1.0,
"MinTurnSpeedFac": 0.25
}
+34
View File
@@ -0,0 +1,34 @@
单个停车机器人轨迹测试方案
### 测试对象
单台停车机器人(+50kg负载)
### 测试曲线
1. 直线:前进/后退2m、速度0.3m/s、起点终点静止
2. 转弯:左转/右转组合前进/后退、转弯半径1m、曲率1.0、速度0.3m/s
3. 原地自转:±90°/±180°、角速度10°/s、20°/s、起点终点静止
### 评价指标
横向误差 RMSE、最大横向误差;航向误差 RMSE、最大航向误差;速度误差 RMSE、最大速度偏差;
角速度或转角指令的变化曲线;最终位置误差、最终航向误差
### 展示形式
理想轨迹与实际轨迹对比图、横向/航向误差随时间变化图、参考速度与实际速度对比图、角速度指令曲线
### LQR调参策略
归一化状态/控制量:一般Q、R初始选择对应控制量最大值的平方的倒数
或者使用Bryson’s Rule来给 Q、R 一个很好的初始猜测
贝叶斯优化在仿真中自动调节Q、R参数
ALQR:在线估计最新参数实时重新求解
----------------------------------------
不调参:学习式
### 杂项
1. M层获取实际小车的速度信息与位置信息并保存、使用python可视化来量化跟踪误差
2. 自行车模型改动、过于局限于阿克曼小车的运动学限制
先用 Bryson’s Rule + 贝叶斯优化在仿真里把 Q/R 调到一个不错的基准。
上实车时采用自适应 LQR:在线估计关键参数(尤其是轮胎刚度),实时更新 K。
C# 实现的话:
矩阵运算继续用 Math.NET
贝叶斯优化可以调 Python 库,或者自己写简单版本
在线参数估计(RLS)用 C# 写很轻松
+23
View File
@@ -0,0 +1,23 @@
还可以把底盘的失败原因暴露出来:
/// <summary>
/// 获取最近一次底盘运动分解失败原因。
/// </summary>
public string LastFailureReason =>
_chassis.LastMotionDecomposeFailureReason;
这样调用方可以打印:
if (!adapter.Send(command))
{
Console.WriteLine(
$"底盘命令执行失败:{adapter.LastFailureReason}");
}
需要注意,Detour 差分速度会有噪声,建议在 Python 中:
按固定频率重新采样。
对位置做轻微滤波或使用 Savitzky–Golay 求导。
再计算速度,避免直接逐点差分产生尖峰。
Stanley 和 LQR 必须使用相同的滤波和采样参数。
编译命令:
powershell -NoProfile -ExecutionPolicy Bypass -File .\build-and-package.ps1