Views
No views yet
| Model | File | Input Dim | Output Dim | Description |
|---|---|---|---|---|
| Student | student_policy.pt | 82 | 3 | Deployable policy using depth rays from monocular depth estimation |
| Teacher | teacher_policy.pt | 34 | 3 | Privileged policy with ground-truth obstacle positions |
[vx, vy, ω]vx ∈ [-0.6, 1.0] m/s (forward/backward)vy ∈ [-0.5, 0.5] m/s (lateral)ω ∈ [-1.57, 1.57] rad/s (yaw rate)fov_keep_ratio ∈ [0.35, 1.0] prevents sensor overfitting| Scenario | Success Rate | Collision Rate |
|---|---|---|
| Deploy (mild noise) | 75.0% | 25.0% |
| Stress (heavy noise) | 75.2% | 24.8% |
| Wide-FOV Clean | 74.4% | 25.6% |
| Direction | Target | Final Distance | Result |
|---|---|---|---|
| Forward | 2.0m | 0.26m | ✅ SUCCESS |
| Backward | -1.5m | 0.26m | ✅ SUCCESS |
| Left | 1.5m | 0.31m | ✅ SUCCESS |
| Right | -2.0m | 0.26m | ✅ SUCCESS |
| Diagonal | (1.5, 1.5)m | 0.30m | ✅ SUCCESS |
1import torch
2
3# Load student policy (for deployment)
4student = torch.jit.load("student_policy.pt")
5student.eval()
6
7# Prepare observation (82-dim)
8obs = torch.zeros(1, 82) # [depth_rays(72), vel(3), goal_rel(2), goal_dist_angle(2), prev_action(3)]
9
10# Get action
11with torch.no_grad():
12 action = student(obs) # [vx, vy, omega]1@misc{g1-navigation-dagger-2026,
2 title={Teacher-Student Distillation via DAgger for Sim-to-Real Navigation on the Unitree G1},
3 author={Adjimavo},
4 year={2026},
5 url={https://huggingface.co/Adjimavo/g1-navigation-dagger}
6}