locomotion·
⏱ 45s
Walking, turning, posture — the dangerous stuff. Every command needs explicit user approval in the agent loop.
Robot can fall
Clear floor, operator within reach, ~500 ms stop latency. See safety.
| intent | call |
|---|---|
| walk 30 cm | g1_walk_forward(distance=0.3, speed=0.2) |
| turn 90° | g1_turn(angle_rad=1.57, yaw_rate=0.4) |
| strafe right | g1_move_velocity(vx=0, vy=0.2, vyaw=0, duration=2) |
| stop (safe) | g1_stop_move() |
| squat → stand | g1_safe_squat_to_stand() |
| lie → stand | g1_safe_lie_to_stand() |
| damp (safe) | g1_set_fsm(1) |
🎙 voice-driven walking, live·
Strands bidirectional speech-to-speech → g1_move_velocity → the G1 steps.
Spoken command in, motion out, in real time.
clamps·
| axis | unit | safe range |
|---|---|---|
vx |
m/s | 0.1 – 0.3 |
vy |
m/s | ±0.1 – 0.2 |
vyaw |
rad/s | ±0.3 |
duration |
s | 0.1 – 10.0 (capped) |
Only duration is hard-clamped; velocities pass through — keep them small.
a walk, start to finish·
sequenceDiagram
autonumber
participant U as 🗣️ user
participant A as 🧠 neon
participant F as 🎛️ FSM
participant L as 🚶 LocoClient
U->>A: "walk forward 30 cm"
A->>A: g1_get_state() · check fsm · battery
A-->>U: confirm? (approval gate)
U->>A: "yes"
A->>F: g1_set_fsm(501)
F-->>A: fsm=501 ready
A->>L: Move(0.2,0,0) 1.5s → stop
A-->>U: ✅ walked · fsm=501