1. 机械臂视觉抓取系统V1开发全记录
作为一名长期从事机器人系统开发的工程师,今天我想分享一个完整的机械臂视觉抓取系统开发案例。这个项目基于RK3588开发板(OrangePi 5 Plus)和ROS 2 Humble构建,实现了从视觉检测到机械臂自主抓取的全流程。在开发过程中,我们遇到了各种意料之外的问题,也积累了不少实战经验。
1.1 系统架构设计
整个系统的数据流设计如下:
code复制深度相机
│ RGB + 深度图
▼
YOLO检测节点
│ 识别物体类别+2D包围盒
│ 反投影深度图→3D坐标(x,y,z)[相机系]
│ 手眼标定矩阵→转换到机器人基座系
│ 发布/grasp_targets (GraspTarget[])
▼
Quest VR节点(使用者点选)
│ 在VR中看到物体标注,点击选中
│ 发布/grasp_target/selected (GraspTarget)
▼
grasp_executor_node(核心)
│ 预解算全部IK→检查可行性→执行状态机
│ 发布/robot/joint_stream_raw (串口格式字符串)
▼
robot_serial_driver
│ 透传到串口
▼
机械臂固件(STM32/ESP32)
│ 关节角控制
▼
6DOF机械臂物理运动
这个架构有几个关键设计点:
- 视觉和决策分离:YOLO只负责检测,VR节点负责选择,执行节点负责运动规划
- 模块化设计:每个功能模块都可以独立开发和测试
- 实时性考虑:串口通信保证运动指令的低延迟
1.2 硬件选型与配置
我们选择的硬件配置如下:
| 组件 | 型号 | 关键参数 |
|---|---|---|
| 开发板 | OrangePi 5 Plus | RK3588芯片,8核Cortex-A76/A55 |
| 操作系统 | Ubuntu 22.04 | 适配RK3588的定制版本 |
| ROS版本 | ROS 2 Humble | 长期支持版本 |
| 深度相机 | RealSense D435i | 640x480@30fps,TOF原理 |
| 机械 |
