diff --git a/assets/docs/go1_policy_io_zh.md b/assets/docs/go1_policy_io_zh.md index a194eaf..94c57de 100644 --- a/assets/docs/go1_policy_io_zh.md +++ b/assets/docs/go1_policy_io_zh.md @@ -6,7 +6,8 @@ TorchScript 模型,例如: - `resources/models/go1/policy.pt` - `resources/models/go1/policy_10k.pt` -- 由 15k 楼梯 checkpoint 导出的 `policy.pt` +- `resources/models/go1/policy_15k.pt` +- `resources/models/go1/policy_15k.onnx` ## 1. 接口概览 @@ -168,7 +169,37 @@ Kd = 0.7 实际部署还应按电机能力限制输出力矩。 -## 6. 最小调用示例 +## 6. ONNX 输入输出 + +`policy_15k.onnx` 是无状态模型,不在模型内部保存历史。它与 TorchScript +的输入接口不同: + +| 项目 | ONNX 规格 | +| - | - | +| 输入名称 | `obs` | +| 输入形状 | `[1, 225]` | +| 输出 0 | `actions`,形状 `[1, 12]` | +| 输出 1 | `weights`,形状 `[1, 8]` | +| 输出 2 | `latent`,形状 `[1, 32]` | + +ONNX 输入不是直接对 `[1, 5, 45]` 执行 `reshape`。225 维输入按观测项分组, +每组内部再按时间从旧到新排列: + +```text +[ + angular_velocity(t-4:t), # 5 * 3 = 15 + projected_gravity(t-4:t), # 5 * 3 = 15 + command(t-4:t), # 5 * 3 = 15 + dof_position_error(t-4:t), # 5 * 12 = 60 + dof_velocity(t-4:t), # 5 * 12 = 60 + last_action(t-4:t), # 5 * 12 = 60 +] +``` + +调用方需要维护 5 帧历史,并在 episode reset 时将历史清零。RoboGauge 当前 +直接使用 TorchScript;ONNX 主要用于其他推理后端。 + +## 7. 最小调用示例 ```python import numpy as np @@ -232,7 +263,7 @@ target_dof_pos = DEFAULT_DOF_POS + 0.25 * action last_action = action.copy() ``` -## 7. Reset 要求 +## 8. Reset 要求 以下情况必须同时重置模型历史和上一动作: @@ -249,7 +280,7 @@ last_action.fill(0.0) 只清零 `last_action` 而不调用 `model.reset()`,会残留上一段运行的历史状态。 -## 8. 不需要的部署信号 +## 9. 不需要的部署信号 部署使用 Student 策略,不需要训练阶段 Teacher/Critic 的 263 维 privileged observation。以下信号不进入部署策略: @@ -264,7 +295,7 @@ observation。以下信号不进入部署策略: 这些信息仅在训练阶段用于 Teacher/Critic。Student 通过 5 帧本体观测历史估计 32 维 latent。 -## 9. RoboGauge 对应实现 +## 10. RoboGauge 对应实现 RoboGauge 已实现上述接口: @@ -286,7 +317,7 @@ python robogauge/scripts/run.py \ --goals target_pos_velocity ``` -## 10. 常见错误检查 +## 11. 常见错误检查 1. 输入形状应为 `[1, 45]`,不是 `[45]` 或 `[1, 225]`。 2. 输入 dtype 必须为 `torch.float32`。 diff --git a/resources/models/go1/policy_15k.onnx b/resources/models/go1/policy_15k.onnx new file mode 100644 index 0000000..32b4d0b Binary files /dev/null and b/resources/models/go1/policy_15k.onnx differ diff --git a/resources/models/go1/policy_15k.pt b/resources/models/go1/policy_15k.pt new file mode 100644 index 0000000..d3ad25d Binary files /dev/null and b/resources/models/go1/policy_15k.pt differ