robonix.skill.jaka
skill
v0.1.0
JAKA Mini grab/release + camera-driven pick skill.
README
skill-jaka-rbnx@main
skill-jaka-rbnx — JAKA Mini grab/release/pick skill
Robonix skill for the fixed-base JAKA Mini + TG-9801 gripper. Three synchronous MCP tools:
jaka_grab— open gripper → hover → descend to the configured grasp pose → close gripper → settle → lift back to hover and hold. No perception; poses come from the deploy config.jaka_release— open the gripper in place, zero arm motion.jaka_pick— locate a named object with the camera (yolo11-obb or open-vocabulary VLM backend,detect_scheme) and grasp it: 2D hand-eye homography maps the detection to arm base_link XY. Requires on-site calibration (homography_matrix, detector config — see config.spec); reports a clear config error until then.
Everything is driven through the jaka_arm primitive's ROS 2 contracts
(pos_command / joint_command), resolved via atlas. See CAPABILITY.md for
frames, units and known limitations.
Build
rbnx build -p ../skill-jaka-rbnx # from the deploy repo
# or standalone (needs grpcio-tools on the codegen interpreter):
RBNX_CODEGEN_PYTHON=/home/nvidia/robot-jaka-mini/.venv/bin/python \
rbnx build -p /home/nvidia/skill-jaka-rbnx
Outputs rbnx-build/codegen/{proto_gen, robonix_mcp_types, ros2_idl}.
Boot
The deploy manifest declares the skill in its skill: section; soma stage 2
sends only CMD_INIT (skill stays INACTIVE) and the executor activates it on
the first tool call. Static checks after bash start.sh:
rbnx caps -v # jaka [INACTIVE] until first call
rbnx tools # jaka_grab / jaka_release / jaka_pick listed
rbnx contracts -p robonix/skill/jaka
rbnx describe --provider jaka
Staged acceptance
- Read the current TCP pose for calibration:
ros2 topic echo /jaka/end_pose --once(ROS_DOMAIN_ID=0 RMW_IMPLEMENTATION=rmw_zenoh_cpp). - release first (gripper moves, arm must not):
rbnx ask "open the gripper"— sampleend_posebefore/after; position delta must be ≤ 2 mm. Observe the fingers opening. - grab with small descent steps: set
grasp_posex/y/rpy from step 1, hover z = 0.275, then lower grasp z stepwise 0.20 → 0.175 → 0.15 → 0.125 (AIIT verified desktop height, config.yaml:34), rebooting between edits. - Write the calibrated
hover_pose/grasp_poseback into the deploy manifest.
Safety notes
- The skill assumes
jaka_arm.config.motion_enabled: true. With it false every command — including the gripper — is silently rejected; pose waypoints time out with an explicit hint, gripper commands do not (no feedback path exists). - Pose-timeout error text always names
motion_enabledas the first suspect when the arm never moved.