227 lines
4.7 KiB
Markdown
227 lines
4.7 KiB
Markdown
# 快速测试指南 - 路径跟踪改进
|
||
|
||
## 🎯 验证修复效果
|
||
|
||
修复已完成并编译成功!现在测试新的跟踪性能。
|
||
|
||
## 快速开始
|
||
|
||
### 1. 运行程序
|
||
```bash
|
||
./build/Release/agv_qt_gui.exe
|
||
```
|
||
|
||
### 2. 关键检查点
|
||
|
||
#### ✓ 检查点1: 初始状态对齐
|
||
**测试**: 选择任意路径 → Generate Control
|
||
|
||
**观察**: 绿色trajectory的起点应与红色reference path的起点**完美重合**
|
||
|
||
**修复前**: 起点偏离,有明显gap
|
||
**修复后**: 起点完美对齐 ✓
|
||
|
||
#### ✓ 检查点2: 速度参数生效
|
||
**测试**:
|
||
1. 设置 Max Velocity = 2.0 m/s
|
||
2. 选择 Circle Arc → Generate Control
|
||
3. 查看动画速度
|
||
|
||
**修复前**: 动画慢(实际1.0 m/s)
|
||
**修复后**: 动画快(实际2.0 m/s)✓
|
||
|
||
#### ✓ 检查点3: 跟踪精度
|
||
**测试**: 选择 S-Curve → Generate Control
|
||
|
||
**观察**: trajectory应紧密跟随path,特别是弯道部分
|
||
|
||
**修复前**: 偏差0.5-2.0米,明显偏离
|
||
**修复后**: 偏差<0.2米,紧密贴合 ✓
|
||
|
||
#### ✓ 检查点4: CSV路径
|
||
**测试**:
|
||
1. Load from CSV → 选择 smooth_path.csv
|
||
2. Max Velocity = 1.0 m/s
|
||
3. Generate Control
|
||
|
||
**修复前**:
|
||
- 起点朝向错误(偏17.8度)
|
||
- 持续偏离路径
|
||
- 看起来在"追赶"路径
|
||
|
||
**修复后**:
|
||
- 起点完美对齐 ✓
|
||
- 全程紧密跟踪 ✓
|
||
- 平滑流畅 ✓
|
||
|
||
## 推荐测试序列
|
||
|
||
### 序列1: 基础验证(5分钟)
|
||
```
|
||
1. Straight Line + Pure Pursuit → 检查起点对齐
|
||
2. Circle Arc + Pure Pursuit → 检查圆弧跟踪
|
||
3. S-Curve + Stanley → 检查弯道响应
|
||
```
|
||
|
||
### 序列2: 速度测试(5分钟)
|
||
```
|
||
1. Circle Arc, Velocity=0.5 m/s → 低速精确
|
||
2. Circle Arc, Velocity=1.0 m/s → 标准速度
|
||
3. Circle Arc, Velocity=2.0 m/s → 高速平滑
|
||
```
|
||
|
||
### 序列3: 算法对比(5分钟)
|
||
```
|
||
同一路径(如S-Curve):
|
||
1. Pure Pursuit → 观察跟踪效果
|
||
2. Stanley → 观察跟踪效果
|
||
比较哪个更好
|
||
```
|
||
|
||
### 序列4: 真实场景(5分钟)
|
||
```
|
||
1. Load CSV → smooth_path.csv
|
||
2. Velocity = 1.0 m/s
|
||
3. Pure Pursuit
|
||
4. Generate → 观察完整跟踪
|
||
```
|
||
|
||
## 参数建议
|
||
|
||
### 基础设置(推荐新手)
|
||
```
|
||
Wheelbase: 1.0 m
|
||
Max Velocity: 1.0 m/s
|
||
Max Steering: 45 deg
|
||
Time Step: 0.1 s
|
||
Horizon: 50 s
|
||
Algorithm: Pure Pursuit
|
||
```
|
||
|
||
### 高性能设置(追求速度)
|
||
```
|
||
Max Velocity: 2.0 m/s
|
||
Horizon: 50 s
|
||
Algorithm: Pure Pursuit
|
||
```
|
||
|
||
### 高精度设置(追求精度)
|
||
```
|
||
Max Velocity: 0.5 m/s
|
||
Time Step: 0.05 s
|
||
Horizon: 80 s
|
||
Algorithm: Stanley
|
||
```
|
||
|
||
## 预期结果
|
||
|
||
### 视觉效果
|
||
|
||
**好的跟踪**(修复后):
|
||
```
|
||
- trajectory与path几乎重叠
|
||
- 起点完美对齐
|
||
- 弯道平滑通过
|
||
- 无明显偏离
|
||
```
|
||
|
||
**差的跟踪**(修复前):
|
||
```
|
||
- trajectory在path外侧
|
||
- 起点有gap
|
||
- 弯道切弯或偏离
|
||
- 持续偏差
|
||
```
|
||
|
||
### 数值指标
|
||
|
||
查看统计信息(Statistics面板):
|
||
- Max Velocity: 应与设置一致
|
||
- Control Steps: 约 horizon/dt 步
|
||
- Path Points: 路径点数量
|
||
|
||
## 常见问题
|
||
|
||
### Q: 看不出明显改善?
|
||
A: 检查这些:
|
||
1. **确认重新编译**(exe时间戳应该是最新的)
|
||
2. **尝试CSV路径**(最能体现初始状态修复)
|
||
3. **对比算法**(Pure Pursuit vs Stanley)
|
||
4. **调整速度**(试试2.0 m/s)
|
||
|
||
### Q: 仍有小偏差?
|
||
A: 这是正常的!
|
||
- 控制算法不是零误差
|
||
- 典型误差0.1-0.3米是正常的
|
||
- 重点是**没有累积偏差**
|
||
|
||
### Q: 高速时切弯?
|
||
A: 这是Pure Pursuit的特性
|
||
- 前视距离大 → 切弯
|
||
- 解决:降低速度或换Stanley
|
||
|
||
### Q: 动画不流畅?
|
||
A: 调整Time Step
|
||
- 减小dt → 更流畅(如0.05s)
|
||
- 增大dt → 更快(如0.2s)
|
||
|
||
## 关键改进验证
|
||
|
||
### ✓ 改进1: 初始对齐
|
||
**如何验证**:
|
||
- 放大起点区域
|
||
- trajectory应从path起点开始,无偏移
|
||
|
||
### ✓ 改进2: 速度生效
|
||
**如何验证**:
|
||
- 设置Max Velocity = 2.0
|
||
- 动画应明显比1.0时快
|
||
|
||
### ✓ 改进3: 自适应前视
|
||
**如何验证**:
|
||
- 低速(0.5): 转弯更紧,不切弯
|
||
- 高速(2.0): 转弯平滑,提前预判
|
||
|
||
### ✓ 改进4: Stanley响应
|
||
**如何验证**:
|
||
- 选择Stanley算法
|
||
- 横向偏差修正应很快
|
||
|
||
## 性能基准
|
||
|
||
**良好跟踪的标准**:
|
||
- ✓ 起点对齐误差 < 0.1米
|
||
- ✓ 平均横向误差 < 0.2米
|
||
- ✓ 最大横向误差 < 0.5米
|
||
- ✓ 无明显累积偏差
|
||
- ✓ 视觉上紧密贴合
|
||
|
||
**如果达不到**:
|
||
1. 确认已重新编译
|
||
2. 降低速度至1.0 m/s
|
||
3. 增加Horizon至80秒
|
||
4. 尝试不同算法
|
||
|
||
## 报告问题
|
||
|
||
如果修复后仍有问题,请提供:
|
||
1. 使用的路径类型
|
||
2. 参数设置(速度、算法等)
|
||
3. 观察到的偏差范围
|
||
4. 截图或描述
|
||
|
||
## 成功指标
|
||
|
||
修复成功的标志:
|
||
- ✅ 起点完美对齐
|
||
- ✅ trajectory紧贴path
|
||
- ✅ 速度设置生效
|
||
- ✅ 无明显偏离
|
||
- ✅ 平滑流畅
|
||
|
||
---
|
||
|
||
**开始测试吧!** 🚀
|
||
|
||
建议从"Straight Line"开始,逐步测试更复杂的路径。
|