From robotics-connect
Robot-agnostic real-robot perception: from whatever depth and/or LiDAR a humanoid's descriptor declares, detect large flat surfaces (a table, a bed) and project them — and points/pixels on them — into the robot's body frame for reaching and placement. Vendor-neutral and LiDAR-first: near-field LiDAR is metric-accurate where a stereo/IR depth camera leaves artifacts on textureless bedding, so use depth for coarse coverage and LiDAR for the fine hand target. Use this AFTER discover-robot (which says what sensors exist) to turn a live scene into actionable body-frame geometry; the sim twin is stage-isaac-sensors. One abstraction, driven by the descriptor; the per-sensor algorithms live in the robot's capability bindings (no duplication).
How this skill is triggered — by the user, by Claude, or both
Slash command
/robotics-connect:perceive-surfacesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turn a live depth/LiDAR scene into **body-frame geometry**: where the flat surface is, and where a
Turn a live depth/LiDAR scene into body-frame geometry: where the flat surface is, and where a hand should go on it. Robot-agnostic — the what sensors comes from the robot descriptor; the how to read each one comes from that robot's capability bindings. This skill is the orchestration + the principles, not a re-implementation.
discover-robot) and want one vendor-neutral entry point that
picks the right sensor per query — LiDAR for the fine target, depth for coarse coverage.+x fwd, +y left, +z up).| Sensor | G1 binding | Vendor-neutral analogue |
|---|---|---|
| LiDAR (Livox MID-360) | unitree/g1/lidar_sight find_tables() | any 3D LiDAR cloud → (N,3) body-frame points |
| Depth (RealSense D435i) | unitree/g1/depth_camera_sight table_plane_xyz() / pixel_to_body_xyz() | any depth + intrinsics + extrinsic tilt |
| Sim twin | — | stage-isaac-sensors detect_bed() (same numpy on a RayCaster cloud) |
The same detection runs on a simulator's RayCaster cloud and a real LiDAR cloud — that real-to-sim parity is the whole point: train the detector in sim, run it unchanged on hardware.
discover-robot → descriptor (which depth/LiDAR the robot has, mounts, calibrated tilt, blind spots).Do not trust depth for a fine grasp on textureless bedding — its speckle holes there are exactly why this skill is LiDAR-first. If a robot has only a depth camera, surface the coarse-only caveat.
npx claudepluginhub armwaheed/robotics-connect --plugin robotics-connectCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.