robonix.skill.qmzs.grasp
skill package
v0.1.3
ARM7AIX 七轴 + LinkerHand O6 抓取技能:固定位姿/感知抓取、放置、释放、 关节复位;手眼标定像素→基座 XY + 人工 Z + 固定四元数,两级接近避免碰倒 物体。MCP 工具:grab/pick/release/home/place + pixel_to_pose/move_to_pixel/ detect_object/move_to_object/calibration_status/snapshot。
qmzs_grasp — ARM7AIX 七轴 + LinkerHand O6 抓取技能
Robonix 技能(skill)包,参考 robonix.skill.jaka_grasp
组织。两部分:
- 高层抓取流程:
grab/pick/release/place/home - 底层视觉/运动辅助:
pixel_to_pose/move_to_pixel/detect_object/move_to_object/calibration_status/snapshot
像素 (u,v) --手眼标定单应--> base_link XY(米)
+ 人工固定 Z / 四元数
→ 两级接近(hover → 下降)
→ O6 手 open/fist 预设
→ pos_command / end_pose 等到位
高层工具
| MCP 工具 | 说明 |
|---|---|
grab |
固定位姿抓取:张手 → hover(grasp_pose.z + approach_height_m)→ 下降到 grasp_pose → 闭合手 → 等待 → 抬回 hover |
pick |
感知抓取:pixel="u,v"(标定分辨率)或 VLM 检测 object → 抓取流程,返回 found/像素/位姿 |
release |
原地张开 O6 手,零机械臂运动 |
place |
放下:hover → 下降到 place_pose(未配置则原地放下)→ 张手 → 抬回 hover |
home |
关节空间移动到 home_joints(joint_command),手不动作 |
底层辅助
| MCP 工具 | 说明 |
|---|---|
pixel_to_pose |
像素 → 位姿,只算不运动(现场核对用) |
move_to_pixel |
像素 → 两级接近运动(不控制手) |
detect_object |
VLM 找自然语言描述的目标 → 像素 + 位姿(不运动) |
move_to_object |
VLM 检测 + 两级接近运动(不控制手) |
calibration_status |
标定/目标/手部/话题/反馈状态 |
snapshot |
抓相机原语一帧存 JPEG |
硬件验证
2026-11-05 在 ARM7AIX 实验台上用本仓库的 qmzs_grasp 技能完成真机抓取:固定
Orbbec 相机 + 桌面手眼标定,pick 定位桌面绿色方块后执行
张手 → hover → 下降 → 闭合 O6 手 → 抬回 hover,方块被夹起并抬离桌面。
详见 VALIDATION.md。
早先提交/PR 信息里 "Real-hardware grasp, place and home motion still require on-site sign-off" 的说法已过时:抓取(pick/grab 流程)已真机验证;
place/release/home不在这次验证范围内,未声明已验证。
依赖
- 标定模型:部署内
config/handeye/calibration.json(固定相机桌面平面单应 + 相机内参 + 覆盖区域;由 handeye-calibration 导出) - 目标设置:
config/handeye/grasp_orientation.json(固定四元数 + 法兰 Z) - arm 原语:
pos_command/end_pose/joint_states/joint_command - 手部原语:
o6_hand的hand/info+hand/move_joint(官方 open/fist 预设) - 相机原语(可选,snapshot/detect/pick 用):
camera/rgb - VLM(可选):OpenAI 兼容多模态端点,
vlm_*配置或环境变量VLM_*
构建与启动
rbnx build -p .
# 或:bash scripts/build.sh
部署 manifest 的 skill: 段声明本包;boot 后停在 INACTIVE,第一次 MCP 调用时
由 executor 激活。配置字段见 config.spec,接口与限制见
CAPABILITY.md;真机验证记录见 VALIDATION.md。
测试
python3 -m unittest discover -s tests -v
测试全部离线(假 bridge / 假手 / 假 OpenAI 端点),不需要 ROS、相机或机械臂。
License
MulanPSL-2.0;见 LICENSE。源文件(Python/Shell)带
SPDX-License-Identifier: MulanPSL-2.0 头。