优化轨迹制动与轮速反馈并补充实验记录和中英文说明
This commit is contained in:
@@ -16,8 +16,8 @@
|
||||
| 阶段 | 当前状态 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| 1. 单车基本功能 | 联调中 | 已接入运动控制、MCU 通信、轮组反馈、急停 IO、电池、灯光、遥控和诊断代码,仍需持续实车验证 |
|
||||
| 2. 增加停车功能 | 部分开展 | 已提供夹臂控制、限位、报警和测试入口;轮胎识别、钻车和完整停车流程尚未实现 |
|
||||
| 3. 优化跟踪方法 | 已启动 | 已加入直线、圆弧、S 型、蟹行测试、实验 CSV 记录和 Python 绘图工具 |
|
||||
| 2. 增加停车功能 | 部分开展 | 已接入夹臂控制、限位和报警;夹臂动作测试当前已注释,轮胎识别、钻车和完整停车流程尚未实现 |
|
||||
| 3. 优化跟踪方法 | 已启动 | 保留旧版 `SendMotion` 测试,并新增 Stanley 横向 + PID 纵向控制、组合运动计划、实验 CSV 和新版绘图工具 |
|
||||
| 4. 多车场景 | 暂不实施 | 多车参数和预研内容未参与当前编译,当前版本不提供多车联动 |
|
||||
|
||||
## 项目简介
|
||||
@@ -41,7 +41,8 @@ MyParking 是一个面向多轮停车机器人底盘的 C# 工程,覆盖上层
|
||||
| 单车运动 | 直线、圆弧、S 型轨迹,前进、蟹行和原地旋转 |
|
||||
| 底盘命令 | `SendMotion`、`SendXYThSpeed` 和虚拟阿克曼测试后端 |
|
||||
| 模式切换 | 正常、蟹行、自转模式;切换时先停车、预转舵轮并等待到位 |
|
||||
| 跟踪控制 | 终点跟踪、直线跟踪、基于 Detour 的直线跟踪和蟹行运动坐标系跟踪 |
|
||||
| 跟踪控制 | 旧版终点/直线/蟹行跟踪;新版 Stanley 横向控制、PID 纵向控制、前后 GCP 分配、轨迹偏离保护和终点状态判定 |
|
||||
| 状态估计 | Detour 位姿与差分速度;新版实验可保留 Detour 位姿并用舵轮反馈解算、低通滤波后的车体纵向速度替代其差分纵向速度 |
|
||||
| 夹臂 | 左右夹臂速度命令、位置反馈、软限位、驱动报警、实体/虚拟遥控和目标位置动作 |
|
||||
| MCU 通信 | 串口桥打开、复位、版本/状态查询、数字 IO、CAN/串口同步收发和异步回调 |
|
||||
| 驱动与反馈 | 8 个驱动电机和 4 个舵轮的命令、速度/位置/舵角反馈及远程帧状态 |
|
||||
@@ -99,7 +100,9 @@ MyParking/
|
||||
│ └── commonusage/ # CommonUsage 公共底盘库源码
|
||||
├── ref/ # 构建生成的 CommonUsage.dll(勿手工覆盖)
|
||||
├── data_process/
|
||||
│ ├── 轨迹测试处理/ # 轨迹对比、误差、速度与角速度绘图
|
||||
│ ├── plot_new_controller_experiment.py # 新版控制器实验六子图工具
|
||||
│ ├── 新版控制器轨迹测试处理/ # 新版绘图工具的 Python 依赖
|
||||
│ ├── 旧版控制器轨迹测试处理/ # 旧版轨迹对比、误差和响应绘图
|
||||
│ └── 电机响应处理/ # 舵轮响应快照分析
|
||||
├── docs/
|
||||
│ ├── SteeringConstraintDesign.md # 舵轮限位设计讨论
|
||||
@@ -186,7 +189,7 @@ output/M/MedullaAdapter.dll
|
||||
| CAN | 1 路,`500000 bit/s`,重试时间 `10 ms` |
|
||||
| 串口 | 3 路,`9600 bit/s`,接收帧时间 `10 ms` |
|
||||
| 电池通信端口索引 | `3` |
|
||||
| 自转最大角速度 | `30 deg/s` |
|
||||
| 遥控自转最大角速度 | `30 deg/s` |
|
||||
| 轮速诊断目录 | `logs\wheel-speed` |
|
||||
|
||||
`docs/chassis参考.json` 是底盘参数样例;源码中尚未发现自动加载该文件的入口,实车参数仍应以宿主实际配置为准。
|
||||
@@ -195,20 +198,20 @@ output/M/MedullaAdapter.dll
|
||||
|
||||
## 单车测试入口
|
||||
|
||||
`MultiWheelC/MovementTests.cs` 当前注册:
|
||||
`MultiWheelC/Experiments` 当前启用以下宿主测试入口:
|
||||
|
||||
- `准备:四个舵轮与车头方向一致`
|
||||
- `SendMotion:连续前进4m`
|
||||
- `SendXYThSpeed:原地自转90°`
|
||||
- `SendXYThSpeed:原地自转180°`
|
||||
- `SendXYThSpeed:输入角度原地自转`
|
||||
- `SendMotion:左转90°半径2m圆弧`
|
||||
- `SendMotion:蟹行直线4m`
|
||||
- `SendMotion:蟹行左转90°半径2m圆弧`
|
||||
- `SendMotion:4m S型曲线`
|
||||
- `夹臂关闭测试`
|
||||
- `夹臂启动测试`
|
||||
- `新版控制器:4m直线轨迹跟踪`
|
||||
- `新版控制器:直线-左半圆-直线轨迹跟踪`
|
||||
- `新版控制器:直线-圆弧-折线组合测试`
|
||||
|
||||
这些测试由 Clumsy 宿主的测试界面执行,并不是 `dotnet test` 自动化测试。运动测试会按配置记录实验编号、参考轨迹、Detour 位姿和控制命令。
|
||||
这些测试由 Clumsy 宿主的测试界面执行,并不是 `dotnet test` 自动化测试。运动测试会按配置记录实验编号、参考轨迹、Detour 位姿、轮速解算速度和控制命令。`MultiWheelC/Experiments/ClampTests.cs` 中的夹臂测试目前整段注释,不会注册到宿主。
|
||||
|
||||
## 实验数据分析
|
||||
|
||||
@@ -224,14 +227,23 @@ Medulla 的轮速诊断可通过 `StartWheelSpeedDiagnostic` / `StopWheelSpeedDi
|
||||
logs/wheel-speed/
|
||||
```
|
||||
|
||||
### 轨迹测试处理
|
||||
### 新版控制器轨迹处理
|
||||
|
||||
```powershell
|
||||
python -m pip install -r data_process\轨迹测试处理\requirements.txt
|
||||
python data_process\轨迹测试处理\run_all_plots.py "路径\实验1.csv" "路径\实验2.csv" --output-dir "路径\plots"
|
||||
python -m pip install -r data_process\新版控制器轨迹测试处理\requirements.txt
|
||||
python data_process\plot_new_controller_experiment.py "路径\实验1.csv" "路径\实验2.csv" --output-dir "路径\plots"
|
||||
```
|
||||
|
||||
默认重采样频率为 `20 Hz`,滤波窗口为 `0.55 s`,可通过 `--frequency` 和 `--window` 调整。
|
||||
该工具为每份新版控制器 CSV 生成一张六子图总图,包含轨迹、横向/航向误差、速度和前后 GCP/四舵轮转角。省略 CSV 参数时,它只扫描 `data_process` 根目录及其 `data` 子目录。
|
||||
|
||||
### 旧版控制器轨迹处理
|
||||
|
||||
```powershell
|
||||
python -m pip install -r data_process\旧版控制器轨迹测试处理\requirements.txt
|
||||
python data_process\旧版控制器轨迹测试处理\run_all_plots.py "路径\实验1.csv" "路径\实验2.csv" --output-dir "路径\plots"
|
||||
```
|
||||
|
||||
旧版工具默认重采样频率为 `20 Hz`,滤波窗口为 `0.55 s`,可通过 `--frequency` 和 `--window` 调整。
|
||||
|
||||
### 电机响应处理
|
||||
|
||||
|
||||
Reference in New Issue
Block a user