一键自检脚本使用说明
📋 概述
本脚本提供机器人系统的全面自检功能,包括下位机、上位机、H12信号检测和电机跟随性测试。脚本采用模块化设计,支持实时进度显示和详细日志记录。
🚀 快速开始
环境准备
# 跳转到脚本目录
cd {project_path}/tools/check_tool/selfCheckScripts
# 启动脚本(需要root权限)
sudo python3 oneKeySelfCheck.py
🔧 功能模块
1. 下位机自检
前置条件
在ros-control中编译相关库:
catkin build hardware_node
在opensource中编译:
catkin build humanoid_controllers
source devel/setup.bash
执行步骤
- 运行
oneKeySelfCheck.py脚本 - 选择选项
1 - 脚本将自动检测以下组件:
- IMU传感器:检测陀螺仪和加速度计数据
- 末端执行器:检测灵巧手状态
- 电机初始化:检查所有电机连接状态
- 手臂电机:测试手臂各关节电机响应
- 腿部电机:测试腿部各关节电机响应
实时监控功能
- 进度表格:实时显示各测试项目状态和耗时
- 日志记录:自动保存详细日志到
hardware_selfcheck_output_YYYYMMDDHHMM.txt - 状态更新:⏳ 等待中 → 🔄 测试中 → ✅ 成功/❌ 失败
⚠️ 重要安全提醒
- 危险操作:硬件自检完成后会对电机进行小幅度转动
- 手部电机:随时关注运动是否发生碰撞(碰撞通常由电机零位不对引起)
- 腿部电机:会进入标定姿态,请将机器人挂高并预留足够腿部空间
- 异常处理:如遇异常,立即关闭程序或按急停,避免长时间堵转
- 交互提示:程序会提示用户确认操作,请仔细阅读提示信息
日志查看
- 终端会打印关键信息
- 详细日志请查看:
hardware_selfcheck_output_YYYYMMDDHHMM.txt - 支持点击日志文件链接直接打开
2. 上位机自检
⚠️ 注意:当前上位机检测不可用,正在优化中...
执行步骤
- 运行脚本,选择选项
2 - 如失败可多次尝试运行
- 脚本自动启动并测试:
检测项目详情
- SSH连接测试:验证与上位机(192.168.26.1)的连接
- ROS节点启动:
ros_application和ros_navigation程序/play_music_node音响服务节点/record_music_node麦克风服务节点
- 音响测试:播放测试音频文件
- 麦克风测试:录制音频并保存
- 相机检测:获取RGB和Depth图片信息
- 雷达检测:获取激光雷达点云数据
注意:如果节点启动失败,请检查上位机相关工程文件
3. H12信号检测
执行步骤
- 运行脚本,选择选项
3 - 脚本自动执行以下操作:
- 编译依赖库
h12pro_controller_node - 订阅
/h12pro_channel话题 - 检测遥控器信号数据
- 验证信号有效性(非零值检测)
- 编译依赖库
检测结果
- 成功:收到有效的遥控器信号数据
- 失败:未收到信号或信号全为零
4. 电机跟随性测试
前置条件
- ros-control:依赖
hardware_node包 - opensource:依赖
humanoid_controllers包
执行步骤
- 运行脚本,选择选项
4 - 机器初始化会进入标定姿态,需要将机器人挂高
- 后续执行会动脚掌,需要给脚掌预留运动空间
测试区域选择
电机跟随性测试支持三种测试模式:
方式一:通过oneKey主菜单选择(推荐)
# 在主菜单中选择选项 4
# 然后选择测试区域:
# 1. 上半身测试 (7对电机: 手臂和躯干)
# 2. 下半身测试 (6对电机: 腿部)
# 3. 全身测试 (13对电机: 完整系统)
方式二:直接运行脚本选择区域
# 进入电机测试目录
cd tools/check_tool/selfCheckScripts/motorTest
# 选择测试区域
python3 motorFollowTest.py --region full # 全身测试(默认)
python3 motorFollowTest.py --region upper # 上半身测试
python3 motorFollowTest.py --region lower # 下半身测试
测试区域详情
| 测试区域 | 电机对数 | 电机组合 | 说明 |
|---|---|---|---|
| 上半身 | 7对 | 12-19, 13-20, 14-21, 15-22, 16-23, 17-24, 18-25 | 测试手臂和躯干电机 |
| 下半身 | 6对 | 0-6, 1-7, 2-8, 3-9, 4-10, 5-11 | 测试腿部电机 |
| 全身 | 13对 | 上半身+下半身所有电机 | 完整系统测试 |
测试详情
- 测试内容:电机跟随精度、误差方差、相似性分析
- 实时监控:显示当前电机对进度和周期信息
- 日志记录:保存到
motor_follow_output_YYYYMMDDHHMM.log - 进度显示:实时进度条和状态更新
生成测试图像
# 进入图像生成目录
cd motorTest
python3 drawWaveform.py
生成的图像保存在 /grouped_images 文件夹中,包括:
- 电机跟随波形图(输入信号vs响应信号)
- 误差分析图
- 相似性对比图
5. 查看自检说明
- 运行脚本,选择选项
5 - 直接显示README文档内容
- 按回车键返回主菜单
🏗️ 脚本架构
模块化设计
- 硬件检测模块:
hardwareTest/hardwareSelfCheck.py - 上位机检测模块:
slaveTest/OneKeyCheckSlaveComputer.py - 电机测试模块:
motorTest/motorFollowTest.py - 通用工具模块:
common/common_utils.py
智能路径处理
- 自动检测项目根目录
- 支持任意路径启动脚本
- 自动查找编译产物(devel/installed)
实时交互
- 支持Ctrl+C安全退出
- 输入线程处理用户命令
- 信号处理确保进程清理
日志管理
- 时间戳命名避免覆盖
- 支持点击链接直接打开
- 详细错误信息记录
📊 测试结果解读
硬件自检结果
- ✅ 通过:所有组件正常工作
- ❌ 失败:检查具体错误信息,可能需要重新连接硬件或重启系统
电机跟随性测试结果
- 跟随精度:数值越小越好,通常应小于0.1
- 误差方差:反映电机控制的稳定性
- 相似性:目标轨迹与实际轨迹的匹配程度
🔧 故障排除
常见问题
- 权限不足:确保使用
sudo运行脚本 - 编译失败:检查依赖包是否正确安装
- 硬件连接:确认所有硬件连接正常
- 网络问题:检查上位机网络连接
- 电机测试异常:
- 检查机器人是否处于安全姿态
- 确认测试区域选择是否正确
- 验证电机零位是否正确设置
- 图像生成失败:确保先运行电机测试生成数据文件
日志分析
- 查看时间戳日志文件获取详细错误信息
- 根据错误代码查找对应解决方案
- 联系技术支持提供完整日志文件
📝 更新日志
2025.07.04 优化项
- ✅ 修复了脚本不支持任意路径下启动的问题
- ✅ 修改了IMU检测时,读取数值为0导致后续计算误差的问题
- ✅ 修复了电机跟随性自检绘图无法成功的问题
- ✅ 修复日志覆盖问题,给日志添加时间戳
- ✅ 优化实时进度显示和状态更新
2025.06.06 新增功能
- ✅ 新增电机跟随性测试模块
- ✅ 新增H12遥控器信号检测
- ✅ 新增上位机服务检测
📞 技术支持
如果在脚本运行中遇到无法解决的问题,请联系 唐宁 进行反馈和解决。
版本:2025.06.06
最后更新:2025.07.04
支持系统:Linux (Ubuntu 18.04+)
依赖环境:ROS Melodic/Noetic, Python 3.6+