# 机器狗控制系统集成方案 ## 📋 概述 本文档描述了如何将 `single-test` 测试模块优雅地集成到 `main.py` 中,同时保留原本的任务点模式。 ## 🎯 集成目标 1. **保持兼容性**:完全保留原有的任务1-5执行流程 2. **增加测试功能**:集成子运动函数测试能力 3. **用户友好**:提供直观的模式选择界面 4. **灵活启动**:支持多种启动方式 ## 🏗️ 架构设计 ### 文件结构 ``` task/ ├── main.py # 主程序(已修改) ├── start.py # 启动脚本(新增) ├── config.py # 配置文件(新增) ├── README_INTEGRATION.md # 集成说明(本文件) ├── single-test/ # 测试模块目录 │ ├── __init__.py │ ├── test_main.py │ ├── test_basic_movements.py │ ├── test_arc_movements.py │ ├── test_custom_gait.py │ ├── test_vision_functions.py │ ├── test_complex_movements.py │ └── README.md └── [其他原有文件...] ``` ### 核心组件 #### 1. 主程序 (`main.py`) - **新增模式选择功能**:支持3种运行模式 - **保留原有逻辑**:`legacy_main()` 函数保持原始功能 - **智能导入**:自动检测 `single-test` 模块可用性 - **配置驱动**:使用 `config.py` 管理参数 #### 2. 启动脚本 (`start.py`) - **命令行接口**:支持参数化启动 - **快速启动**:直接启动指定模式 - **帮助系统**:提供详细的使用说明 #### 3. 配置文件 (`config.py`) - **集中配置**:统一管理所有参数 - **分类管理**:按功能模块组织配置 - **动态修改**:支持运行时配置更新 ## 🚀 使用方法 ### 方法1:交互式菜单(推荐) ```bash # 启动主菜单,选择运行模式 python main.py ``` 显示菜单: ``` ====================================================================== 机器狗控制系统 ====================================================================== 🎯 运行模式选择: 1. 完整任务模式 - 运行完整的任务1-5流程 2. 测试模式 - 进入子运动函数测试 3. 交互式测试 - 快速测试单个功能 0. 退出程序 ====================================================================== ``` ### 方法2:命令行启动 ```bash # 直接运行完整任务 python start.py -m task # 直接进入测试模式 python start.py -m test # 直接进入交互式测试 python start.py -m interactive # 使用原始模式(兼容旧版) python start.py -l # 查看帮助 python start.py -h ``` ### 方法3:程序调用 ```python # 在其他Python脚本中调用 from main import run_complete_task_mode, run_test_mode, run_interactive_test_mode # 运行完整任务 run_complete_task_mode() # 运行测试模式 run_test_mode() # 运行交互式测试 run_interactive_test_mode() ``` ## 🔧 三种运行模式 ### 1. 完整任务模式 - **功能**:执行完整的任务1-5流程 - **适用场景**:正式比赛、完整测试 - **特点**:与原始 `main.py` 行为完全一致 ### 2. 测试模式 - **功能**:进入 `single-test` 主菜单 - **适用场景**:功能调试、分模块测试 - **特点**:提供完整的测试套件选择 ### 3. 交互式测试模式 - **功能**:快速命令行测试界面 - **适用场景**:快速验证、单个功能测试 - **特点**:输入编号即可执行测试 ## ⚙️ 配置管理 ### 系统配置 ```python SYSTEM_CONFIG = { 'TIME_SLEEP': 5000, # 默认等待时间 'ENABLE_SINGLE_TEST': True, # 启用测试功能 'DEFAULT_TEST_OBSERVE': True, # 测试详细输出 'SAFETY_CHECK': True, # 安全检查 'AUTO_STAND_UP': True, # 自动站立 } ``` ### 测试配置 ```python TEST_CONFIG = { 'BASIC_MOVEMENT': { 'turn_speed': 0.5, # 转弯速度 'move_speed': 0.3, # 移动速度 'default_distance': 1.0, # 默认距离 }, # ... 其他测试配置 } ``` ### 使用配置 ```python from config import get_config, update_config # 获取配置 time_sleep = get_config('SYSTEM', 'TIME_SLEEP', 5000) # 更新配置 update_config('SYSTEM', 'TIME_SLEEP', 3000) ``` ## 🛡️ 安全特性 ### 1. 模块检测 - 自动检测 `single-test` 模块是否可用 - 模块不存在时优雅降级 - 提供明确的错误提示 ### 2. 异常处理 - 每个模式都有独立的异常处理 - 资源清理保证 - 用户友好的错误信息 ### 3. 兼容性保证 - 保留原始 `legacy_main()` 函数 - 配置文件向后兼容 - 渐进式升级支持 ## 📊 集成优势 ### 1. 无缝集成 - ✅ 保留所有原有功能 - ✅ 新增功能不影响原有逻辑 - ✅ 支持渐进式迁移 ### 2. 用户体验 - ✅ 直观的模式选择界面 - ✅ 多种启动方式 - ✅ 详细的帮助信息 ### 3. 开发友好 - ✅ 模块化设计 - ✅ 配置化管理 - ✅ 易于扩展 ### 4. 运维便利 - ✅ 命令行支持 - ✅ 批处理友好 - ✅ 自动化集成 ## 🔄 迁移指南 ### 从原始版本迁移 1. **备份原始文件** ```bash cp main.py main.py.backup ``` 2. **更新文件** - 替换 `main.py` 为新版本 - 添加 `start.py` 和 `config.py` - 确保 `single-test/` 目录存在 3. **验证功能** ```bash # 测试原始功能 python start.py -l # 测试新功能 python start.py -m test ``` ### 自定义配置 1. **修改配置文件** ```python # config.py SYSTEM_CONFIG['TIME_SLEEP'] = 3000 # 修改默认等待时间 ``` 2. **添加新的测试配置** ```python TEST_CONFIG['CUSTOM_TEST'] = { 'param1': 'value1', 'param2': 'value2', } ``` ## 🐛 故障排除 ### 常见问题 1. **single-test模块未找到** ``` 警告:single-test模块未找到,测试功能将不可用 ``` - 检查 `single-test/` 目录是否存在 - 确认 `single-test/__init__.py` 文件存在 2. **配置文件错误** ``` ModuleNotFoundError: No module named 'config' ``` - 确认 `config.py` 文件存在 - 检查文件语法是否正确 3. **权限问题** ```bash # 给启动脚本添加执行权限 chmod +x start.py ``` ### 调试模式 启用详细日志: ```python # 在config.py中修改 SYSTEM_CONFIG['LOG_LEVEL'] = 'DEBUG' SYSTEM_CONFIG['LOG_TO_FILE'] = True ``` ## 📈 未来扩展 ### 1. 新增运行模式 - 可以轻松添加新的运行模式 - 修改 `print_main_menu()` 和 `main()` 函数 ### 2. 更多测试功能 - 在 `single-test/` 目录添加新的测试模块 - 更新 `test_main.py` 的菜单 ### 3. 高级配置 - 支持配置文件热重载 - 添加配置验证功能 - 支持环境变量配置 ## 📞 技术支持 如果在集成过程中遇到问题,请: 1. 检查本文档的故障排除部分 2. 查看相关模块的README文件 3. 检查日志文件(如果启用) 4. 联系技术支持团队 --- **版本**: 1.0 **更新日期**: 2024年12月 **维护者**: 机器狗控制系统开发团队