fix: once the block is placed in the box, set the robotic arm to the folded position.
English
robonix.skill.vertical_grasp_object — 用头部 RGB-D 相机检测桌面物体(YOLO-OBB 检测 彩色方块,或经视觉大模型开放词表检测任意物体),再用 D1 六自由度机械臂 + 五指灵巧手 垂直抓取 / 放置,并可复核结果。
robonix.skill.vertical_grasp_object
调用语义、参数、约束、错误与闭环建议的完整说明见 CAPABILITY.md (注册阶段读入交给 Atlas,pilot 通过 read_capability_doc 取用)。本文件只讲部署与构建。
CAPABILITY.md
read_capability_doc
robonix/skill/vertical_grasp_object/driver
.../detect_objects
.../detect_cubes
.../pick_cube
.../place_cube
.../stack_cubes
.../put_cube_in_container
.../sort_cubes
.../verify_grasp
position 为 base 坐标系(米)的 "x,y" / "x,y,z",或命名位置;半角/全角逗号均可。
position
"x,y"
"x,y,z"
技能是纯 robonix 消费者,on_activate 经 atlas 发现并连接下列原语,全程通过 gRPC 驱动,自身不开串口 / CAN / RealSense:
on_activate
robonix.primitive.beingbeyond.d1.arm
arm/get_state
arm/move_joint
arm/set_head
robonix.primitive.beingbeyond.d1.hand
hand/move_joint
hand/get_state
hand/info
robonix.primitive.beingbeyond.d1.camera
camera/snapshot
IK/FK、YOLO 推理、手眼投影均为本地纯计算(object_detect + block_grasp 已随包提供, FK/IK 来自 beingbeyond_d1_sdk wheel)。detect_objects 与 verify_grasp 额外需要一个 OpenAI 兼容的 VLM 端点;未配置时这两个工具不可用,其余六个不受影响。
object_detect
block_grasp
beingbeyond_d1_sdk
detect_objects
verify_grasp
models/ 下需要两个本机专属文件,见该目录 README.md:
models/
README.md
best.pt
handeye_calib.npz
标定与相机安装位置、桌面高度绑定;头部相机重装或桌面高度变化后必须重新标定。
字段、单位、默认值、失败条件见根目录 config.spec。常调的几项:
config.spec
pick_z
block_height
stack_cubes
table_z_offset
model_path
calib_path
./models/
vlm_base_url
vlm_api_key
vlm_model
VLM_BASE_URL
VLM_API_KEY
VLM_MODEL
vlm_grasp_height
verify_match_radius
grasp_feedback
sort_cubes
false
bash scripts/build.sh # rbnx codegen --mcp,生成 gRPC stub + MCP Request/Response 类 rbnx caps -v | grep vertical_grasp_object rbnx chat # 例:"把红色方块叠到蓝色方块上"
技能类包在 rbnx boot 后停在 INACTIVE,首次 MCP 调用由 executor 触发 CMD_ACTIVATE—— 这是预期状态,不是启动失败。
rbnx boot
INACTIVE
CMD_ACTIVATE
scripts/start.sh 默认用 $HOME/miniconda3/envs/bb_d1_robonix/bin/python3, 可用 VERTICAL_GRASP_OBJECT_PYTHON 覆盖。该环境需要 Python 3.10(SDK wheel 是 cp310 + manylinux_2_17_x86_64)并装有 beingbeyond_d1_sdk(≥ 0.2.0,提供 FK/IK; wheel 随 robot-beingbeyond-d1 部署仓的 tools/func_verify/lib/ 提供)、ultralytics、 numpy/scipy、robonix_api、grpcio。无额外清理动作,故不提供 scripts/stop.sh。
scripts/start.sh
$HOME/miniconda3/envs/bb_d1_robonix/bin/python3
VERTICAL_GRASP_OBJECT_PYTHON
cp310
manylinux_2_17_x86_64
robot-beingbeyond-d1
tools/func_verify/lib/
ultralytics
numpy
scipy
robonix_api
grpcio
scripts/stop.sh
detect_cubes
package_manifest.yaml config.spec CAPABILITY.md README.md scripts/{build.sh, start.sh} capabilities/*.v1.toml + capabilities/lib/vertical_grasp_object/srv/*.srv vertical_grasp_object_skill/{main.py, controller.py, primitive_clients.py, detector.py, vlm_detector.py} object_detect/ # YOLO-OBB 检测 + 几何 block_grasp/ # IK/FK、坐标变换、抓取运动 models/ # best.pt + handeye_calib.npz(本机专属,未提交)
MulanPSL-2.0
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
skill-vertical-grasp-object-rbnx
English
robonix.skill.vertical_grasp_object— 用头部 RGB-D 相机检测桌面物体(YOLO-OBB 检测 彩色方块,或经视觉大模型开放词表检测任意物体),再用 D1 六自由度机械臂 + 五指灵巧手 垂直抓取 / 放置,并可复核结果。调用语义、参数、约束、错误与闭环建议的完整说明见
CAPABILITY.md(注册阶段读入交给 Atlas,pilot 通过read_capability_doc取用)。本文件只讲部署与构建。能力(8 个 MCP 工具 + 生命周期)
robonix/skill/vertical_grasp_object/driver.../detect_objects.../detect_cubes.../pick_cube.../place_cube.../stack_cubes.../put_cube_in_container.../sort_cubes.../verify_graspposition为 base 坐标系(米)的"x,y"/"x,y,z",或命名位置;半角/全角逗号均可。运行时依赖
技能是纯 robonix 消费者,
on_activate经 atlas 发现并连接下列原语,全程通过 gRPC 驱动,自身不开串口 / CAN / RealSense:robonix.primitive.beingbeyond.d1.armarm/get_state、arm/move_joint、arm/set_headrobonix.primitive.beingbeyond.d1.handhand/move_joint、hand/get_state、hand/inforobonix.primitive.beingbeyond.d1.cameracamera/snapshotIK/FK、YOLO 推理、手眼投影均为本地纯计算(
object_detect+block_grasp已随包提供, FK/IK 来自beingbeyond_d1_sdkwheel)。detect_objects与verify_grasp额外需要一个 OpenAI 兼容的 VLM 端点;未配置时这两个工具不可用,其余六个不受影响。资产(必需,未随包提交)
models/下需要两个本机专属文件,见该目录README.md:best.pthandeye_calib.npz标定与相机安装位置、桌面高度绑定;头部相机重装或桌面高度变化后必须重新标定。
配置
字段、单位、默认值、失败条件见根目录
config.spec。常调的几项:pick_z/block_height— 抓取高度与单个方块高度(stack_cubes的落点靠它)。table_z_offset— 对标定桌面 Z 的常量修正(全桌统一偏高就填负值)。model_path/calib_path— 留空则用包内./models/下的默认名。vlm_base_url/vlm_api_key/vlm_model— 留空回退环境变量VLM_BASE_URL/VLM_API_KEY/VLM_MODEL;模型须支持图像输入。vlm_grasp_height— VLM 无深度,按此高度假定抓取 Z。verify_match_radius—verify_grasp判”在该位置”的半径。grasp_feedback— 是否用手指角度反馈判断抓取成功。反馈误报会让sort_cubes松手丢块, 误报时置false。构建与启动
技能类包在
rbnx boot后停在INACTIVE,首次 MCP 调用由 executor 触发CMD_ACTIVATE—— 这是预期状态,不是启动失败。scripts/start.sh默认用$HOME/miniconda3/envs/bb_d1_robonix/bin/python3, 可用VERTICAL_GRASP_OBJECT_PYTHON覆盖。该环境需要 Python 3.10(SDK wheel 是cp310+manylinux_2_17_x86_64)并装有beingbeyond_d1_sdk(≥ 0.2.0,提供 FK/IK; wheel 随robot-beingbeyond-d1部署仓的tools/func_verify/lib/提供)、ultralytics、numpy/scipy、robonix_api、grpcio。无额外清理动作,故不提供scripts/stop.sh。安全
detect_objects/detect_cubes),核对返回坐标合理后再下发抓取。pick_z设置过低会让手指压到桌面。目录
License
MulanPSL-2.0