Instructions to use Sungah/omx_1024_boxaug_act with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use Sungah/omx_1024_boxaug_act with LeRobot:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
OMX ์์ ์ฎ๊ธฐ๊ธฐ ยท ACT (์์ ๋ฐ๊พธ๊ธฐ ๋ฐ์ดํฐ ์ฆ๊ฐ + ๊ทธ๋ฆฌํผ ์ ๋ฅ) ์คํ ๋ฒ๋ค
Sungah/omx_1024_test_jihyeok_success์ ์ค์ ์์ฐ ์์์์ ์์ ์ธํ๋ง ๋ค๋ฅธ ์์๋ก ๋ฐ๊ฟ ๊ทธ๋ฆฐ ํฉ์ฑ ๋ฐ์ดํฐ๋ก ํ์ตํ ACT ๋ชจ๋ธ๊ณผ, ํ์ฅ PC์์ OMX ๋ก๋ด์ผ๋ก ๋ฐ๋ก ์ถ๋ก ํ๊ธฐ ์ํ ์คํฌ๋ฆฝํธ๋ฅผ ๋ด์์ต๋๋ค. "๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์ด ์ฐ๋ฉด ํจ๊ณผ๊ฐ ์๋๊ฐ?"๋ฅผ ํ์ธํ๋ ์คํ์ฉ ๋ชจ๋ธ์ ๋๋ค.
๋ค์ด ์๋ ๋ชจ๋ธ
| ํด๋ | ํ์ต๋ | step |
|---|---|---|
models/act_boxaug_grip_ep05 |
5 epoch | 88,655 step |
models/act_boxaug_grip_ep10 |
10 epoch | 177,310 step |
models/act_boxaug_grip_ep15 |
15 epoch | 265,965 step |
- lerobot 0.6.1 ยท ACT ยท ์ฒ์๋ถํฐ ํ์ต(์ด๋ฏธ์ง ์ธ์ฝ๋๋ง ImageNet ResNet18) ยท batch 16 ยท 1 epoch = 17,731 step
- ์
๋ ฅ: ์นด๋ฉ๋ผ
top(์์ชฝ) ยทwrist(์๋ชฉ) 640ร480 + ์ํ 7๊ฐ = ๊ด์ 6๊ฐ + ๊ทธ๋ฆฌํผ ์ ๋ฅ(Present_Current ์๋ ๊ฐ, mA) ยท 30fps - ๋ก๋ด ํ์
์
ROBOT_TYPE=auto(๊ธฐ๋ณธ)๊ฐ ๋ชจ๋ธ์ ๋ณด๊ณomx_follower_grip์ผ๋ก ์๋์ผ๋ก ๋ง์ถฅ๋๋ค. ๊ทธ๋ฆฌํผ ์ ๋ฅ๋omx_grip_robot.py๊ฐ ๋งค ์คํ ์ฝ์ด ๋ฃ์ต๋๋ค. - ์ฒดํฌํฌ์ธํธ๊ฐ ์ถ๊ฐ๋๋ฉด ์ด ์ ์ฅ์์ ์ด์ด์ ์ฌ๋ผ๊ฐ๋๋ค.
ํ์ต ๋ฐ์ดํฐ (์ฆ๊ฐ)
| ๊ตฌ๋ถ | ์ํผ์๋ | ํ๋ ์ |
|---|---|---|
| ์๋ณธ ์์ฐ 0~9 (ํํธ ์์ A๋ฅผ B ์์์ ์ง์ด ์ฎ๊ธฐ๊ณ , B๋ฅผ ๊ทธ ์์ ์์) | 10 | 10,787 |
| ํฉ์ฑ โ 0~9์์ ๋ ์์๋ฅผ ๋ค๋ฅธ ์์๋ก ๋ฐ๊ฟ (24๊ฐ์ง ์กฐํฉ ร 10) | 240 | 258,888 |
| ํฉ์ฑ โ ์์ฐ 10~14(๋ถํ ์ ๋ฌด๋ฌ ์์ 1๊ฐ)์์ ์์๋ฅผ AยทBยทW ๋ฑ์ผ๋ก ๋ฐ๊ฟ | 20 | 14,020 |
| ํฉ๊ณ | 270 | 283,695 |
- ๋ก๋ด ๋์(actionยท๊ด์ ยท๊ทธ๋ฆฌํผ ์ ๋ฅ)์ ์๋ณธ ๊ทธ๋๋ก์ด๊ณ , ๋ ์นด๋ฉ๋ผ ์์ ์ ์์์ ๊ฒ๋ชจ์ต๋ง ๋ฐ๋๋๋ค.
- ์์: ํํธ ์์ AยทB, ๋ถํ ์ ๋ฌด๋ฌ ์์("love you", ์ฌ์งยท์์ ๋ ๊ฐ์ง ๋ฌด๋ฌ), ํฐ "FOR YOU" ์์ W(๊ฒ์ ๋ชธํต).
- ๋ถํ ์ ๋ฌด๋ฌ ์์์ ์ค์ ์์ฐ 5๊ฐ(10~14)๋ ํ์ต์์ ๋บ์ต๋๋ค(ํ ์คํธ์ฉ). ๋ค๋ง ๊ฐ์ ๋์๊ณผ ๊ฐ์ ์์ ๋ฌด๋ฌ๊ฐ ํฉ์ฑ๋ณธ์ผ๋ก ํ์ต์ ๋ค์ด ์์ต๋๋ค.
- ์ค๋ฌผ ๋ก๋ด ์ฑ๊ณต๋ฅ ์ ์์ง ์ธก์ ์ ์ ๋๋ค. ์ฒดํฌํฌ์ธํธ๋ณ๋ก ๋ก๋ด์์ ๋น๊ตํด ๋ณด์ธ์.
๋น ๋ฅธ ์์
hf download Sungah/omx_1024_boxaug_act --local-dir omx_1024_boxaug_act
cd omx_1024_boxaug_act && chmod +x run.sh run_native.sh
A. ์ค์น๋ lerobot์ผ๋ก ์คํ (Docker ์์ด)
lerobot(0.6 ์ด์ ๊ถ์ฅ)์ด ์ค์น๋ ํ๊ฒฝ์ ์ผ ๋ค:
./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 calibrate # ์บ๋ฆฌ๋ธ๋ ์ด์
์ด ์์ ๋๋ง
./run_native.sh rollout
B. Docker๋ก ์คํ
./run.sh build # ์ต์ด 1ํ (CPU์ฉ ์ด๋ฏธ์ง)
./run.sh find-port
./run.sh find-cameras
./run.sh calibrate # ์ต์ด 1ํ
./run.sh rollout
์คํํ ๋ robot: omx_follower_grip์ด ์ถ๋ ฅ๋๋ฉด ๊ทธ๋ฆฌํผ ์ ๋ฅ ๋ชจ๋ธ๋ก ์คํ๋๋ ๊ฒ์
๋๋ค.
์ฒดํฌํฌ์ธํธ ๋ฐ๊พธ๊ธฐ
config.env์ MODEL๋ง ๋ฐ๊พธ๋ฉด ๋ฉ๋๋ค (๊ธฐ๋ณธ: models/act_boxaug_grip_ep15).
MODEL="${MODEL:-models/act_boxaug_grip_ep10}"
ํ์ผ์ ๊ณ ์น์ง ์๊ณ ์คํํ ๋๋ง ๋ฐ๊ฟ ์๋ ์์ต๋๋ค.
MODEL=models/act_boxaug_grip_ep05 ./run_native.sh rollout
์ค์ (config.env)
| ํญ๋ชฉ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
|---|---|---|
MODEL |
๊ฐ์ฅ ๋ง์ด ํ์ตํ ์ฒดํฌํฌ์ธํธ | ์ ํ์ ํด๋. ์คํํ ๋ MODEL=...์ ์์ ๋ถ์ด๋ฉด ๊ทธ ๊ฐ์ด ์ฐ์ |
ROBOT_TYPE |
auto |
๋ชจ๋ธ ์
๋ ฅ ํฌ๊ธฐ๋ก ์๋ ์ ํ (์ด ์ ์ฅ์ ๋ชจ๋ธ์ 7 โ omx_follower_grip) |
ROBOT_PORT |
/dev/ttyACM0 |
find-port ๊ฒฐ๊ณผ |
FRONT_CAM / WRIST_CAM |
/dev/video0 / /dev/video2 |
find-cameras ๊ฒฐ๊ณผ (์ฌ์ง์ผ๋ก ์์ชฝยท์๋ชฉ ๊ตฌ๋ถ) |
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 | ํ ์คํ ์ต๋ ์ด๋๋ (์์ ์ฅ์น). ๋๋ฌด ๋๋ฆฌ๋ฉด ํค์ฐ๊ฑฐ๋ ๋น์ |
DURATION |
30 | 1ํ ์คํ ์๊ฐ(์ด). ๋๋๋ฉด ์์ ์์ธ๋ก ๋์๊ฐ |
DEVICE |
cpu |
NVIDIA GPU๊ฐ ์์ผ๋ฉด cuda |
์คํ ์๋: CPU 8์ฝ์ด์์ ์์ธก 1ํ ์ฝ 0.6~1.0์ด โ CPU๋ N_ACTION_STEPS=50 ๊ถ์ฅ. GPU๋ฉด N_ACTION_STEPS=10 ์ ๋๊น์ง ์ค์ด๋ฉด ๋ฐ์์ด ๋นจ๋ผ์ง๋๋ค.
ํ์ฅ ์ฒดํฌ๋ฆฌ์คํธ
- ์นด๋ฉ๋ผ ์์นยท๊ฐ๋, ์กฐ๋ช , ์์ยทPinky ์์น๋ฅผ ๋ นํ ๋์ ์ต๋ํ ๋น์ทํ๊ฒ
- ์ฒ์์๋
MAX_RELATIVE_TARGET=10์ผ๋ก ์์ํ๊ณ , ๋ก๋ด ์์์ ์ ์์ ๋ฐ๋ก ๋ ์ ์๊ฒ ์ค๋น - ์์ ์ข ๋ฅ(ํํธ AยทB, ๋ถํ ์ ๋ฌด๋ฌ, ํฐ W)๋ณ๋ก, ์ฒดํฌํฌ์ธํธ๋ง๋ค ๊ฐ์ ๋ฐฐ์น์์ 10ํ์ฉ ์คํํด ์ฑ๊ณต๋ฅ ๊ธฐ๋ก
ํ์ผ
| ํ์ผ | ์ญํ |
|---|---|
run.sh / run_native.sh |
Docker / ์ค์น๋ lerobot ์คํ ์คํฌ๋ฆฝํธ |
config.env |
์คํ ์ค์ |
omx_rollout.py |
lerobot-rollout ์คํ๊ธฐ (+ ์ ํ: k์คํ ์์๋ธ) |
act_ensemble.py |
k์คํ temporal ensembling |
omx_grip_robot.py |
๊ทธ๋ฆฌํผ ์ ๋ฅ ๋ก๋ด ํ์
omx_follower_grip (์ด ์ ์ฅ์ ๋ชจ๋ธ ์ ๋ถ๊ฐ ์ฌ์ฉ, ์๋ ์ ํ) |
fix_model_config.py |
lerobot 0.4~0.5์์ ๋ชจ๋ธ ์ค์ ํธํ ์ฒ๋ฆฌ |
weights/ |
ResNet18 ๊ฐ์ค์น (์ธํฐ๋ท ์์ด ์คํ) |
Dockerfile |
์คํ์ฉ ์ด๋ฏธ์ง (lerobot 0.6.1, CPU torch) |