Downloads · 30 days
0
Lebruhbruh/fs5-simtoolreal-hammer
fs5-simtoolreal-hammer is a reinforcement learning model from Lebruhbruh. Use it for the reinforcement learning task on the model card, and read the license before you ship it in a product. It is set up for rl_games. The card lists the license as other.
用 FS5 20-DoF 靈巧手 + KUKA iiwa14,在 Isaac Sim / Isaac Lab 上複現 SimToolReal 的訓練流程,只做 hammer 一類、純模擬。
Downloads · 30 days
0
Access
Public
Updated Aug 27, 2026
Repo size
1.3 GB
Likes
0
Public
Click a slice to open those files.
.pth1.3 GB · 100%
From the Hugging Face model README
用 FS5 20-DoF 靈巧手 + KUKA iiwa14,在 Isaac Sim / Isaac Lab 上複現 SimToolReal 的訓練流程,只做 hammer 一類、純模擬。
⚠️ 這個 repo 只有策略權重(
.pth)。 FS5 的 3D 模型(CAD / mesh / URDF)不包含在內,也不會提供 —— 那是不可公開的資產。 沒有那份幾何,這些權重無法重現環境。
| 檔名 | epoch | frames | 用途 |
|---|---|---|---|
fs5_hammer_ep27000_3.05B.pth | 27,000 | 3.047 B | 起飛後、容差課程點火前 |
fs5_hammer_ep36931_5.00B.pth | 36,931 | 5.000 B | 容差課程進行中 |
fs5_hammer_ep45000_6.59B.pth | 45,000 | 6.586 B | 容差第 7 階(0.0359) |
fs5_hammer_ep50400_7.65B.pth | 50,400 | 7.648 B | 最新,續練請用這支(容差第 9 階 0.0291) |
fs5_hammer_ep27800_3.20B_flat_np126.pth | 27,800 | 3.205 B | 已攤平 + numpy 1.26,可直接錄影/播放 |
fs5_hammer_ep42600_6.11B_flat_np126.pth | 42,600 | 6.115 B | 同上,較新 |
epoch/frame 是實際載入檔案讀出來的,不是從檔名推的。
(原始檔名如 last_0_simtoolreal_sapg_ep_27000_rew_373.1418.pth 看不出 frames,
而 last/model.pth 這種名字連 epoch 都看不出來 —— 拿錯會用到起飛前的策略而且不會報錯。)
env.scene.num_envs: 12288
env.termination.success_tolerance: 0.075
agent.params.config.expl_coef_block_size: 2048
agent.params.config.minibatch_size: 32768
agent.params.config.central_value_config.minibatch_size: 32768
演算法 SAPG(6 blocks)、非對稱 critic。物件只有 hammer 一類。
硬體:RTX PRO 6000 96 GB(Vast.ai)、replicate_physics=False、無 SDF collider。
雲端存檔用 numpy 2.x,本機若是 1.26 會失敗。而 rl_games 把 torch.load 包在重試裡,
只會吐 Could not execute <function load ...>, give up after 5 attempts ——
不會告訴你根因是 ModuleNotFoundError: No module named 'numpy._core'。
import sys, numpy, numpy.core, torch
for sub in ["", ".multiarray", ".umath", ".numeric", "._multiarray_umath"]:
name = "numpy._core" + sub
sys.modules[name] = __import__("numpy.core" + sub, fromlist=["x"]) if sub else numpy.core
ckpt = torch.load(path, map_location="cpu", weights_only=False)
*_flat_np126.pth 兩支已經處理好,不需要這段。
env_state 是 None非 _flat_ 的檔案外層是 {0: {...}}(SAPG rank),player.restore() 吃不到,要先攤平:
if set(ckpt.keys()) <= {0,1,2,3,4,5}:
ckpt = ckpt[0]
所有檔案的 env_state 都是 None —— 這個移植沒有實作
get_env_state() / set_env_state()。所以 --checkpoint_load_mode resume
不會還原容差課程,success_tolerance 會退回最寬的 0.075。
續練時要用 Hydra 手動釘回中斷時的值,並同時調高 max_epochs(epoch 會被還原):
env.termination.success_tolerance=<中斷時的值>
agent.params.config.max_epochs=<比目前 epoch 大>
會還原的:model / optimizer / epoch / frame / rnn_states / obs / trackers。
| frames | 抬起率 | episode_final/successes | 容差 |
|---|---|---|---|
| 0.04 → 1.01 B | 17–19%(平台期整整 1 B) | ~0.001 | 0.075 |
| 1.55 B | 78.7% | 0.0027 | 0.075 |
| 3.25 B | — | 轉折 | 0.075 |
| 5.24 B | — | 2.7 | 0.075 |
| 5.371 B | — | ~2.7 | 第一次收緊 |
| 6.18 B | — | 2.7–3.05 | 0.0399(收 6 階) |
| 6.59 B | 90.8% | 2.86 | 0.0359(收 7 階) |
| 7.65 B | 90.1% | 2.21 | 0.0291(收 9 階) |
前 1 B frames 完全看不出在學 —— 論文自己的曲線在前 20 B 也是平的。 在平台期看起來「學不會」是正常的,不要據此停機。
ep_succ 停在 2.7–3.05 而容差持續下降不是停滯,是課程正確運作:
摸到 3.0 → ×0.9 加難度 → 掉回 2.9 → 再爬。
6.59 B → 7.65 B 之間 successes 從 2.86 掉到 2.21,同期容差從 0.0359 收到 0.0291
(連收 2 階)—— 這是課程在加難度,不是策略退步。抬起率同期維持在 90%。
策略權重僅供研究參考。FS5 手部資產屬第三方,不隨附、不轉發。 上游 SimToolReal 的授權另見其 repo。