Skip to main content

一键自检脚本使用说明

📋 概述

本脚本提供机器人系统的全面自检功能,包括下位机、上位机、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

执行步骤

  1. 运行 oneKeySelfCheck.py 脚本
  2. 选择选项 1
  3. 脚本将自动检测以下组件:
    • IMU传感器:检测陀螺仪和加速度计数据
    • 末端执行器:检测灵巧手状态
    • 电机初始化:检查所有电机连接状态
    • 手臂电机:测试手臂各关节电机响应
    • 腿部电机:测试腿部各关节电机响应

实时监控功能

  • 进度表格:实时显示各测试项目状态和耗时
  • 日志记录:自动保存详细日志到 hardware_selfcheck_output_YYYYMMDDHHMM.txt
  • 状态更新:⏳ 等待中 → 🔄 测试中 → ✅ 成功/❌ 失败

⚠️ 重要安全提醒

  • 危险操作:硬件自检完成后会对电机进行小幅度转动
  • 手部电机:随时关注运动是否发生碰撞(碰撞通常由电机零位不对引起)
  • 腿部电机:会进入标定姿态,请将机器人挂高并预留足够腿部空间
  • 异常处理:如遇异常,立即关闭程序或按急停,避免长时间堵转
  • 交互提示:程序会提示用户确认操作,请仔细阅读提示信息

日志查看

  • 终端会打印关键信息
  • 详细日志请查看:hardware_selfcheck_output_YYYYMMDDHHMM.txt
  • 支持点击日志文件链接直接打开

2. 上位机自检

⚠️ 注意:当前上位机检测不可用,正在优化中...

执行步骤

  1. 运行脚本,选择选项 2
  2. 如失败可多次尝试运行
  3. 脚本自动启动并测试:

检测项目详情

  • SSH连接测试:验证与上位机(192.168.26.1)的连接
  • ROS节点启动
    • ros_applicationros_navigation 程序
    • /play_music_node 音响服务节点
    • /record_music_node 麦克风服务节点
  • 音响测试:播放测试音频文件
  • 麦克风测试:录制音频并保存
  • 相机检测:获取RGB和Depth图片信息
  • 雷达检测:获取激光雷达点云数据

注意:如果节点启动失败,请检查上位机相关工程文件

3. H12信号检测

执行步骤

  1. 运行脚本,选择选项 3
  2. 脚本自动执行以下操作:
    • 编译依赖库 h12pro_controller_node
    • 订阅 /h12pro_channel 话题
    • 检测遥控器信号数据
    • 验证信号有效性(非零值检测)

检测结果

  • 成功:收到有效的遥控器信号数据
  • 失败:未收到信号或信号全为零

4. 电机跟随性测试

前置条件

  • ros-control:依赖 hardware_node
  • opensource:依赖 humanoid_controllers

执行步骤

  1. 运行脚本,选择选项 4
  2. 机器初始化会进入标定姿态,需要将机器人挂高
  3. 后续执行会动脚掌,需要给脚掌预留运动空间

测试区域选择

电机跟随性测试支持三种测试模式:

方式一:通过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
  • 误差方差:反映电机控制的稳定性
  • 相似性:目标轨迹与实际轨迹的匹配程度

🔧 故障排除

常见问题

  1. 权限不足:确保使用 sudo 运行脚本
  2. 编译失败:检查依赖包是否正确安装
  3. 硬件连接:确认所有硬件连接正常
  4. 网络问题:检查上位机网络连接
  5. 电机测试异常
    • 检查机器人是否处于安全姿态
    • 确认测试区域选择是否正确
    • 验证电机零位是否正确设置
  6. 图像生成失败:确保先运行电机测试生成数据文件

日志分析

  • 查看时间戳日志文件获取详细错误信息
  • 根据错误代码查找对应解决方案
  • 联系技术支持提供完整日志文件

📝 更新日志

2025.07.04 优化项

  1. ✅ 修复了脚本不支持任意路径下启动的问题
  2. ✅ 修改了IMU检测时,读取数值为0导致后续计算误差的问题
  3. ✅ 修复了电机跟随性自检绘图无法成功的问题
  4. ✅ 修复日志覆盖问题,给日志添加时间戳
  5. ✅ 优化实时进度显示和状态更新

2025.06.06 新增功能

  • ✅ 新增电机跟随性测试模块
  • ✅ 新增H12遥控器信号检测
  • ✅ 新增上位机服务检测

📞 技术支持

如果在脚本运行中遇到无法解决的问题,请联系 唐宁 进行反馈和解决。


版本:2025.06.06
最后更新:2025.07.04
支持系统:Linux (Ubuntu 18.04+)
依赖环境:ROS Melodic/Noetic, Python 3.6+