feat: add Go1 training and MuJoCo deployment
This commit is contained in:
63
docs/go1.md
Normal file
63
docs/go1.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# Go1 Adaptation
|
||||
|
||||
The `go1` branch adds the `RobotLab-Go1-v0` IsaacLab task and a matching
|
||||
MuJoCo deployment. It uses the complete Unitree Go1 URDF/MuJoCo model.
|
||||
|
||||
## Interface
|
||||
|
||||
- Policy joint order: `FR, FL, RR, RL`, with hip, thigh, calf for each leg.
|
||||
- Single-frame observation: 45 values in this order:
|
||||
body angular velocity (3), projected gravity (3), velocity command (3),
|
||||
relative joint position (12), joint velocity (12), previous action (12).
|
||||
- Actor history: 10 frames, or 450 values.
|
||||
- Action: 12 normalized joint-position offsets, scaled by `0.25 rad` and added
|
||||
to the default joint angles.
|
||||
- Policy frequency: 50 Hz (`0.005 s` physics step and decimation 4).
|
||||
- PD gains: `Kp=28`, `Kd=0.7`; torque is limited to `33.5 Nm`.
|
||||
- Training randomizes actuator delay over 0-4 physics steps (0-20 ms). The
|
||||
MuJoCo config defaults to zero extra delay because its delay setting is in
|
||||
20 ms policy steps.
|
||||
|
||||
## Train
|
||||
|
||||
Install the editable packages as described in the main README, then run:
|
||||
|
||||
```bash
|
||||
cd go2_rl_robotlab
|
||||
python scripts/rsl_rl/train.py \
|
||||
--task=RobotLab-Go1-v0 \
|
||||
--num_envs=4096 \
|
||||
--max_iterations=5000 \
|
||||
--headless
|
||||
```
|
||||
|
||||
## Play And Export
|
||||
|
||||
`play.py` exports both `policy.pt` and `policy.onnx` into the checkpoint run's
|
||||
`exported/` directory before starting the rollout.
|
||||
|
||||
```bash
|
||||
python scripts/rsl_rl/play.py \
|
||||
--task=RobotLab-Go1-v0 \
|
||||
--num_envs=64 \
|
||||
--checkpoint=/absolute/path/to/model_5000.pt
|
||||
```
|
||||
|
||||
## MuJoCo
|
||||
|
||||
Place the exported TorchScript file at
|
||||
`deploy/pre_train/go1/policy.pt`, or edit `policy_path` in
|
||||
`deploy/deploy_mujoco/configs/go1.yaml`. Then run:
|
||||
|
||||
```bash
|
||||
MUJOCO_GL=glfw python deploy/deploy_mujoco/deploy_go1.py
|
||||
```
|
||||
|
||||
Set `xml_path` in `go1.yaml` to select `flat.xml`, `stairs.xml`, `boxes.xml`,
|
||||
or `stairs_and_slope.xml`.
|
||||
|
||||
## Actuator Assumption
|
||||
|
||||
The Go1 asset publishes a `33.5 Nm` effort limit but does not include measured
|
||||
torque-speed knee points. The training actuator therefore uses the known effort
|
||||
limit with delayed PD control instead of reusing the Go2-HV torque-speed curve.
|
||||
Reference in New Issue
Block a user