⚠️ Experimental — This project is under active development and may contain bugs or incomplete features. Use at your own risk.
AGiXT extensions for controlling Unitree robots with AI agents. Gives your agent the ability to walk, perform tricks, see through the camera, listen through the microphone, and more.
| Extension | Robot | Control Server | Commands |
|---|---|---|---|
unitree_g1 |
Unitree G1 Basic (humanoid) | g1control | 9 |
unitree_go2 |
Unitree Go2 Pro (quadruped) | go2control | 14 |
Add this extension hub to your AGiXT instance and restart:
agixt env EXTENSIONS_HUB=https://github.com/Josh-XT/unitree_extensions
agixt restartAGiXT will automatically pull the extensions from this repo on startup. The only Python dependency is httpx, which will be auto-installed on first load if not already present.
Controls the G1 humanoid robot through the g1control API server. The G1 Basic has 23 degrees of freedom and is controlled via serial MITM through a Raspberry Pi connected to the robot's controller receiver.
| Setting | Description | Default |
|---|---|---|
G1_API_URL |
Base URL of the g1control API server | http://localhost:8000 |
| Command | Description | Parameters |
|---|---|---|
| Get Robot Status | Current mode, velocity, battery, connection status | — |
| Move Robot | Walk with velocity control | forward_speed, lateral_speed, turn_rate, duration |
| Stop Robot | Halt all movement and cancel sequences | — |
| Execute Robot Action | Trigger a state transition | action_name |
| List Robot Actions | Show available actions | — |
| Set Robot Speed Mode | Switch between walk and run | mode |
| Run Robot Sequence | Execute a pre-built movement routine | sequence_name |
| List Robot Sequences | Show available sequences | — |
| Get Robot Capabilities | Full summary of state, actions, limits | — |
| Action | Description |
|---|---|
damping |
Enter damping/soft mode (motors off) |
stand_up |
Stand up from damping into ready position |
sit_down |
Sit down (use before shutdown) |
start_control |
Enter operation control / walking mode |
toggle_walk |
Toggle between standing still and walking |
emergency_stop |
Emergency stop — enters damping immediately |
debug_mode |
Enter debug mode (stops motion program) |
The G1 must be brought up in order: damping → stand_up → start_control → toggle_walk → move commands.
| Axis | Range | Description |
|---|---|---|
forward_speed |
±1.5 m/s | Forward / backward |
lateral_speed |
±1.0 m/s | Left / right |
turn_rate |
±0.6 rad/s | Counter-clockwise / clockwise |
Controls the Go2 Pro robot dog through the go2control API server. The Go2 Pro has an HD front camera, built-in speaker, microphone, and 28 sport actions including tricks, dances, and flips. Communication uses WebRTC (wireless) or DDS (wired Ethernet).
| Setting | Description | Default |
|---|---|---|
GO2_API_URL |
Base URL of the go2control API server | http://localhost:8000 |
| Command | Description | Parameters |
|---|---|---|
| Get Robot Status | Mode, velocity, battery, volume, connection | — |
| Move Robot | Walk with velocity control | forward_speed, lateral_speed, turn_rate, duration |
| Stop Robot | Halt all movement | — |
| Execute Robot Action | Trigger any of 28 sport actions | action_name |
| List Robot Actions | Show all actions by category | — |
| Set Speed Level | Slow / normal / fast | level |
| Set Body Orientation | Adjust roll, pitch, yaw while standing | roll, pitch, yaw |
| Run Robot Sequence | Execute a pre-built routine | sequence_name |
| List Robot Sequences | Show available sequences | — |
| Capture Camera Image | Get what the robot sees (base64 JPEG) | — |
| Set Speaker Volume | Control speaker volume (0-10) | level |
| Capture Microphone Audio | Record from the robot's mic (base64 PCM) | seconds |
| Get Robot Capabilities | Full capability summary with peripherals | — |
| Emergency Stop | Immediately damp all motors | — |
State Transitions: damp, balance_stand, stop_move, stand_up, stand_down, recovery_stand, sit, rise_sit
Tricks & Animations: hello, stretch, content, dance1, dance2, pose, scrape, heart
Flips & Jumps: front_flip, left_flip, back_flip, front_jump, front_pounce, hand_stand
Gaits: static_walk, trot_run, economic_gait
Modes: free_walk, cross_step, switch_joystick
| Peripheral | Capability | Endpoint |
|---|---|---|
| Camera | HD front camera, returns base64 JPEG snapshot | Capture Camera Image |
| Speaker | Volume control 0-10 | Set Speaker Volume |
| Microphone | Records PCM audio (16-bit, 48kHz, stereo) | Capture Microphone Audio |
| Axis | Range | Description |
|---|---|---|
forward_speed |
±1.5 m/s | Forward / backward |
lateral_speed |
±0.8 m/s | Left / right |
turn_rate |
±2.0 rad/s | Counter-clockwise / clockwise |
┌─────────────────┐ HTTP/JSON ┌──────────────┐ Serial/WebRTC/DDS ┌─────────┐
│ AGiXT Agent │ ◄──────────────► │ Control API │ ◄──────────────────────► │ Robot │
│ (extensions) │ │ (g1/go2) │ │ │
└─────────────────┘ └──────────────┘ └─────────┘
The extensions communicate with their respective control servers over HTTP. The control servers handle the low-level robot communication:
- G1 Basic: Serial MITM via Raspberry Pi → CP210x USB → 40-byte controller packets
- Go2 Pro: WebRTC (wireless, no jailbreak) or DDS/CycloneDDS (wired Ethernet)
Both control servers can run in simulation mode for testing without hardware.
- g1control — Control server for the Unitree G1 Basic humanoid
- go2control — Control server for the Unitree Go2 Pro robot dog
- AGiXT — AI agent framework
This project is experimental and we welcome contributions! If you find a bug or have a suggestion:
- Report issues on the GitHub Issues page
- Pull requests are always welcome — if you find an issue you can fix, we'd love the help
MIT — Use at your own risk. This is unofficial/experimental code.