mi-task/single_test
..

机器狗子运动函数测试套件

这个测试套件提供了对机器狗各种运动功能的独立测试,方便您在实体机器狗上测试和验证各个子运动函数的效果。

📁 文件结构

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使用主菜单推荐

# 在您的主控制脚本中添加:
from single_test.test_main import main_menu

# 初始化控制器和消息对象后
main_menu(ctrl, msg)

方法2运行特定测试套件

# 运行基础运动测试
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交互式测试模式快速测试

# 启动交互式测试模式
from single_test.test_main import run_interactive_test_selection
run_interactive_test_selection(ctrl, msg)

这种模式提供快速命令行界面,支持:

  • 快速输入测试编号(如 11 表示原地旋转90度
  • 快捷命令(h 帮助、s 状态、c 清屏、q 退出)
  • 实时状态查看和帮助信息

方法4运行单个测试函数

# 测试原地旋转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快速命令行测试界面

交互式测试模式特性

  • 快速测试:直接输入两位数编号(如1134
  • 实时状态:输入s查看机器狗当前状态
  • 帮助信息:输入h获取详细帮助
  • 清屏功能:输入c清理屏幕
  • 快速退出:输入q退出测试模式

📊 测试输出

每个测试都会提供详细的输出信息:

  • 位置信息:起始位置、最终位置、移动距离
  • 角度信息:起始角度、最终角度、角度变化
  • 性能指标:移动精度、执行时间、成功率
  • 错误诊断:失败原因、异常信息

⚙️ 配置说明

观察模式

大部分测试函数都支持 observe 参数:

test_turn_90_degrees(ctrl, msg, observe=True)  # 输出详细信息
test_turn_90_degrees(ctrl, msg, observe=False) # 静默执行

自定义参数

某些测试支持自定义参数:

# 自定义速度和距离
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'
    
    • 确保 ctrlmsg 对象已正确初始化
    • 检查机器狗连接状态
  3. 步态文件缺失

    FileNotFoundError: [Errno 2] No such file or directory: 'xxx.toml'
    
    • 确保步态配置文件存在于正确路径
    • 检查 task_3 和 task_4 目录中的 .toml 文件

调试建议

  1. 单步测试:先运行简单的基础运动测试
  2. 观察模式:启用 observe=True 查看详细输出
  3. 逐步验证:按顺序测试各个功能模块
  4. 日志检查:查看日志输出了解执行状态

📝 使用示例

例子1测试原地旋转效果

from single_test.test_basic_movements import test_turn_90_degrees

# 测试原地旋转90度
test_turn_90_degrees(ctrl, msg, observe=True)

例子2测试俯身步态

from single_test.test_custom_gait import test_stoop_gait

# 测试俯身步态
test_stoop_gait(ctrl, msg, observe=True)

例子3运行完整测试套件

from single_test.test_main import main_menu

# 启动菜单系统
main_menu(ctrl, msg)

🛡️ 安全提示

  1. 测试环境:确保在安全的测试环境中运行
  2. 空间要求:某些测试需要较大的活动空间
  3. 监督运行:建议在有人监督的情况下运行测试
  4. 紧急停止:了解如何紧急停止机器狗运动

📞 支持

如果您在使用过程中遇到问题,请:

  1. 检查本文档的故障排除部分
  2. 查看代码注释了解函数参数
  3. 确认机器狗硬件和软件状态正常
  4. 验证所有依赖模块是否正确安装

注意此测试套件基于原始任务1-5的代码提取和整理确保与您的机器狗控制系统兼容。