Unitree Go2 Setup¶
Full autonomous navigation, mapping, and agentic control on a real Go2. No ROS required.
Requirements¶
- Unitree Go2 Pro or Air (stock firmware 1.1.7+, no jailbreak needed)
- Ubuntu 22.04/24.04 with CUDA GPU (recommended), or macOS (experimental)
- Python 3.12
Install¶
First, install system dependencies for your platform: - Ubuntu - macOS - Nix
Then install dimOS:
Run on Your Go2¶
First-time setup, connecting to wifi, finding robot IP¶
Use dimos go2tool to provision wifi and find the robot's IP. Skip if the robot is already on your network and you know its IP.
-
Power on the Go2. It advertises over BLE immediately.
-
Provision wifi (one-time per network):
optionally use discover to make sure robot is detected
configure wifi
Scans BLE and connects to the only robot it finds, or prompts you to pick if there are several.
- Find the robot's IP:
Prints SOURCE NAME IP MAC SERIAL for every robot it sees over BLE and LAN. Export the IP:
Pre-flight checks¶
-
Robot is reachable and low latency
<10ms, 0% packet loss -
Built-in obstacle avoidance is on. (dimOS handles path planning, but the onboard obstacle avoidance provides an extra safety layer around tight spots)
Ready to run dimOS¶
That's it. dimOS connects via WebRTC (no jailbreak required), starts the full navigation stack, and opens the command center in your browser.
What's Running¶
| Module | What It Does |
|---|---|
| GO2Connection | WebRTC connection to the robot. Streams LiDAR, video, odometry |
| VoxelGridMapper | Builds a 3D voxel map using column-carving (CUDA accelerated) |
| CostMapper | Converts 3D map → 2D costmap via terrain slope analysis |
| ReplanningAStarPlanner | Continuous A* path planning with dynamic replanning |
| WavefrontFrontierExplorer | Autonomous exploration of unmapped areas |
| RerunBridge | 3D visualization in browser |
| WebsocketVis | Command center at localhost:7779 |
Send Goals¶
From the command center (localhost:7779): - Click on the map to set navigation goals - Toggle autonomous exploration - Monitor robot pose, costmap, and planned path
Agentic Control¶
Natural language control with an LLM agent that understands physical space:
Then use the human CLI to talk to the agent:
The agent subscribes to camera, LiDAR, and spatial memory streams. It sees what the robot sees.