Skip to main content

arm-manipulate

Use when the user asks the robot to pick up, grab, grasp, place, move, hand over, or manipulate a physical object using the robotic arm or gripper. Triggers on "pick up", "grab", "pick", "place", "put X on Y", "hand me", "move the X", "get the X", "assemble", "sort", "stack", "lift", "drop", "set down", "give me", "bring me".

Ir para a instalação

Informações da origem

Repositório
craigm26/OpenCastor
Última atividade na origem
17 de março de 2026 às 18:41
Idioma detectado do SKILL.md
inglês
Estrelas
28
Forks
5

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
5 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
arm-manipulate
description
Use when the user asks the robot to pick up, grab, grasp, place, move, hand over, or manipulate a physical object using the robotic arm or gripper. Triggers on "pick up", "grab", "pick", "place", "put X on Y", "hand me", "move the X", "get the X", "assemble", "sort", "stack", "lift", "drop", "set down", "give me", "bring me".
version
1.1
requires
["control","vision","gripper"]
consent
required
tools
["get_camera_frame","get_distance","move","grip"]
max_iterations
12
# Arm Manipulate Skill Pick up, place, or manipulate objects using the robotic arm and gripper. ## Protocol 66 — MANDATORY **You MUST request user consent before ANY arm or gripper movement.** Do NOT call `move()` or `grip()` until the user has explicitly confirmed. If consent is not yet granted: describe the plan and ask. Stop there. ## Steps ### 1. Visual confirmation - Call `get_camera_frame()` — locate the target object in the scene - If object not clearly visible: ask user to adjust placement or camera angle - Call `get_distance()` — confirm target is within arm reach (typically < 0.6m) ### 2. Pre-grasp assessment Describe what you see and your intended approach: "I can see [object description] approximately [distance]m away. I plan to [approach + grasp plan]. Shall I proceed?" ### 3. Request consent — WAIT for "yes" / "confirm" / "go ahead" ### 4. Approach (after consent) - `move()` to pre-grasp position (slow, incremental) - `get_distance()` check — stop if < 0.05m from object unexpectedly ### 5. Grasp - `grip("open")` — open gripper fully - `move()` to grasp position (slow) - `grip("close")` — close gripper - `get_camera_frame()` — visual confirmation of grasp ### 6. Transport - Lift / move to target position - `move()` incrementally, checking clearance ### 7. Release - Position above target location - `grip("open")` — release object - `move()` retreat to safe position - Confirm completion ## Safety rules - Maximum gripper force: use default — never override force limits - Always visual-confirm before closing gripper (avoid crushing objects) - If grasp fails (camera shows object not held): stop and report - Never move arm at high speed near humans ## References See `references/grasp-patterns.md` for object-type-specific grasp strategies. See `references/workspace-bounds.md` for joint limits and reachable zones. ## Gotchas - **Gripper already closed** — if `grip("close")` is called when gripper is already holding something, it's a no-op; always `grip("open")` first to reset - **SO-ARM101 joint 3 (shoulder_lift) is sensitive** — move in small increments (< 10° per step); large moves trigger the voltage error watchdog - **Camera parallax** — the arm camera and the description camera may not be the same; an object that looks "at 0.4m" in the wide camera may be at 0.35m from the gripper; close the last 5cm slowly - **Grasp confirmation** — `get_camera_frame()` after closing gripper: if the object is missing from its original position AND in the gripper zone → success; if still on table → grasp failed, retry with better positioning - **"Sort" tasks** — don't try to plan the full sort upfront; pick one object, place it, confirm, then ask if user wants to continue; don't do multi-step fully autonomous runs without re-confirming - **Feetech STS3215 max torque** — the default gripper uses around 30% torque for soft objects; increasing force to grab something that won't grip is usually the wrong move — check for object geometry issues instead ## Example User: "Pick up the red Lego brick" → `get_camera_frame()` → see brick at 0.4m → `get_distance()` → 0.38m clear → "I can see a red 2×4 Lego brick about 0.4m away on the table. I plan to approach, open the gripper, grasp it, and lift it. Shall I proceed?" → User: "yes" → `grip("open")` → `move(approach)` → `grip("close")` → `get_camera_frame()` → confirm → report
Ver no GitHub