| 97 | |
| 98 | |
| 99 | def _load_offset(cfg: dict) -> np.ndarray: |
| 100 | offset_cfg = cfg.get("sim2real_joint_offset") or {} |
| 101 | if not offset_cfg: |
| 102 | return np.zeros(JOINT_DIM, dtype=np.float32) |
| 103 | if offset_cfg.get("order") not in {"sdk_joint_order", "controller_joint_order"}: |
| 104 | raise ValueError("sim2real_joint_offset.order must be sdk_joint_order.") |
| 105 | values = np.asarray(offset_cfg.get("values") or [], dtype=np.float32).reshape(-1) |
| 106 | if values.shape != (JOINT_DIM,): |
| 107 | raise ValueError(f"sim2real_joint_offset.values must have {JOINT_DIM} entries.") |
| 108 | return values |