Skip to content

quickstart·

60s to first wave

1 / clone & run·

git clone https://github.com/cagataycali/neon-the-g1.git
cd neon-the-g1
make run

make run builds the Docker image (if needed), brings up the compose stack, and attaches you to the agent.py REPL, auto-starting bidirectional voice (g1_speak). The cockpit is up at the same time on https://<robot>:8080. For a bare-metal venv instead (DEV only), use make run-bare, which clones the Unitree SDK (the pip wheel is broken) and exports CYCLONEDDS_URI + PYTHONPATH.

2 / pick a model·

NEON runs on a Bedrock model. Provide Bedrock credentials before make run; the model id can be changed later from the dashboard (Configuration, model) without editing files:

export AWS_BEARER_TOKEN_BEDROCK=...        # Bedrock bearer token
export AWS_DEFAULT_REGION=us-west-2

The default model is global.anthropic.claude-opus-4-8; the full variable list is on docker.

3 / talk to it·

> check state

mode=ai, fsm=500, arm_ready=True, soc=86%

> wave hello

g1_arm_action('high wave') rc=0, released

You want arm_ready=True and fsm ∈ {500, 501, 801}. If arm_ready=False, say set fsm 500 first, the arm won't move from Damp.

enable control (arm the G1)·

Before the robot can walk, switch it to walk/control mode in the Unitree app. This hands motor control to neon over DDS.

safe first commands·

Green zone

check state, battery, wave, shake hand, heart, clap · hug, stand up, sit down, damp, set stand height 0.75

Walking is by request only

walk forward 50cm is the consent; nothing else is. NEON looks at the path first, walks only in FSM 501, and reports what the odometry measured (moved 0.48 m) or that it did not move. See safety.

prerequisites·

  • Unitree G1+ reachable (192.168.123.161 MCU, 192.168.123.164 Jetson)
  • Interface eth0 reaches the motor bus
  • Docker on the Jetson (or Python 3.10+ for make run-bare)

next·

docker systemd tool catalog

Edit page