Skip to content

gestures·

45s

Every arm gesture, dispatched through g1_arm_action(action=...). Fifteen gestures plus release arm (id 99), the SDK action_map as shipped.

auto-release needs FSM 500/501/801

action key action key
face wave 'face wave' hug 'hug'
high wave 'high wave' clap 'clap'
shake hand 'shake hand' hands up 'hands up'
high five 'high five' right hand up 'right hand up'
heart 'heart' reject 'reject'
right heart 'right heart' x-ray 'x-ray'
kiss 'two-hand kiss' left/right kiss 'left kiss' / 'right kiss'
from tools import g1_arm_action
g1_arm_action(action="high wave")   # auto_release=True by default

wave, live·

Triggered from the dashboard, g1_arm_action('high wave') on the real robot.

what happens under the hood·

  1. FSM gate: not in {500,501,801}? auto-transition or refuse (rc=7404).
  2. Arm mutex: locks rt/armsdk (single-writer). Never parallelize arm calls.
  3. Dispatch: G1ArmActionClient.ExecuteAction(id).
  4. Auto-release: action id 99 back to neutral.

See FSM + errors for the state machine.

Edit page