Add Go1 15k deployment models
This commit is contained in:
@@ -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`。
|
||||
|
||||
Reference in New Issue
Block a user