Views
No views yet
OnPolicyRunner actor-critic (MLP 512-256-128, ELU)Isaac-Velocity-Flat-Go2Z1-v0 (forward/lateral linear vel + small yaw rate commands)Simple_Warehouse/warehouse.usd (3/3 episodes)model_*.pt — checkpoint dictionaries with actor_state_dict / critic_state_dictActor MLP : Linear(obs→512) ELU Linear(512→256) ELU Linear(256→128) ELU Linear(128→12)
Critic MLP: same shape, single value head
Inputs : base lin_vel + ang_vel + projected_gravity + commands + joint_pos + joint_vel + last_action
Outputs : 12 leg joint position deltas (Go2 hip/thigh/calf × 4)1import torch, torch.nn as nn
2
3# Load checkpoint
4state = torch.load("model_1499.pt", map_location="cuda:0", weights_only=False)
5sd = state["actor_state_dict"]
6
7# Rebuild actor (3 hidden layers + output)
8h, obs_dim = sd["mlp.0.weight"].shape[0], sd["mlp.0.weight"].shape[1]
9act_dim = sd["mlp.6.weight"].shape[0]
10actor = nn.Sequential(
11 nn.Linear(obs_dim, h), nn.ELU(),
12 nn.Linear(h, h), nn.ELU(),
13 nn.Linear(h, h), nn.ELU(),
14 nn.Linear(h, act_dim),
15).cuda().eval()
16actor.load_state_dict({k.replace("mlp.", ""): v for k, v in sd.items() if k.startswith("mlp.")})
17
18# obs comes from Isaac Lab's Isaac-Velocity-Flat-Go2Z1-Play-v0 env
19with torch.inference_mode():
20 action = actor(obs)stage4_joint_eval/walk_in_real_warehouse.py.go2_z1_warehouse/stage1_walking/{flat_env_cfg.py, rough_env_cfg.py}| Scenario | Episodes | Success | Mean traveled |
|---|---|---|---|
| Flat plane | 10 | 100 % | — |
| 4 cuboid shelves | 5 | 80 % | 11.21 m |
Real warehouse.usd | 3 | 100 % | 10.00 m |
1@misc{go2z1-walking-v1,
2 title = {Go2+Z1 Warehouse Walking Policy V1 (state-only PPO)},
3 author = {m3},
4 year = {2026},
5 url = {https://huggingface.co/m3/go2z1-walking-rsl-rl-v1}
6}