单相机视觉 + VLM 抓取
基于单台 RealSense D435,实现 YOLO11-seg 自动识别抓取与 VLM 自然语言交互抓取;两条感知路线共用 RGB-D 三维定位、PCA 抓取方向估计及 MoveIt2/Pilz 运动执行链路,完成 OpenArmX 右臂桌面抓取。
速览
这个项目面向 OpenArmX 右臂的桌面抓取,提供两条目标获取路线:YOLO11-seg 自动识别并分割目标,接入后续抓取;VLM 路线支持自然语言交互,用户描述要抓取的物体,Qwen-VL 根据图像返回目标框,再由 OpenCV 提取目标区域。
“单相机”指一台固定安装的 RealSense D435 RGB-D 设备,三维定位使用其对齐深度。两条感知路线共用本地几何与运动执行链路:由目标区域、深度、标定外参和 PCA 估计抓取位置与平面朝向,再通过 MoveIt2/Pilz 执行预抓取、直线接近、夹爪闭合和抬升。
机械臂真机抓取演示
桌面目标的真机抓取过程,展示机械臂接近、夹持与抬升动作。
架构
系统由 RGB-D 采集、目标获取、几何估计和运动执行四部分组成。YOLO11-seg 与 VLM 分别作为目标获取入口,向后续模块提供目标掩膜与轮廓。
| 路线 | 目标获取方式 | 交给后续模块的内容 |
|---|---|---|
| YOLO11-seg 自动抓取 | 检测并分割目标实例 | 目标实例掩膜与轮廓 |
| VLM 交互抓取 | Qwen-VL 根据自然语言和 RGB 图像返回目标 bbox,OpenCV 在框内提取目标区域 | 目标掩膜与轮廓 |
YOLO11-seg 提供二维实例分割结果;VLM 负责根据语言选择目标。后续使用相机内参、对齐深度和 ChArUco 标定外参计算目标三维位置,通过 TF 统一坐标系,再结合轮廓 PCA 估计桌面俯抓的平面朝向,构造 grasp_pose。
- 01
采集 D435 RGB、对齐深度与相机内参,使用 ChArUco 标定建立固定相机到机器人参考系的外参关系。
- 02
通过 YOLO11-seg 自动识别,或通过 VLM 自然语言选物,获取目标掩膜与轮廓,接入共同的几何链路。
- 03
在目标附近取得有效深度中位数,结合内参反投影为三维点,再通过 TF 转到机器人参考系。
- 04
根据轮廓 PCA 与方向点的三维变换估计平面抓取朝向,并补偿 TCP 相对规划末端的工具偏置。
- 05
MoveIt2/Pilz 规划预抓取、直线接近、夹爪闭合与直线抬升,完成真机抓取。
流程
选择感知路线
自动抓取使用 YOLO11-seg 识别目标;交互抓取由用户通过自然语言告诉 Qwen-VL 要抓取哪个物体。
获取目标区域
YOLO11-seg 提供实例掩膜,VLM 路线由目标 bbox 接入 OpenCV 分割;两条路线分别得到目标掩膜与轮廓。
三维定位与坐标变换
用有效深度和相机内参完成反投影,再依据标定外参与 TF,将目标位置转换到机器人参考系。
抓取方向与工具补偿
通过轮廓 PCA 和方向点的三维变换估计平面朝向,结合夹爪坐标约定及 TCP 偏置构造可执行的末端位姿。
分段执行
MoveIt2/Pilz 依次执行预抓取、直线接近、夹爪闭合和抬升。
难点
两条感知路线的输出需要与原始 RGB 图像及对齐深度保持一致。目标 bbox 的中心可能落在背景或物体间隙,深度图也可能出现空洞与边缘跳变;目标附近的有效深度中位数有助于降低孤立异常值的影响,但仍需检查采样位置是否对应目标。
PCA 提供物体的主要延展方向,生成夹爪姿态还需要明确开合轴、相机与机器人坐标关系,以及 TCP 工具偏置。细长物体的主轴通常较明确,圆形或近似对称目标的方向则可能不稳定;本项目以桌面俯抓为主,估计三维位置与平面内朝向。
抓取位姿还要满足机械臂可达性与路径约束。位置、朝向、工具定义或碰撞场景中的问题,都可能表现为 IK 或 LIN 规划失败,因此需要分层定位。
调试
抓取位姿与 IK/LIN 失败的分层排查
- 现象
- 调试中出现过 PCA 姿态下预抓取失败,需要区分目标定位、末端朝向与运动规划的问题。
- 排查
- 先通过人工选点验证深度反投影、外参与机械臂执行,再接入自动感知。遇到规划失败时,分别核对目标位置、方向变换、夹爪局部轴、工具偏置与可达性。
- 结论
- 采用感知、几何和执行分层调试的方法;区分终点逆解与整段路径规划问题,再检查候选位姿及运动约束。LIN 与 PTP 的路径性质不同,调整规划方式时需要重新检查接近路径。
成果
项目由我独立完成视觉模型接入、标定、三维定位、抓取方向估计、运动规划与真机联调。YOLO11-seg 自动识别抓取与 VLM 自然语言交互抓取两条入口,均已接入共同的几何与执行链路,完成 OpenArmX 右臂抓起并抬升桌面目标的真机验证。
这套完整任务链路将目标获取与抓取执行分开组织:感知路线决定目标区域,本地几何计算抓取位姿,MoveIt2/Pilz 负责分段规划与执行,便于分别检查识别、定位、朝向和运动规划中的问题。