Skip to main content

Command Palette

Search for a command to run...

ACT: Action Chunking으로 정밀 양팔 조작 — ResNet18·Transformer Decoder·CVAE 완전 분석

비전인코더부터 텐서흐름, 손실함수, Temporal Ensemble까지 — 50개 시연으로 96% 성공률의 비밀

Published
9 min read
T
I build robots for a living. Not in simulation. Not in a lab. On the floor, with real hardware, real failure modes, and real deadlines. My work spans the full stack of modern robotics: embedded systems firmware, autonomous navigation, and the end-to-end pipeline for Vision-Language-Action (VLA) model development — dataset collection, training, inference optimization, and sim-to-real transfer. I've worked hands-on with platforms from Unitree, Deep Robotics, Dexmate, and Robotis, among others. Each one teaches you something different about the gap between what models promise and what robots actually do.

TL;DR

ACT(Action Chunking with Transformers)는 Stanford 연구팀이 2023년 발표한 양팔 로봇 정밀 조작을 위한 모방학습 알고리즘입니다. 핵심 두 가지: (1) Action Chunking — 매 스텝이 아닌 k개 액션을 한 번에 예측해 오차 누적을 k배 줄임, (2) CVAE — 인간 시연의 다양성을 스타일 변수 z로 포착. $20,000짜리 저가형 양팔 로봇 ALOHA 위에서 배터리 삽입, 신발 신기, 지퍼백 닫기 등 6개 정밀 작업에서 80~96% 성공률 달성. 단 50번의 시연(약 10분 데이터)만으로. 이후 ALOHA 2, Mobile ALOHA, ACT+ 등 후속 연구의 기반이 되었고, π0의 Action Chunking 개념도 여기서 출발합니다.


Background: 왜 정밀 양팔 조작이 어려운가

배터리를 정확한 방향으로 삽입하거나, 벨크로를 균일하게 붙이거나, 신발 끈을 묶는 동작 — 인간에게는 쉽지만 로봇에게는 매우 어렵습니다.

왜 어려운가:

  1. 오차 누적(Compounding Error): 모방학습의 고질병. 스텝 t에서 약간 틀리면 스텝 t+1의 상태가 훈련 분포를 벗어나고, 오차가 기하급수적으로 커짐
  2. 다중 모드 행동(Multimodal Behavior): 인간이 같은 작업을 여러 방식으로 수행 → 단순 평균은 어느 방법도 아닌 중간값 → 잘못된 정책
  3. 고주파 정밀 제어: 50Hz 연속 관절 제어 필요 → 이산 토큰 방식 VLA로는 힘듦
  4. 비싼 하드웨어 장벽: 기존 연구는 수백만 달러짜리 로봇 전제

기존 접근법의 한계:

  • BC (Behavior Cloning): 오차 누적에 취약, 정밀 작업에서 0% 성공
  • RT-1: 이산 액션 토큰 → 고주파 정밀 제어 어려움
  • GAIL/RL: 로봇 환경에서 샘플 효율 낮음, 보상 설계 어려움

ACT의 해결책: Action Chunking + CVAE.


Core Architecture

ACT 아키텍처 Fig.2. ACT 전체 아키텍처 — CVAE 인코더(훈련 시만 사용) + Vision Encoder + Transformer Encoder/Decoder 정책

Vision Encoder: ResNet18 기반 멀티뷰 처리

ACT의 비전 인코더는 ResNet18 (ImageNet pretrained)입니다. SigLIP(OpenVLA/π0)과 다르게 경량 CNN 기반 — 50Hz 실시간 제어에 맞는 선택입니다.

카메라 4개 (고정 2 + 손목 2) → 각각 독립 ResNet18 인코딩

입력: 480×640 RGB 이미지
      → ResNet18 feature extractor
      → Global Average Pooling
      → 512-dim 이미지 특징 벡터 (카메라별)

4개 카메라 출력: [f_cam0 | f_cam1 | f_cam2 | f_cam3]
                  각 512-dim → concat or positional embedding 추가

왜 SigLIP/ViT가 아닌 ResNet18인가?

인코더파라미터추론 속도용도
ResNet1811M~3ms/frameACT (50Hz 제어)
ViT-B/1686M~15ms/frame고수준 이해
SigLIP-400M400M~50ms/frameVLA (OpenVLA, π0)

50Hz 제어 = 20ms 이내에 전체 추론 완료 필요. ResNet18이 현실적인 선택.

Transformer Encoder: 멀티모달 관측 통합

비전 특징, 관절 정보, 스타일 변수를 하나의 시퀀스로 통합합니다:

토큰 시퀀스 구성:
  [z_token]                    # 스타일 변수 (1개)
  [joint_token]                # 관절 위치 14-dim → linear projection → d_model
  [img_token_0 ... img_token_N] # ResNet18 feature map의 공간 위치별 토큰

→ Positional Embedding 추가
→ Transformer Encoder (표준 BERT 스타일)
   - Multi-head Self-Attention
   - Feed-Forward Network
   - Layer Normalization
→ 출력: 컨텍스트화된 토큰 시퀀스 (메모리)

핵심: 이미지의 어느 위치를 관절의 어느 상태와 연관짓는지를 self-attention이 자동으로 학습.

Transformer Decoder: 액션 청크 생성

k개의 학습 가능한 쿼리 토큰이 액션 시퀀스를 생성합니다:

쿼리 토큰: Q_0, Q_1, ..., Q_{k-1}   (각각 d_model dim, 랜덤 초기화 → 학습)

Transformer Decoder (각 레이어):
  1. Self-Attention(Q_i, Q_j)       # 쿼리들끼리 상호작용 (시간적 일관성)
  2. Cross-Attention(Q_i, Memory)   # 관측 컨텍스트를 쿼리에 주입
  3. FFN + LayerNorm

출력: 각 Q_i → Linear(d_model → 14)
             → â_i = [Δθ_1, ..., Δθ_14]  # 14개 관절의 위치 예측

텐서 흐름 전체:

[훈련]
이미지 (4, 3, 480, 640)
  └─ ResNet18 × 4 → (4, 512, H', W') → flatten → (N_vis, 512) → (N_vis, d_model)

관절 (14,) → Linear → (1, d_model)

z (d_z,) → Linear → (1, d_model)

시퀀스 = concat([z_token, joint_token, img_tokens])  # (2+N_vis, d_model)
  └─ Transformer Encoder → Memory  (2+N_vis, d_model)

쿼리 토큰 (k, d_model)
  └─ Transformer Decoder (cross-attn Memory) → (k, d_model)
  └─ Linear → (k, 14)  = 액션 청크 â_{t:t+k}

[추론]
z = 0 (prior mean)  ← CVAE 인코더 버림
나머지 동일

CVAE: 인간 시연의 다양성을 담는 그릇

ACT는 Conditional VAE 구조를 씁니다. CVAE 인코더는 훈련 시에만 존재하고 추론 시 버립니다:

CVAE 인코더 (훈련 전용):
  입력: 관측 + 액션 시퀀스 a_{t:t+k}
  → Transformer Encoder (경량)
  → [CLS] 토큰 → Linear → μ (d_z,), log σ² (d_z,)
  → z ~ N(μ, σ²)  (reparameterization trick)

왜 CVAE인가?

인간 시연에는 다중 모드(multimodal) 패턴이 있습니다. 왼손 먼저 집을 수도, 오른손 먼저 집을 수도. 단순 MSE는 두 방법의 평균 예측 → 어느 방법도 아닌 동작.

스타일 변수 z가 "이번 시연은 이런 방식"을 인코딩 → 멀티모달 분포를 자연스럽게 처리.

인간 데이터에서 CVAE 제거 시: 35.3% → 2%. 스크립트 데이터(일관성 있음)에서는 거의 무관.

손실 함수 상세

L_total = L_reconstruct + β · L_KL

── L_reconstruct ──────────────────────────────────
L_reconstruct = (1/k) · Σ_{i=0}^{k-1} |â_i - a_i|₁

  • L1 loss (MAE) 사용 — L2보다 우수
  • L2는 다중 모드에서 평균값으로 수렴하는 경향 (mode averaging)
  • L1은 피크 쪽으로 수렴하는 경향 (mode seeking)
  • k=100 스텝 전체에 대해 평균

── L_KL ────────────────────────────────────────────
L_KL = D_KL(N(μ, σ²) || N(0, I))
     = (1/2) · Σ (μ² + σ² - log σ² - 1)

  • CVAE 인코더가 과도하게 z에 의존하지 않도록 정규화
  • β 파라미터: 기본 β=10 (KL 비중 조절)
  • β 크면 z 무시 → 추론 시 z=0으로도 잘 동작
  • β 작으면 z에 과의존 → 추론 시 성능 저하

── 학습 요약 ─────────────────────────────────────
optimizer: AdamW
lr: 1e-5 (backbone), 1e-4 (나머지)
batch: 8, epochs: 2000 (약 50데모 × 200에포크/데모)

Action Chunking: 오차 누적의 수학적 해결

Action Chunking & Temporal Ensemble Fig.3. Action Chunking과 Temporal Ensemble 시각화

핵심 통찰: k스텝을 한 번에 예측하면 유효 호라이즌(effective horizon)이 k배 짧아집니다.

단일 스텝 (k=1): T번 쿼리 → 오차 누적 ∝ e^T
청크 (k=100):   T/100번 쿼리 → 오차 누적 ∝ e^(T/100)

Slot Battery 태스크 실험:

청크 크기 k성공률
11%
1026%
5084%
10096%

k=1 → k=100: 아키텍처 변경 없이 단순히 청크 크기만 키워서 1% → 96%. 이 결과가 Action Chunking의 핵심 증거.

Temporal Ensemble: ACT가 실제로 부드럽게 동작하는 이유

Action Chunking만 있으면 k스텝마다 청크 경계에서 급격한 방향 전환이 발생합니다. Temporal Ensemble이 이를 해결하는 방식이 ACT의 실용성을 결정적으로 높입니다.

동작 방식:

타임스텝 t에서:
  → 새 청크 쿼리: [â_t^(0), â_{t+1}^(0), ..., â_{t+k-1}^(0)]

타임스텝 t+1에서:
  → 또 새 청크 쿼리: [â_{t+1}^(1), â_{t+2}^(1), ..., â_{t+k}^(1)]

타임스텝 t+2에서:
  → 또 새 청크 쿼리: ...

타임스텝 t+1의 실행 액션:
  â_{t+1}^(0): w_0 = exp(-m·1)  ← 1스텝 전 예측
  â_{t+1}^(1): w_1 = exp(-m·0)  ← 방금 예측  ← 가중치 최대
  → a_exec = (w_1·â^(1) + w_0·â^(0)) / (w_1 + w_0)

왜 이게 중요한가:

  1. 노이즈 평균화: 각 추론마다 약간의 예측 변동 → 앙상블이 분산을 줄임
  2. 최신 관측 반영: 방금 찍은 이미지로 예측한 액션에 최고 가중치 → 외란에 빠르게 반응
  3. 부드러운 연속성: 인접 타임스텝의 예측이 공유되어 저크(jerk) 감소

결과: 3~4% 성능 향상 + 육안으로 확인 가능한 동작 부드러움. 실제 배포에서 Temporal Ensemble 없는 ACT와 있는 ACT는 영상으로 보면 명확히 다릅니다.


ALOHA 하드웨어 (요약)

ALOHA 하드웨어

ViperX 6-DOF × 2 (팔로워) + WidowX × 2 (리더), 카메라 4개, 총 ~$20,000. 50Hz 관절 위치 제어. 상세 스펙보다 중요한 건 이 플랫폼이 ACT의 공개 재현 기준이 됐다는 점 — 코드·하드웨어 모두 오픈소스로 공개돼 전 세계 연구팀이 동일 세팅에서 비교 실험 가능.


실험 결과

실제 로봇 6개 태스크

실제 태스크 Fig.4. 6개 실제 태스크 — 각각 50개 시연으로 학습

태스크ACTBC-ConvMLPVINNRT-1
Slide Ziploc88%0%0%0%
Slot Battery96%0%0%0%
Open Cup84%0%0%-
Thread Velcro20%0%0%-
Prep Tape64%0%0%-
Put On Shoe92%20%0%-

가장 어려운 태스크(Slide Ziploc, Slot Battery)에서 모든 베이스라인이 0%일 때 ACT는 88~96%.

Thread Velcro(벨크로 연결)가 20%로 낮은 이유: 밀리미터 단위 정렬 필요 + 촉각 피드백 없이는 어려운 작업.

시뮬레이션 태스크

태스크ACT (스크립트)ACT (인간 데이터)
Cube Transfer97%82%
Bimanual Insertion90%60%

스크립트(일관된) 데이터 vs 인간(다양한) 데이터 간의 차이가 CVAE의 중요성을 보여줍니다.


Key Experiments

청크 크기 Ablation

가장 인상적인 실험: k=1(단일 스텝) → k=100까지 청크 크기 증가.

Slot Battery 성공률:
k=11%
k=1026%
k=5084%
k=10096%

이 결과는 오차 누적이 정밀 작업에서 얼마나 치명적인지, 그리고 Action Chunking이 얼마나 강력한 해결책인지를 직접 증명.

CVAE의 필요성

설정성공률
ACT 전체 (인간 데이터)35.3% (평균)
CVAE 없이 (인간 데이터)2%
ACT 전체 (스크립트 데이터)높음
CVAE 없이 (스크립트 데이터)거의 동일

CVAE는 인간 데이터의 다양성을 처리하는 데 핵심. 균일한 스크립트 데이터에서는 없어도 됨.

제어 주파수 사용자 연구

6명 참가자 대상: 50Hz vs 5Hz 원격조작 비교

  • 50Hz가 62% 더 빠른 태스크 완료
  • 통계적 유의성 p<0.001

고주파 제어가 정밀 작업에 왜 중요한지를 정량적으로 입증.


Limitations — 현장 엔지니어 관점

알고리즘적 한계:

  1. 오픈루프 청크 취약성: π0와 동일한 문제. k=100 스텝을 한 번에 실행하면 중간 외란에 대응 불가. 물체가 예상과 다르게 움직이면 청크 나머지가 모두 틀림

  2. 분포 이동에 민감: 훈련 시연과 다른 초기 상태에서 성능 급락. Thread Velcro 20% — 이 작업은 초기 정렬이 조금만 달라도 실패

  3. 카메라 의존성: 모든 정책이 4개 카메라 이미지에 의존. 카메라 외란(가림, 반사, 조명 변화)에 취약

  4. 태스크별 학습: 각 태스크마다 별도 정책 학습 필요. 하나의 정책이 여러 태스크를 처리하는 범용 정책 아님

현장 관점 추가:

  • $20,000의 함정: 연구용으로는 저렴하지만 상용화에는 여전히 높은 장벽. 리더 팔도 2개 필요해서 실제 제어 인프라 비용이 더 있음

  • 50개 시연의 편차: "50개 시연으로 96% 성공"은 잘 설계된 특정 태스크에서의 결과. 새 태스크에 적용할 때 몇 개가 필요한지는 작업 난이도에 따라 크게 다름

  • 그리퍼 디자인이 성능을 결정: 논문의 커스텀 그립 테이프 그리퍼가 마찰력을 높여 성공률에 기여. 다른 그리퍼로 교체하면 재조정 필요

  • 청크 크기 k 튜닝: k=100이 Slot Battery에 최적이지만 다른 태스크에서는 다를 수 있음. 작업 시간 길이와 제어 주파수에 맞게 조정 필요

  • Temporal Ensemble 파라미터 m: 가중치 감쇠 m이 동작 부드러움에 직접 영향. 너무 크면 최신 예측만 사용 (불연속), 너무 작으면 과거 예측이 너무 많이 반영 (지연)


The Lineage — ACT의 계보

시스템/논문관계
Behavior Cloning (BC)모방학습의 기반, 오차 누적 문제 보유
DAgger (Ross et al. 2011)BC 오차 누적 해결 시도 — 온라인 수집 필요
Diffusion Policy (Chi et al. 2023)동시기 연구, 확산 모델로 멀티모달 행동 처리
GAIL (Ho & Ermon 2016)GAN 기반 모방학습, 샘플 효율 낮음
ALOHA (Zhao et al. 2023)ACT의 하드웨어 플랫폼, 동 논문에서 발표
ACT (Zhao et al. 2023)Action Chunking + CVAE, 현장 정밀 조작의 표준
ACT+ / ACT++ACT 후속, 더 다양한 환경에 적용
Mobile ALOHA (He et al. 2024)ALOHA를 모바일 플랫폼으로 확장, ACT 기반
π0 (Black et al. 2024)Action Chunking 개념 채용 + Flow Matching으로 확장
ALOHA 2 (Google DeepMind 2024)ALOHA 하드웨어 개선판

ACT가 만든 공식: 저가 하드웨어 + 적은 시연 + Action Chunking = 높은 성공률. 이 공식이 이후 로봇 학습 연구의 중요한 기준이 됩니다.


Summary — Key Takeaways

  1. Action Chunking이 오차 누적을 끊는다 — k스텝을 한 번에 예측하면 유효 호라이즌이 k배 짧아짐. k=1에서 1%, k=100에서 96% — 단순히 청크 크기를 키우는 것만으로 100배 성능 향상

  2. CVAE가 인간 데이터의 다양성을 소화한다 — 스타일 변수 z가 동일 작업의 다양한 시연 방법을 구분. CVAE 없이 인간 데이터 학습: 35% → 2%. 단순 MSE는 멀티모달 분포를 처리 불가

  3. Temporal Ensemble이 청크 경계의 불연속을 해결한다 — 매 스텝 쿼리 + 지수 가중 평균. 3~4% 추가 성능 + 동작 부드러움. 큰 설계 없이 구현 가능한 실용적 트릭

  4. 저가 하드웨어 + 50개 시연 = 실용적 정밀 조작 — $20,000 ALOHA + 10분 데이터로 배터리 삽입(96%), 신발 신기(92%). 비싼 하드웨어 없이 연구실·스타트업에서 재현 가능한 수준

  5. Action Chunking은 범용 트릭이다 — BC-ConvMLP와 VINN에 청크를 추가하자 성능이 향상됨을 실험으로 확인. 특정 아키텍처에 종속된 게 아니라 일반적으로 유효한 원칙 — π0, ACT++, 다양한 후속 연구에서 채택


📚 논문: arXiv:2304.13705

🤖 프로젝트: ALOHA 프로젝트 페이지

🐙 코드: GitHub: tonyzhaozh/act

다음 포스트: RPP — 로봇 경로 추적 컨트롤러

More from this blog

TwinVLA: 단일 팔 VLA 두 개로 양팔 조작 구현 — 50 에피소드로 RDT-1B 능가

TL;DR TwinVLA(arXiv:2511.05275)는 두 개의 사전 훈련된 단일 팔 VLA를 조합해 양팔 조작(Bimanual Manipulation)을 구현하는 프레임워크다. 양팔 데이터로 처음부터 대규모 사전 훈련 없이, 단일 팔 데이터만으로 사전 훈련된 SingleVLA(0.8B)를 두 개 인스턴스로 구성하고 Joint Attention + Causal Mask로 양팔을 협조시킨다. 결과: RDT-1B(학습 데이터 2,400시간)을 ...

Apr 21, 20268 min read1

Swerve Drive: 슬립 없는 전방향 이동 플랫폼 완전 분석 (2휠/3휠/4휠 비교)

TL;DR Swerve Drive(스워브 드라이브)는 각 바퀴가 독립적으로 조향(steering)과 구동(driving)을 동시에 수행하는 전방향 이동 플랫폼이다. 모든 방향으로 슬립 없이 이동할 수 있으면서도 메카넘 휠 대비 높은 견인력을 유지한다. 핵심은 역기구학(Inverse Kinematics): 원하는 차체 속도(vx, vy, ω)를 입력받아 각 바퀴의 속도와 각도를 실시간 계산한다. 산업용 AGV, 경쟁 로봇(FRC), 서비스 로봇 ...

Apr 20, 202612 min read5

telos-robotics

26 posts

VLA Paper Reviews RT-1, RT-2, π0, OpenVLA, Octo — the models that define where robot learning is headed. Not just summaries. Architecture breakdowns, training details, deployment considerations. Autonomous Driving Navigation Path planning algorithms, localization techniques (LiDAR SLAM ...), perception stacks. The building blocks of autonomous mobile robots. Robot Platform Notes Hands-on observations from working with specific hardware. Things you only learn by running the robot until it fails.