同步中英文README与当前工程结构,并整理文档目录与构建忽略规则
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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
|
||||
}
|
||||
@@ -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
@@ -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
|
||||
Reference in New Issue
Block a user