← 返回学习笔记

视觉机械臂标定、通信与实机验收清单

按电源、视觉、标定、运动学、串口、FreeRTOS 与实机安全整理机械臂从仿真到装机的检查顺序。

使用目的

这份清单用于避免把“仿真能跑”“固件能编译”和“实机可安全运行”混为一谈。每完成一项,应保存对应数据、截图、日志或测量结果。

一、供电与接线前置检查

  • 舵机使用独立稳压 5-6 V 大电流电源。
  • 禁止从 STM32F103 的 5 V 或 3.3 V 引脚直接给舵机供电。
  • 舵机电源、控制板和 USB 转 TTL 必须共地。
  • ST-Link 的 SWDIO、SWCLK、GND 和 3.3 V 接线正确,BOOT0 保持 0。
  • 首次上电时按文档要求拆下舵盘或断开机械负载。
  • 实体急停输入能够在任何运行状态下停止动作。
  • 限位开关极性、默认电平和断线状态已经确认。
  • FSR 分压电路输出不会超过 ADC 允许范围。

二、无硬件软件验收

  • Python 环境能够安装 OpenCV、NumPy、Pillow 和 pyserial。
  • 仿真器能够显示红、蓝、黄目标并完成队列处理。
  • 手动、半自动和全自动模式切换正常。
  • 14 项自动测试全部通过。
  • GUI 冒烟测试没有启动或基本交互异常。
  • 固件通过 CMake/Ninja 与 ARM GNU Toolchain 交叉编译。
  • ELF、HEX、BIN、MAP 和容量报告均已生成。
  • Flash 与 RAM 使用量未超过 STM32F103C8T6 上限。

三、视觉检测检查

  • 相机安装固定,运行中不会改变高度、角度或焦距。
  • 红色使用两个色相区间,避免遗漏 H 接近 0 或 179 的目标。
  • 不同灯光下检查 S/V 下限,避免反光和阴影造成误检。
  • 开运算能够去除小噪点,闭运算不会把相邻目标错误连接。
  • 最小轮廓面积与实际目标尺寸匹配。
  • 检测结果保存类别、像素中心、面积和边界框。
  • 目标去重规则不会把同一个物体重复加入队列。

四、四点标定检查

  • 至少选择四个不共线的工作平面点。
  • 像素点和机械臂坐标点使用完全一致的顺序。
  • 标定点覆盖可用工作区,不集中在一个小区域。
  • Homography 矩阵为有效 3x3 矩阵并保存到配置文件。
  • 使用未参与拟合的内部点和边缘点检查毫米误差。
  • 相机移动、焦距变化或工作面高度变化后重新标定。
  • 二维 Homography 只负责平面坐标,抓取高度单独配置。

五、运动学与舵机参数

  • 实测上臂、前臂、底座高度和工具偏移,不直接使用示例参数。
  • 逐个确认底座、肩、肘、腕和夹爪的方向。
  • 记录每个舵机的机械中位、零偏和安全角度范围。
  • 工作空间边界避开基座自撞区和机械极限。
  • 不可达坐标、余弦定理解不存在和角度越界都必须返回失败。
  • 平滑插值的速度和步长不会引起剧烈冲击。
  • 单关节验证完成前不执行组合轨迹。

六、串口协议检查

  • PC 与固件使用相同的版本、消息类型和字段字节序。
  • 帧包含 AA 55 帧头、版本、类型、序号、长度、payload 和 CRC16。
  • payload 长度存在明确上限,坐标编码前检查数值范围。
  • 测试完整帧、拆包、粘包、前缀噪声、坏 CRC 和未知类型。
  • 坏帧丢弃后,解析器能够重新找到下一帧头。
  • 命令序号与 ACK、STATUS 或 ERROR 响应可以对应。
  • 机械臂忙时通信超时能够进入急停或安全状态。

七、FreeRTOS 与固件检查

  • 通信任务只做帧解析和命令处理,不在中断中执行复杂逻辑。
  • 20 ms 控制任务使用固定周期,不因执行时间累积漂移。
  • 传感器任务持续检查限位、FSR 和可选电压状态。
  • 遥测任务按固定周期输出状态,便于上位机判断调度器是否正常。
  • 任务栈单位按 StackType_t 理解,并记录剩余栈空间。
  • 5 路 PWM 频率为 50 Hz,脉宽范围与舵机规格一致。
  • 急停状态锁存后,需要明确的安全复位步骤才能继续动作。

八、FSR 抓取确认与重试

  • 分别测量夹爪空载、轻触和稳定夹持的 ADC 值。
  • 阈值设置在空载和可靠夹持之间,并保留一定噪声余量。
  • FSR 断线、短路或异常值不会被当作抓取成功。
  • 抓取失败最多执行规定次数的偏移重试。
  • 重试仍失败时上报错误,不无限循环。
  • 成功与失败计数能够通过状态帧读取。

九、实机分阶段验收

  1. 控制板、串口、LED 和急停。
  2. 单个舵机的方向、中位和限位。
  3. 多关节低速轨迹与工作空间边界。
  4. 固定相机和四点标定。
  5. 手动关节控制。
  6. 半自动点击抓取。
  7. FSR 抓取确认和失败重试。
  8. 全自动颜色分拣。
  9. 连续运行、通信中断和急停恢复。

十、验收记录应包含什么

  • 硬件版本、固件提交、上位机提交和配置文件版本。
  • 舵机型号、电源电压、最大电流和共地方式。
  • 连杆尺寸、零偏、角度范围、Homography 和 FSR 阈值。
  • 测试场景、目标数量、成功次数、失败原因和急停结果。
  • Flash/RAM、任务栈、串口错误计数和最长连续运行时间。
  • 未通过项目、临时绕过措施和下一次复测条件。

复习总结

机械臂调试应从供电和单关节开始,再进入标定、组合运动和自动分拣。任何一步失败都应回到最近一个已验证边界,而不是同时修改视觉阈值、运动学参数和舵机零偏。

[对应项目:STM32 视觉机械臂自动分拣系统](../../projects/stm32-vision-robot-arm-sorter/)