289 lines
8.4 KiB
Markdown
289 lines
8.4 KiB
Markdown
# 机器狗子运动函数测试套件
|
||
|
||
这个测试套件提供了对机器狗各种运动功能的独立测试,方便您在实体机器狗上测试和验证各个子运动函数的效果。
|
||
|
||
## 📁 文件结构
|
||
|
||
```
|
||
single-test/
|
||
├── README.md # 说明文档
|
||
├── test_main.py # 主测试脚本(菜单入口)
|
||
├── test_basic_movements.py # 基础运动测试
|
||
├── test_arc_movements.py # 弧形运动测试
|
||
├── test_custom_gait.py # 自定义步态测试
|
||
├── test_vision_functions.py # 视觉功能测试
|
||
└── test_complex_movements.py # 复杂运动测试
|
||
```
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 方法1:使用主菜单(推荐)
|
||
|
||
```python
|
||
# 在您的主控制脚本中添加:
|
||
from single_test.test_main import main_menu
|
||
|
||
# 初始化控制器和消息对象后
|
||
main_menu(ctrl, msg)
|
||
```
|
||
|
||
### 方法2:运行特定测试套件
|
||
|
||
```python
|
||
# 运行基础运动测试
|
||
from single_test.test_basic_movements import run_basic_movement_tests
|
||
run_basic_movement_tests(ctrl, msg)
|
||
|
||
# 运行弧形运动测试
|
||
from single_test.test_arc_movements import run_arc_movement_tests
|
||
run_arc_movement_tests(ctrl, msg)
|
||
```
|
||
|
||
### 方法3:交互式测试模式(快速测试)
|
||
|
||
```python
|
||
# 启动交互式测试模式
|
||
from single_test.test_main import run_interactive_test_selection
|
||
run_interactive_test_selection(ctrl, msg)
|
||
```
|
||
|
||
这种模式提供快速命令行界面,支持:
|
||
- 快速输入测试编号(如 `11` 表示原地旋转90度)
|
||
- 快捷命令(`h` 帮助、`s` 状态、`c` 清屏、`q` 退出)
|
||
- 实时状态查看和帮助信息
|
||
|
||
### 方法4:运行单个测试函数
|
||
|
||
```python
|
||
# 测试原地旋转90度
|
||
from single_test.test_basic_movements import test_turn_90_degrees
|
||
test_turn_90_degrees(ctrl, msg)
|
||
|
||
# 测试俯身步态
|
||
from single_test.test_custom_gait import test_stoop_gait
|
||
test_stoop_gait(ctrl, msg)
|
||
```
|
||
|
||
## 📋 测试模块详解
|
||
|
||
### 1. 基础运动测试 (`test_basic_movements.py`)
|
||
|
||
测试机器狗的基本运动能力:
|
||
|
||
- **原地旋转测试**
|
||
- `test_turn_90_degrees()` - 原地旋转90度
|
||
- `test_turn_180_degrees()` - 原地旋转180度
|
||
|
||
- **直线移动测试**
|
||
- `test_go_straight_1m()` - 直线前进1米
|
||
- `test_go_straight_backward_1m()` - 直线后退1米
|
||
|
||
- **侧向移动测试**
|
||
- `test_lateral_movement()` - 左右侧向移动
|
||
|
||
- **组合运动测试**
|
||
- `test_square_movement()` - 正方形移动路径
|
||
|
||
### 2. 弧形运动测试 (`test_arc_movements.py`)
|
||
|
||
测试机器狗的弧形转弯和绕行能力:
|
||
|
||
- **弧形转弯测试**
|
||
- `test_arc_turn_90_degrees()` - 90度弧形转弯
|
||
- `test_arc_turn_180_degrees()` - 180度弧形转弯
|
||
- `test_arc_turn_right_90_degrees()` - 右转90度弧形转弯
|
||
|
||
- **复杂弧形运动**
|
||
- `test_s_curve_movement()` - S形弯道运动
|
||
- `test_different_radius_turns()` - 不同半径弧形转弯测试
|
||
|
||
### 3. 自定义步态测试 (`test_custom_gait.py`)
|
||
|
||
测试机器狗的特殊步态和姿态:
|
||
|
||
- **基础步态**
|
||
- `test_normal_walking_gait()` - 正常行走步态
|
||
- `test_stone_road_gait()` - 石板路步态(快步跑)
|
||
|
||
- **特殊步态**
|
||
- `test_stoop_gait()` - 俯身步态(通过低矮障碍)
|
||
- `test_climbing_gait()` - 爬坡步态(上坡运动)
|
||
|
||
- **姿态控制**
|
||
- `test_lie_down_stand_up()` - 躺下和站起动作
|
||
|
||
### 4. 视觉功能测试 (`test_vision_functions.py`)
|
||
|
||
测试机器狗的视觉识别和分析能力:
|
||
|
||
- **目标识别**
|
||
- `test_qr_code_scanning()` - QR码扫描功能
|
||
- `test_arrow_detection()` - 箭头检测功能
|
||
|
||
- **环境分析**
|
||
- `test_horizontal_line_detection()` - 横线检测功能
|
||
- `test_sky_analysis()` - 天空区域分析
|
||
- `test_yellow_area_analysis()` - 黄色区域分析
|
||
|
||
- **运动中视觉**
|
||
- `test_movement_with_qr_scanning()` - 移动过程中的QR码扫描
|
||
|
||
### 5. 复杂运动测试 (`test_complex_movements.py`)
|
||
|
||
测试机器狗的高级运动组合:
|
||
|
||
- **复杂轨迹**
|
||
- `test_continuous_curves()` - 连续弯道运动(模拟任务2)
|
||
- `test_figure_eight_movement()` - 8字形运动
|
||
- `test_spiral_movement()` - 螺旋运动
|
||
|
||
- **精确控制**
|
||
- `test_precision_positioning()` - 精确定位测试
|
||
- `test_dual_track_following()` - 双轨道跟随
|
||
|
||
- **组合运动**
|
||
- `test_combined_movements()` - 多动作组合测试
|
||
|
||
## 🎮 菜单系统
|
||
|
||
主测试脚本提供了友好的菜单界面:
|
||
|
||
```
|
||
============================================================
|
||
机器狗子运动函数测试套件
|
||
============================================================
|
||
🎯 测试套件:
|
||
1. 基础运动测试 - 旋转、直线移动、侧向移动
|
||
2. 弧形运动测试 - 弧形转弯、S形弯道
|
||
3. 自定义步态测试 - 俯身、爬坡、石板路步态
|
||
4. 视觉功能测试 - QR码、箭头、横线检测
|
||
5. 复杂运动测试 - 连续弯道、8字形、螺旋运动
|
||
|
||
🔧 测试选项:
|
||
6. 运行所有测试 - 执行完整测试流程
|
||
7. 单个测试选择 - 菜单式选择单个测试
|
||
8. 交互式测试模式 - 快速命令行测试
|
||
0. 退出
|
||
============================================================
|
||
💡 提示: 建议先从基础运动测试开始,确保机器狗处于安全位置
|
||
```
|
||
|
||
### 三种测试模式
|
||
|
||
1. **测试套件模式**:选择1-5,运行完整的测试套件
|
||
2. **单个测试选择**:选择7,进入详细的单个测试菜单
|
||
3. **交互式测试模式**:选择8,快速命令行测试界面
|
||
|
||
### 交互式测试模式特性
|
||
|
||
- **快速测试**:直接输入两位数编号(如`11`、`34`)
|
||
- **实时状态**:输入`s`查看机器狗当前状态
|
||
- **帮助信息**:输入`h`获取详细帮助
|
||
- **清屏功能**:输入`c`清理屏幕
|
||
- **快速退出**:输入`q`退出测试模式
|
||
|
||
## 📊 测试输出
|
||
|
||
每个测试都会提供详细的输出信息:
|
||
|
||
- **位置信息**:起始位置、最终位置、移动距离
|
||
- **角度信息**:起始角度、最终角度、角度变化
|
||
- **性能指标**:移动精度、执行时间、成功率
|
||
- **错误诊断**:失败原因、异常信息
|
||
|
||
## ⚙️ 配置说明
|
||
|
||
### 观察模式
|
||
大部分测试函数都支持 `observe` 参数:
|
||
```python
|
||
test_turn_90_degrees(ctrl, msg, observe=True) # 输出详细信息
|
||
test_turn_90_degrees(ctrl, msg, observe=False) # 静默执行
|
||
```
|
||
|
||
### 自定义参数
|
||
某些测试支持自定义参数:
|
||
```python
|
||
# 自定义速度和距离
|
||
go_straight(ctrl, msg, distance=2.0, speed=0.3, observe=True)
|
||
|
||
# 自定义转弯半径
|
||
arc_turn_around_hori_line(ctrl, msg, angle_deg=90, radius=0.5)
|
||
```
|
||
|
||
## 🔧 故障排除
|
||
|
||
### 常见问题
|
||
|
||
1. **导入错误**
|
||
```
|
||
ModuleNotFoundError: No module named 'xxx'
|
||
```
|
||
- 确保路径设置正确
|
||
- 检查父目录是否包含所需模块
|
||
|
||
2. **控制器未初始化**
|
||
```
|
||
AttributeError: 'NoneType' object has no attribute 'xxx'
|
||
```
|
||
- 确保 `ctrl` 和 `msg` 对象已正确初始化
|
||
- 检查机器狗连接状态
|
||
|
||
3. **步态文件缺失**
|
||
```
|
||
FileNotFoundError: [Errno 2] No such file or directory: 'xxx.toml'
|
||
```
|
||
- 确保步态配置文件存在于正确路径
|
||
- 检查 task_3 和 task_4 目录中的 .toml 文件
|
||
|
||
### 调试建议
|
||
|
||
1. **单步测试**:先运行简单的基础运动测试
|
||
2. **观察模式**:启用 `observe=True` 查看详细输出
|
||
3. **逐步验证**:按顺序测试各个功能模块
|
||
4. **日志检查**:查看日志输出了解执行状态
|
||
|
||
## 📝 使用示例
|
||
|
||
### 例子1:测试原地旋转效果
|
||
```python
|
||
from single_test.test_basic_movements import test_turn_90_degrees
|
||
|
||
# 测试原地旋转90度
|
||
test_turn_90_degrees(ctrl, msg, observe=True)
|
||
```
|
||
|
||
### 例子2:测试俯身步态
|
||
```python
|
||
from single_test.test_custom_gait import test_stoop_gait
|
||
|
||
# 测试俯身步态
|
||
test_stoop_gait(ctrl, msg, observe=True)
|
||
```
|
||
|
||
### 例子3:运行完整测试套件
|
||
```python
|
||
from single_test.test_main import main_menu
|
||
|
||
# 启动菜单系统
|
||
main_menu(ctrl, msg)
|
||
```
|
||
|
||
## 🛡️ 安全提示
|
||
|
||
1. **测试环境**:确保在安全的测试环境中运行
|
||
2. **空间要求**:某些测试需要较大的活动空间
|
||
3. **监督运行**:建议在有人监督的情况下运行测试
|
||
4. **紧急停止**:了解如何紧急停止机器狗运动
|
||
|
||
## 📞 支持
|
||
|
||
如果您在使用过程中遇到问题,请:
|
||
|
||
1. 检查本文档的故障排除部分
|
||
2. 查看代码注释了解函数参数
|
||
3. 确认机器狗硬件和软件状态正常
|
||
4. 验证所有依赖模块是否正确安装
|
||
|
||
---
|
||
|
||
**注意**:此测试套件基于原始任务1-5的代码提取和整理,确保与您的机器狗控制系统兼容。 |