LeRobot documentation
Unitree G1 Robot Setup and Control
Unitree G1 Robot Setup and Control
This guide covers the complete setup process for the Unitree G1 humanoid, from initial connection to running gr00t_wbc locomotion.
About the Unitree G1
We offer support for both 29 and 23 DOF G1. In this first PR we introduce:
unitree g1robot class, handling low level communication with the humanoid- ZMQ socket bridge for remote communication over WiFi, allowing one to deploy policies remotely instead of over ethernet or directly on the Orin
- GR00T locomotion policy for bipedal walking and balance
Part 1: Connect to Robot over Ethernet
Step 1: Configure Your Computer’s Ethernet Interface
Set a static IP on the same subnet as the robot:
# Replace 'enp131s0' with your ethernet interface name (check with `ip a`)
sudo ip addr flush dev enp131s0
sudo ip addr add 192.168.123.200/24 dev enp131s0
sudo ip link set enp131s0 upNote: The robot’s Ethernet IP is fixed at 192.168.123.164. Your computer must use 192.168.123.x where x ≠ 164.
Step 2: SSH into the Robot
ssh [email protected]
# Password: 123You should now be connected to the robot’s onboard computer.
Part 2: Enable WiFi on the Robot
Once connected via Ethernet, follow these steps to enable WiFi:
Step 1: Enable WiFi Hardware
# Unblock WiFi radio
sudo rfkill unblock wifi
sudo rfkill unblock all
# Bring up WiFi interface
sudo ip link set wlan0 up
# Enable NetworkManager control
sudo nmcli radio wifi on
sudo nmcli device set wlan0 managed yes
sudo systemctl restart NetworkManagerStep 2: Enable Internet Forwarding
On your laptop:
# Enable IP forwarding
sudo sysctl -w net.ipv4.ip_forward=1
# Set up NAT (replace wlp132s0f0 with your WiFi interface)
sudo iptables -t nat -A POSTROUTING -o wlp132s0f0 -s 192.168.123.0/24 -j MASQUERADE
sudo iptables -A FORWARD -i wlp132s0f0 -o enp131s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i enp131s0 -o wlp132s0f0 -j ACCEPTOn the robot:
# Add laptop as default gateway
sudo ip route del default 2>/dev/null || true
sudo ip route add default via 192.168.123.200 dev eth0
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
# Test connection
ping -c 3 8.8.8.8Step 3: Connect to WiFi Network
# List available networks
nmcli device wifi list
# Connect to your WiFi (example)
sudo nmcli connection add type wifi ifname wlan0 con-name "YourNetwork" ssid "YourNetwork"
sudo nmcli connection modify "YourNetwork" wifi-sec.key-mgmt wpa-psk
sudo nmcli connection modify "YourNetwork" wifi-sec.psk "YourPassword"
sudo nmcli connection modify "YourNetwork" connection.autoconnect yes
sudo nmcli connection up "YourNetwork"
# Check WiFi IP address
ip a show wlan0Step 4: SSH Over WiFi
Once connected to WiFi, note the robot’s IP address and disconnect the Ethernet cable. You can now SSH over WiFi:
ssh unitree@<YOUR_ROBOT_IP>
# Password: 123Replace <YOUR_ROBOT_IP> with your robot’s actual WiFi IP address (e.g., 172.18.129.215).
Part 3: Robot Server Setup
Step 1: Install LeRobot on the Orin
SSH into the robot and install LeRobot:
ssh unitree@<YOUR_ROBOT_IP>
conda create -y -n lerobot python=3.10
conda activate lerobot
git clone https://github.com/huggingface/lerobot.git
cd lerobot
pip install -e '.[unitree_g1]'
git clone https://github.com/unitreerobotics/unitree_sdk2_python.git
cd unitree_sdk2_python && pip install -e .Note: The Unitree SDK requires CycloneDDS v0.10.2 to be installed. See the Unitree SDK documentation for details.
Step 2: Run the Robot Server
On the robot:
python src/lerobot/robots/unitree_g1/run_g1_server.py
Important: Keep this terminal running. The server must be active for remote control.
Part 4: Running GR00T Locomotion
With the robot server running, you can now control the robot from your laptop.
Step 1: Install LeRobot on your machine
conda create -y -n lerobot python=3.10
conda activate lerobot
git clone https://github.com/huggingface/lerobot.git
cd lerobot
pip install -e '.[unitree_g1]'
git clone https://github.com/unitreerobotics/unitree_sdk2_python.git
cd unitree_sdk2_python && pip install -e .Step 2: Update Robot IP in Config
Edit the config file to match your robot’s WiFi IP:
# In src/lerobot/robots/unitree_g1/config_unitree_g1.py
robot_ip: str = "<YOUR_ROBOT_IP>" # Replace with your robot's WiFi IP.Note: When running directly on the G1 (not remotely), set robot_ip: str = "127.0.0.1" instead.
Step 3: Run the Locomotion Policy
# Run GR00T locomotion controller
python examples/unitree_g1/gr00t_locomotion.py --repo-id "nepyope/GR00T-WholeBodyControl_g1"Step 4: Control with Remote
- Left stick: Forward/backward and left/right movement
- Right stick: Rotation
- R1 button: Raise waist height
- R2 button: Lower waist height
Press Ctrl+C to stop the policy.
Additional Resources
Last updated: December 2025
Update on GitHub