์‹œ๋ฎฌํŒ PARTS: ์‚ฐํ™”ํ™˜์› ํŒ ์„ธ์šฐ๊ธฐ ์ž”์ฐจ ์•กํ„ฐ(MuJoCo)

OpenArm SciEdu ์‚ฐํ™”ํ™˜์› ์‹คํ—˜์—์„œ, ์˜ค๋ฅธ์†์— ์ฅ” ์ฒ ํŒ์„ ๋น„์ปค์— ๋„ฃ๊ธฐ ์ „์— ์ˆ˜์ง์œผ๋กœ ์„ธ์šฐ๋Š” ํ•œ ๋‹จ๊ณ„๋ฅผ MuJoCo(๋ฒค์น˜ 2ํŒ props-4 ์žฅ๋ฉด)์—์„œ ๋ฐฐ์šด ์ž‘์€ ์ž”์ฐจ ์•กํ„ฐ๋‹ค. ๋ฐ”ํƒ•์€ ์–ผ๋ฆฐ ์ฝ”๋“œ ๋ฃฐ("๋ณด์ง€ ์•Š๊ณ  ์„ธ์šฐ๊ธฐ": ํŒ์ด ๋Š˜ ๊ฐ™์€ ๊ฐ์œผ๋กœ ๋งค๋‹ฌ๋ฆฐ๋‹ค๊ณ  ๋‘๊ณ  ํŒ ์•„๋ž˜ ๋์„ ์ถ•์œผ๋กœ ์†์„ 10ยฐ/s ๋Œ๋ฆผ)์ด๊ณ , ์•กํ„ฐ๋Š” ๊ทธ ์œ„์— ์˜ค๋ฅธ์† ๊ธฐ์šธ๊ธฐ ๋‘ ์ถ•(์„ธ๊ณ„ xยทy ๋‘˜๋ ˆ ๋Œ๋ฆผ, ํŒ ์•„๋ž˜ ๋์ด ์ถ•)๋งŒ ์ถ•๋งˆ๋‹ค ยฑ5ยฐ ์•ˆ์—์„œ ๋”ํ•œ๋‹ค. PARTS(Su ์™ธ, arXiv 2609.21788)์˜ ๋ณ‘๋ชฉ ์ž”์ฐจ RL์„ ์ด ํ•œ ๋‹จ๊ณ„๋กœ ์˜ฎ๊ธด ๊ฒƒ์ด๋‹ค. ํ•™์Šต์€ ์ฒญํฌ ๋‹จ์œ„ TD3 + BC(์ฐธ์กฐ ๋“œ๋กญ์•„์›ƒ 50%, ์ฐธ์กฐ ์ชฝ ฮฒ, ์„ฑ๊ณต ํŒ ๋”ฐ๋ผํ•˜๊ธฐ, ์‹คํŒจ ํŒ 0์œผ๋กœ), 50ํŒ๋งˆ๋‹ค ์„ฑ๊ณต ๊ฐ€์ค‘ ์žฌํ•™์Šต, ์ฒ˜์Œ 20ํŒ์€ ๋ฐ”ํƒ•๋งŒ, ๋ณด์ƒ์€ ์žฅ๋ฉด ํŒ์ •์˜ ํฌ์†Œ 1/0์ด๋‹ค. ๋กœ๋ด‡ยท์‹ค๋ฌผ ๋ฐ์ดํ„ฐ๋Š” ์“ฐ์ง€ ์•Š์•˜๋‹ค.

์‹œ๋ฎฌ ์ „์šฉ. sim_* ํŒ์€ ์‹œ๋ฎฌ์˜ ํŒ ์ž์„ธ(ํŒ ๊ธด ์ถ•์˜ ์„ธ๊ณ„ xยทy)๋ฅผ ๊ด€์ธก์œผ๋กœ ์ฝ๋Š”๋‹ค. ์‹ค๋ฌผ์—๋Š” ํŒ ์ž์„ธ ์„ผ์„œ๊ฐ€ ์—†์–ด ๊ทธ๋Œ€๋กœ ์˜ฎ๊ธฐ์ง€ ๋ชปํ•œ๋‹ค. proprio_* ํŒ์€ ์‹ค๋ฌผ ์„œ๋น™์—์„œ๋„ ์–ป๋Š” ๊ฐ’(์˜ค๋ฅธํŒ” ๊ด€์ ˆ 7, ์•ž ๋ช…๋ น โˆ’ ์ฝ๊ธฐ 7, ๋ฐ”ํƒ•์ด ๋‚จ๊ธด ๋Œ๋ฆผ 3, ์ง€๊ธˆ ์ž”์ฐจ 2, ๋‹จ๊ณ„ ์‹œ๊ฐ„ 1)๋งŒ ์ฝ๋Š”๋‹ค.

๊ฒฐ๊ณผ(ํ‰๊ฐ€ ์‹œ์ž‘ 20๊ฐœ, ์•กํ„ฐ ํ‰๊ท  ํ–‰๋™, 2026-11-06)

๊ฐ™์€ ํ‰๊ฐ€ ์‹œ์ž‘ 20๊ฐœ(์‹œ์ž‘ ํŒŒ์ผ redox_dipยทredox_put_left๋งˆ๋‹ค ์ฒ˜์Œ 10)์—์„œ ์ž”์ฐจ ๋” 20ํŒยท์ผฌ 20ํŒ. ํŒ์ •์€ ํŒ ๊ธด ์ถ• 2ยฐ ์•ˆ, ์ฅ , ํŒ ์•„๋ž˜ ๋ 2 cm ์•ˆยทํ…Œ๋‘๋ฆฌ ์œ„, ๋น„์ปค ๊ทœ์น™, ํŒ” ๋ฉˆ์ถค์ด 0.5์ดˆ(์ƒํ•œ 6์ดˆ). ๋Œ€๊ด„ํ˜ธ๋Š” Wilson 95% ๊ตฌ๊ฐ„(%).

ํŒ ์ž”์ฐจ ๋”(๋ฐ”ํƒ• ๋ฃฐ) ์ž”์ฐจ ์ผฌ ํ•™์Šต ํŒ ์‹œ๋ฎฌ ํ‹ฑ(30 Hz) ๋ฒฝ์‹œ๊ณ„ ๋ถ„(CPU ๋‘ ์Šค๋ ˆ๋“œ)
proprio_s0 2/20 [3, 30] 3/20 [5, 36] 820 142,711 23.2
proprio_s1 2/20 [3, 30] 7/20 [18, 57] 420 72,893 11.4
proprio_s2 2/20 [3, 30] 8/20 [22, 61] 420 72,852 12.0
sim_s0 2/20 [3, 30] 19/20 [76, 99] 820 129,589 20.7
sim_s1 2/20 [3, 30] 19/20 [76, 99] 820 132,095 20.9
sim_s2 2/20 [3, 30] 16/20 [58, 92] 820 128,786 19.7
  • sim ์”จ์•— 3๊ฐœ ํ•ฉ: ์ž”์ฐจ ์ผฌ 54/60 [80, 95] (์”จ์•—๋ณ„ [19, 19, 16]/20)
  • proprio ์”จ์•— 3๊ฐœ ํ•ฉ: ์ž”์ฐจ ์ผฌ 18/60 [20, 43] (์”จ์•—๋ณ„ [3, 7, 8]/20)

ํ•™์Šต ํŒ ์ˆ˜๋Š” ๋ฐ”ํƒ•๋งŒ 20ํŒ์„ ๋„ฃ์€ ์ˆ˜๋‹ค. ๊ด€์ ˆ๋งŒ ๋ณด๋Š” ๋ง์˜ ์”จ์•— 1ยท2๋Š” 400ํŒ(+20)์œผ๋กœ ์ค„์˜€๋‹ค: ์”จ์•— 0์˜ 800ํŒ ๊ณก์„ ์ด 400ํŒ ๋’ค์—๋„ 2~5/20์—์„œ ํ‰ํ‰ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค(์ฝ”๋””๋„ค์ดํ„ฐ ํ—ˆ๋ฝ, 2026-11-06). sim_s0_400ep๋Š” ๊ฐ™์€ ์”จ์•— 0์„ 400ํŒ์—์„œ ๋ฉˆ์ถ˜ ์•ž ํŒ์œผ๋กœ, 800ํŒ ํŒ์˜ ๊ณก์„ ๊ณผ 420ํŒ๊นŒ์ง€ ๊ฐ™๋‹ค(๊ฒฐ์ •์  ์žฌํ˜„ ํ™•์ธ).

๊ฐ™์€ ์‹œ์ž‘์˜ ๋ฃฐ: ๋ณด์ง€ ์•Š๊ณ  ์„ธ์šฐ๊ธฐ 2/20 [3, 30], ํŒ์„ ํ•œ ๋ฒˆ ๋ณด๊ณ  11/20 [34, 74], ํŒ์„ ๋‹ค์‹œ ๋ณด๋ฉฐ ๊ณ ์น˜๊ธฐ 20/20 [84, 100] (๋’ค ๋‘˜์€ ์‹œ๋ฎฌ ํŒ ์ž์„ธ๋ฅผ ์ฝ๋Š” ์œ—์„ ).

์“ฐ๋Š” ๋ฒ•

from huggingface_hub import hf_hub_download
import json, numpy as np
from safetensors.numpy import load_file
d = "sim_s0"
w = load_file(hf_hub_download("leapshared/sciedu_sim_parts_redox_upright", f"{d}/actor.safetensors"))
cfg = json.load(open(hf_hub_download("leapshared/sciedu_sim_parts_redox_upright", f"{d}/config.json")))
layers = [(w[f"actor.{i}.weight"], w[f"actor.{i}.bias"]) for i in (0, 2, 4)]
def act(obs):                       # obs: cfg["obs_dim"] floats (code/parts_upright.py features)
    x = np.asarray(obs, np.float64)
    for j, (W, b) in enumerate(layers):
        x = W @ x + b
        x = np.maximum(x, 0) if j < 2 else x
    return np.tanh(x) * cfg["limit_deg"]   # degrees about world x and world y, cut to +-5

๊ด€์ธก์˜ ๊ผดยท์ž”์ฐจ๋ฅผ ์†๋ ๋ชฉํ‘œ์— ๋”ํ•˜๋Š” ๋ฒ•ยทํŒ์ •์€ code/parts_upright.py์™€ code/upright_bench.py(์ €์žฅ์†Œ scripts/sim/, ์ปค๋ฐ‹ 7b190796)์— ์žˆ๋‹ค. ๋ฐ›์€ ์‹œ์ž‘์€ code/accepted.json, ๋ฐ”ํƒ• ๋ฃฐ์ด ์“ฐ๋Š” ์† ์•ˆ ํŒ ์ž์„ธ๋Š” code/taught.json์ด๋‹ค. ํŒ๋งˆ๋‹ค log.jsonl(ํ•™์Šต ํŒ๋งˆ๋‹ค์˜ ๊ฒฐ๊ณผ์™€ ํ•™์Šต ๊ณก์„ ), eval.jsonl(ํ‰๊ฐ€ 40ํŒ)์ด ์žˆ๋‹ค.

ํ•œ๊ณ„

  • ์‹œ๋ฎฌ(MuJoCo props-4)์—์„œ๋งŒ ๋ฐฐ์šฐ๊ณ  ์Ÿ€๋‹ค. ํŒ ์ž์„ธ ๊ด€์ธก(sim_*), ์† ์•ˆ์—์„œ ํŒ์ด ๋งค๋‹ฌ๋ฆฌ๊ณ  ๋ฏธ๋„๋Ÿฌ์ง€๋Š” ๋ชจ์–‘, ํŒ”๋กœ์›Œ ๋ชจํ˜•์€ ์‹ค๋ฌผ๊ณผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฐ”ํƒ•์€ ์ฝ”๋“œ ๋ฃฐ์ด๋‹ค. ์‹ค๊ธฐ ์„œ๋น™์˜ ๋ฐ”ํƒ•(pi0.5) ์œ„์˜ ํŒ์€ ์•„์ง ์—†๋‹ค.
  • ์‹ค๋ฌผ์— ์“ฐ๋ ค๋ฉด ์‹ค๊ธฐ ์•ˆ์ „ ๊ฒ€ํ† ์™€ ํŒ ์ถ•์„ ์žฌ๋Š” ์ธ์‹์ด ๋จผ์ €๋‹ค.
Downloads last month

-

Downloads are not tracked for this model. How to track
Video Preview
loading