Skip to content

Parameter recommendations for adapting from Go2 to Unitree A2? #7

Description

@JiayingST

Hi, we're reproducing the paper and adapting the pipeline to the Unitree A2
(40 kg, thigh/calf 0.275 m) instead of Go2. The code runs, but we're unsure
whether our parameter scaling is correct.

Our current changes vs. Go2 defaults:

Parameter Go2 Our A2 Rationale
stiffness 40 120 Scaled by mass ratio (40/15 × 40 ≈ 107)
damping 1 3 Proportional to stiffness
init_state.pos[2] 0.42 m 0.45 m A2 standing height
base_height_target 0.25 m 0.32 m A2 base height
BBC jump_height [0.45, 0.58] [0.58, 0.75] Scaled by leg length ratio (~1.29×)
BBC locomotion_height [0.25, 0.34] [0.32, 0.44] Same scaling

Are there other parameters we should adjust (e.g., terrain obstacle sizes,
reward scales, action_scale, command velocity ranges)?

Also, is there a rough BBC quality threshold (episode_length / reward_i)
that should be reached before TSC training becomes stable?

BBC training result

Trained BBC for ~148k iterations with the above parameters:

  • episode_length: ~378 (Go2 typically reaches ~1000)
  • reward_i: ~2.71

Is this sufficient quality to start TSC training, or should we continue BBC longer?

TSC training: PhysX CUDA crash

With the BBC above, TSC teacher training crashes after ~3600 iterations with:
GPU compressContactStage1 fail to launch kernel stage 1!!
Gym cuda error: an illegal memory access was encountered

Our hypothesis: the BBC is still somewhat undertrained → TSC episode length is ~58 steps
→ high reset rate → some robot respawns into an obstacle → physics explosion.

Have you encountered this crash? Is there a known fix or PhysX config to avoid it?

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions