Robotics
LeRobot
Safetensors
act
omx

OMX ์ƒ์ž โ†’ ํ•‘ํ‚ค ยท ACT ์‹คํ–‰ ๋ฒˆ๋“ค

ROBOTIS OMX ๋กœ๋ด‡ํŒ”๋กœ ์ƒ์ž๋ฅผ ์ง‘์–ด ํ•‘ํ‚ค(ํฐ์ƒ‰ ์›ํ˜• ๋กœ๋ด‡) ์œ„์— ์˜ฌ๋ฆฌ๋Š” ์ž‘์—…์„ ํ•™์Šตํ•œ ACT ๋ชจ๋ธ๊ณผ, ํ•™์› PC์—์„œ ๋ฐ”๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ•œ ํด๋”์— ๋‹ด์•˜์Šต๋‹ˆ๋‹ค.

๋“ค์–ด ์žˆ๋Š” ๋ชจ๋ธ

ํด๋” ํ•™์Šต ๋ฐ์ดํ„ฐ ์ž…๋ ฅ state ๋กœ๋ด‡ ํƒ€์ž… (ROBOT_TYPE)
models/act_merged Sungah/omx_box_merged ๊ด€์ ˆ 6 omx_follower
models/act_merged_grip Sungah/omx_box_merged_grip ๊ด€์ ˆ 6 + ๊ทธ๋ฆฌํผ ์ „๋ฅ˜ 1 omx_follower_grip
  • lerobot 0.6.1 ยท ACT ยท ์ฒ˜์Œ๋ถ€ํ„ฐ ํ•™์Šต(์ด๋ฏธ์ง€ ์ธ์ฝ”๋”๋งŒ ImageNet ResNet18) ยท batch 8 ยท 100k step
  • ์นด๋ฉ”๋ผ: top(์œ„์ชฝ), wrist(์†๋ชฉ) ยท 640ร—480 ยท 30fps
  • ํ•™์Šต์—์„œ ๋บ€ ์‹œ์—ฐ 8๊ฐœ(๋ฐ์ดํ„ฐ์…‹ ์—ํ”ผ์†Œ๋“œ 5, 15, 25, 35, 45, 55, 61, 67)๋กœ ํ‰๊ฐ€

ํ‰๊ฐ€ ๊ฒฐ๊ณผ (๋…นํ™” ์˜์ƒ ๊ธฐ๋ฐ˜, ์ฒ˜์Œ ๋ณด๋Š” ์‹œ์—ฐ, 50์Šคํ… ์‹คํ–‰, lerobot ๋‹จ์œ„ ยท ๊ด€์ ˆ 1๋‹จ์œ„ โ‰ˆ 1.8ยฐ)

๋ชจ๋ธ 1022 ํ™˜๊ฒฝ ๊ด€์ ˆ / ๊ทธ๋ฆฌํผ ์˜ค์ฐจ v1 ํ™˜๊ฒฝ ๊ด€์ ˆ / ๊ทธ๋ฆฌํผ ์˜ค์ฐจ
act_merged 2.08 / 0.70 2.40 / 1.14
act_merged_grip 2.08 / 0.60 2.43 / 1.13

์‹ค๋ฌผ ๋กœ๋ด‡ ์„ฑ๊ณต๋ฅ ์€ ์•„์ง ์ธก์ •ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋น ๋ฅธ ์‹œ์ž‘

hf download Sungah/omx_box_act --local-dir omx_box_act
cd omx_box_act && chmod +x run.sh run_native.sh

A. ์„ค์น˜๋œ lerobot์œผ๋กœ ์‹คํ–‰ (Docker ์—†์ด)

lerobot์ด ์„ค์น˜๋œ ํ™˜๊ฒฝ์„ ์ผ  ๋’ค:

./run_native.sh check          # ๋ฒ„์ „ ํ™•์ธ, ๋ชจ๋ธ ๋กœ๋”ฉ ํ™•์ธ, ์บ˜๋ฆฌ๋ธŒ๋ ˆ์ด์…˜ ๋ชฉ๋ก
./run_native.sh find-port      # โ†’ config.env ์˜ ROBOT_PORT
./run_native.sh find-cameras   # โ†’ config.env ์˜ FRONT_CAM(์œ„์ชฝ), WRIST_CAM(์†๋ชฉ)
./run_native.sh rollout
  • lerobot 0.6 ์ด์ƒ ๊ถŒ์žฅ. 0.4~0.5์—์„œ๋Š” act_merged๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆฌํผ ์ „๋ฅ˜ ๋ชจ๋ธ๊ณผ ENSEMBLE_K๋Š” 0.6 ์ด์ƒ ํ•„์š”).
  • ์บ˜๋ฆฌ๋ธŒ๋ ˆ์ด์…˜์ด ์—†์œผ๋ฉด ./run_native.sh calibrate

B. Docker๋กœ ์‹คํ–‰

./run.sh build      # ์ตœ์ดˆ 1ํšŒ (CPU์šฉ ์ด๋ฏธ์ง€)
./run.sh find-port
./run.sh find-cameras
./run.sh calibrate  # ์ตœ์ดˆ 1ํšŒ
./run.sh rollout

์„ค์ • (config.env)

ํ•ญ๋ชฉ ๊ธฐ๋ณธ๊ฐ’ ์„ค๋ช…
MODEL models/act_merged ๊ทธ๋ฆฌํผ ์ „๋ฅ˜ ๋ชจ๋ธ์€ models/act_merged_grip
ROBOT_TYPE omx_follower ๊ทธ๋ฆฌํผ ์ „๋ฅ˜ ๋ชจ๋ธ์€ omx_follower_grip (์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋งž์ง€ ์•Š์œผ๋ฉด ์•Œ๋ ค์คŒ)
FRONT_CAM_NAME / WRIST_CAM_NAME top / wrist ๋ชจ๋ธ ์ž…๋ ฅ ์ด๋ฆ„. ๋ฐ”๊พธ์ง€ ๋งˆ์„ธ์š”
FPS 30 ํ•™์Šต ๋ฐ์ดํ„ฐ์™€ ๊ฐ™์•„์•ผ ํ•จ
N_ACTION_STEPS 50 ํ•œ ๋ฒˆ ์˜ˆ์ธก ํ›„ ์‹คํ–‰ํ•  ์Šคํ… ์ˆ˜ (์•„๋ž˜ ์ฐธ๊ณ )
ENSEMBLE_K / ENSEMBLE_M ๋น„์›€ / 0.01 k์Šคํ…๋งˆ๋‹ค ์˜ˆ์ธกํ•ด ๊ฒน์น˜๋Š” ์˜ˆ์ธก์„ ํ‰๊ท  (๋ถ€๋“œ๋Ÿฝ์ง€๋งŒ ๋ฐ˜์‘์ด ๋А๋ฆผ, GPU ๊ถŒ์žฅ)
MAX_RELATIVE_TARGET 10 ํ•œ ์Šคํ… ์ตœ๋Œ€ ์ด๋™๋Ÿ‰ (์•ˆ์ „์žฅ์น˜). ๋„ˆ๋ฌด ๋А๋ฆฌ๋ฉด ํ‚ค์šฐ๊ฑฐ๋‚˜ ๋น„์›€

์‹คํ–‰ ๊ธธ์ด์™€ ์†๋„

  • CPU 8์ฝ”์–ด์—์„œ ์˜ˆ์ธก 1ํšŒ์— ์•ฝ 0.6~1.0์ดˆ. ์˜ˆ์ธกํ•˜๋Š” ๋™์•ˆ ๋กœ๋ด‡์ด ์ž ๊น ๋ฉˆ์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • CPU: N_ACTION_STEPS=50 (๊ธฐ๋ณธ) ๊ถŒ์žฅ. GPU: DEVICE=cuda, N_ACTION_STEPS=10 ์ •๋„๊นŒ์ง€ ์ค„์ด๋ฉด ๋” ์ •ํ™•(๋…นํ™” ์˜์ƒ ํ‰๊ฐ€ ๊ธฐ์ค€).

๊ทธ๋ฆฌํผ ์ „๋ฅ˜ ๋ชจ๋ธ

  • omx_grip_robot.py๊ฐ€ OMX๋ฅผ ์ƒ์†ํ•ด ๊ทธ๋ฆฌํผ ๋ชจํ„ฐ์˜ Present_Current(๋ถ€ํ˜ธ ์žˆ๋Š” ์›์‹œ๊ฐ’, 1 = 1 mA)๋ฅผ 7๋ฒˆ์งธ state๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋…นํ™” ๋•Œ aux.gripper_current์™€ ๊ฐ™์€ ๊ฐ’์ž…๋‹ˆ๋‹ค.
  • ์บ˜๋ฆฌ๋ธŒ๋ ˆ์ด์…˜ ํŒŒ์ผ์€ ์ผ๋ฐ˜ omx_follower์™€ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹ค๋ฌผ ๋กœ๋ด‡ ์—†์ด ๊ฐ€์ƒ ๋ชจํ„ฐยท์นด๋ฉ”๋ผ๋กœ lerobot-rollout ์ „์ฒด ํ๋ฆ„์„ ๋Œ๋ ค, ์ •์ฑ…์— 7๊ฐœ ๊ฐ’ state๊ฐ€ ๋“ค์–ด๊ฐ€๊ณ  ๋™์ž‘ ๋ช…๋ น์ด ๋‚˜๊ฐ€๋Š” ๊ฒƒ๊นŒ์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค๋ฌผ ๋กœ๋ด‡์—์„œ๋Š” ์•„์ง ํ™•์ธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • lerobot-rollout์€ ์ด๋ฆ„์ด .pos/.vel๋กœ ๋๋‚˜๋Š” ๊ฐ’๋งŒ ์ •์ฑ…์— ๋„˜๊ธฐ๋ฏ€๋กœ, ์ฝ”๋“œ ์•ˆ์—์„œ๋Š” ์ „๋ฅ˜๋ฅผ gripper_current.pos๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค (๊ฐ’์€ ์ „๋ฅ˜ ๊ทธ๋Œ€๋กœ).

ํŒŒ์ผ

ํŒŒ์ผ ์—ญํ• 
run.sh / run_native.sh Docker / ์„ค์น˜๋œ lerobot ์‹คํ–‰ ์Šคํฌ๋ฆฝํŠธ
config.env ์‹คํ–‰ ์„ค์ •
omx_rollout.py lerobot-rollout + ๊ทธ๋ฆฌํผ ์ „๋ฅ˜ ๋กœ๋ด‡ + (์„ ํƒ) k์Šคํ… ์•™์ƒ๋ธ”
omx_grip_robot.py omx_follower_grip ๋กœ๋ด‡ ํƒ€์ž…
act_ensemble.py k์Šคํ… temporal ensembling
fix_model_config.py lerobot 0.4~0.5์—์„œ ๋ชจ๋ธ ์„ค์ • ํ˜ธํ™˜ ์ฒ˜๋ฆฌ
weights/ ResNet18 ๊ฐ€์ค‘์น˜ (์ธํ„ฐ๋„ท ์—†์ด ์‹คํ–‰)
Dockerfile ์‹คํ–‰์šฉ ์ด๋ฏธ์ง€ (lerobot 0.6.1, CPU torch)

์•ˆ์ „

  • ์ฒ˜์Œ์—๋Š” MAX_RELATIVE_TARGET=10์œผ๋กœ ์‹œ์ž‘ํ•˜๊ณ , ๋กœ๋ด‡ ์˜†์—์„œ ์ „์›์„ ๋ฐ”๋กœ ๋Œ ์ˆ˜ ์žˆ๊ฒŒ ์ค€๋น„ํ•˜์„ธ์š”.
  • ์นด๋ฉ”๋ผ ์œ„์น˜ยท์กฐ๋ช…ยท๋ฌผ์ฒด๊ฐ€ ํ•™์Šต ๋ฐ์ดํ„ฐ์™€ ๋‹ค๋ฅด๋ฉด ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.
Downloads last month

-

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

Datasets used to train Sungah/omx_box_act