π₀ 모델 전체 제안 아키텍쳐

Abstract - 

π₀ 모델은 이전 연구되는 모델과 다르게 실제 로봇 적용에 초점을 맞춘 논문이다.  본 논문에서 우리는 generalist robot policies, 즉 robot foundation models가 이러한 도전과제들을 어떻게 해결할 수 있는지, 그리고 복잡하고 매우 정교한 작업을 위한 효과적인 generalist robot policy를 어떻게 설계할 수 있는지를 논의한다.

저자는 직접 prompting을 통해 작업을 수행하는 능력, 사람과 high-level VLM policy로부터의 언어 지시를 따르는 능력, 그리고 fine-tuning을 통해 새로운 skill을 습득하는 능력 측면에서 모델을 평가한다.

 

하지만 그것보다도 이 논문에서 주의 깊게 봐야할 사항은 이전 논문 흐름과 다른 흐름을 준다는 것 이다. continuous action trajectory를 generative model로 생성하는 방법으로 넘어갔기 때문이다.

 

Introduction - 

좁은 task 데이터만으로 로봇을 학습하면, 그 task에서는 잘할 수 있지만 새로운 물체, 새로운 환경, 실패 상황에 약하다. 반면 다양한 로봇 데이터로 사전학습하면 더 넓은 관측, 행동, 복구 행동을 배울 수 있다.

하지만 저자들은 generalist robot policy를 만들기 위해 세 가지 문제가 있다고 한다.

첫째, scale이다.
대규모 사전학습의 이점은 작은 규모에서는 잘 안 나타날 수 있으므로, 충분히 큰 데이터와 학습 규모가 필요하다.

둘째, architecture이다.
모델은 다양한 로봇, 다양한 입력, 다양한 action space를 처리해야 한다. 동시에 물리적 장면에서 필요한 섬세한 행동도 표현해야 한다.

셋째, training recipe이다.
저자들은 이게 특히 중요하다고 본다. LLM/VLM도 단순히 큰 모델만으로 되는 게 아니라, pre-training data와 post-training data를 어떻게 구성하느냐가 매우 중요했기 때문이다.

π0가 제안하는 해결책

π0는 위 세 문제를 다음처럼 해결하려고 한다.

VLM backbone 사용

π0는 사전학습된 VLM을 기반으로 한다. 논문 후반부에 따르면 PaliGemma를 사용한다.

이유는 간단하다.VLM이 이미 가진 인터넷 규모의 시각-언어 지식, 의미 추론, 문제 해결 능력을 로봇 policy에 가져오기 위해서다.

즉 로봇이 처음부터 모든 것을 로봇 데이터만으로 배우는 게 아니라, VLM의 semantic knowledge를 상속받는 구조다.


Robot action을 붙여 VLA로 만든다

VLM은 원래 이미지와 언어를 처리하지만, 로봇 action을 직접 출력하지는 않는다.

π0는 여기에 robot action output을 추가해서 VLA로 바꾼다.

논문에서는 이를 위해 action expert를 붙인다.

VLM backbone
+ robot state/action을 처리하는 action expert
→ VLA model π0
 

여기서 action expert는 continuous action을 생성하는 별도 모듈이라고 보면 된다.


Cross-embodiment training

π0는 한 종류의 로봇만 학습하지 않는다.

단일 팔, 양팔, 모바일 매니퓰레이터 등 여러 embodiment의 데이터를 함께 학습한다.

이게 중요한 이유는 로봇마다 action dimension, joint 구성, camera 개수, action representation이 다르기 때문이다.

π0는 이런 다양한 로봇 데이터를 하나의 모델에 넣어 학습하는 cross-embodiment training을 한다.

즉 목표는:

특정 로봇 전용 policy가 아니라, 여러 로봇 플랫폼을 아우르는 generalist robot policy

다.


Flow matching + action chunking

π0의 가장 큰 기술적 특징은 flow matching 기반 action generation이다.

기존 OpenVLA류 autoregressive VLA는 action을 token처럼 하나씩 예측한다. 반면 π0는 continuous action distribution을 flow matching으로 모델링한다.

쉽게 말하면:

random noise action
→ flow를 따라 실제 action trajectory로 변환
→ 연속 action chunk 생성
 

이 방식은 diffusion 계열과 비슷한 생성 모델 방식이다.

그리고 action을 한 timestep씩 생성하지 않고 action chunk로 생성한다. 그래서 50Hz 같은 고주파 제어가 가능하다.


Training recipe: pre-training과 post-training의 역할 분리

Introduction에서 매우 중요한 부분은 pre-training/post-training에 대한 설명이다.

저자들은 로봇도 LLM처럼 두 단계가 필요하다고 본다.

Pre-training

역할은 넓은 능력과 일반화 능력을 얻는 것이다.

다양한 로봇
다양한 작업
다양한 품질의 데이터
실수와 회복 행동까지 포함
 

이런 데이터로 학습하면 모델이 넓은 상황을 경험하고, 실패했을 때 회복하는 행동도 배울 수 있다.

Post-training / fine-tuning

역할은 특정 task를 능숙하고 효율적으로 수행하도록 만드는 것이다.

더 좁지만 고품질인 데이터
일관된 전략
정교하고 효율적인 수행
 

저자들이 하고 싶은말은 결국  고품질 데이터만 보면 실수를 거의 못 보기 때문에 회복 행동을 못 배운다. 반대로 낮은 품질의 다양한 데이터만 보면 정교하고 효율적인 수행을 못 배운다. 

 

주요 Contribution 은 다음과 같음

1. 언어 명령으로 바로 수행하는 out-of-the-box 평가
2. downstream task에 fine-tuning하는 평가
3. high-level semantic policy와 결합해 긴 task를 수행하는 평가

 

 

 

OVERVIEW

fig3

 

THE π0 MODEL-

Figure 3에 나타난 π0 모델은 주로 language model transformer backbone으로 구성된다.

표준 late fusion VLM 레시피 를 따라, image encoder는 로봇의 image observation을 language token과 동일한 embedding space로 임베딩한다.

저자는 이 backbone에 로봇 특화 입력과 출력, 즉 proprioceptive staterobot action을 추가로 보강한다.

π0는 action의 continuous distribution을 모델링하기 위해 conditional flow matching 을 사용한다. (이쪽이 중요!)

Flow matching은  모델에 높은 정밀도와 multimodal modeling 능력을 제공하며, 특히 high-frequency dexterous task에 매우 적합하다고 한다.

저자의 architecture는 Transfusion 에서 영감을 받았다. Transfusion은 하나의 transformer를 여러 objective로 학습한다. 여기서 continuous output에 해당하는 token들은 flow matching loss로 supervision되고, discrete output에 해당하는 token들은 cross-entropy loss로 supervision된다.

 

Transfusion을 바탕으로, 저자는 robotics-specific token, 즉 action과 state에 해당하는 token에 대해 별도의 weight set을 사용하는 것이 성능 향상으로 이어진다는 점을 추가로 발견했다.

(transfusion 참고)

https://kimjy99.github.io/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0/transfusion/

 

[논문리뷰] Transfusion: Predict the Next Token and Diffuse Images with One Multi-Modal Model

Transfusion 논문 리뷰 (ICLR 2025 Oral)

kimjy99.github.io

 

 

이 설계는 두 개의 mixture element를 가진 mixture of experts 와 유사하다. 첫 번째 element는 image와 text input에 사용되고, 두 번째 element는 robotics-specific input과 output에 사용된다.

저자는 이 두 번째 weight set을 action expert라고 부른다.

 

1. π0의 전체 구조

π0는 크게 두 덩어리로 볼 수 있다.

π0 =
1. VLM backbone
2. Action expert
 

VLM backbone

VLM backbone은 이미지와 언어를 이해하는 부분

입력은 대략 이런 것들이다.

카메라 이미지들
+ 언어 명령
+ 로봇 proprioceptive state
 

여기서 proprioceptive state는 로봇 자신의 내부 상태이다. 예를 들면 joint angle, gripper state 같은 것.

즉 로봇이 외부를 보는 정보가 camera image라면, proprioceptive state는 “내 팔이 지금 어떤 자세인지”에 해당한다.


Action expert

Action expert는 실제 robot action을 생성하는 부분이야.

π0 논문에서는 기존 VLM에 robot-specific token을 처리하는 별도 weight를 추가한다. 이게 action expert다.

왜 별도로 두냐면, 이미지/언어 token과 robot action/state token은 성격이 너무 다르기 때문이다.

이미지/언어 token: 의미 이해, 시각 인식, instruction following
robot state/action token: 물리적 제어, 연속값, 운동학적 구조
 

그래서 모든 걸 같은 transformer weight로 처리하기보다, robot-specific input/output에는 별도의 expert를 둔 것이다.

논문은 이걸 mixture-of-experts와 유사하다고 설명한다. 첫 번째 expert는 image/text용, 두 번째 expert는 robot state/action용이라고 보면 된다.


2. π0가 예측하는 것은 action 하나가 아니라 action chunk

π0는 현재 시점에서 action 하나만 예측하지 않는다.

미래 여러 step의 action sequence를 한 번에 예측한다.

논문에서는 이를 이렇게 쓴다.

At=[at,at+1,...,at+H−1]

여기서 At는 action chunk이고, H는 chunk 길이다. π0 논문에서는 H=50을 사용한다고 되어 있다.

즉 현재 관측을 보고:

지금 action 하나만 예측
 

하는 게 아니라,

앞으로 50 step 동안 실행할 action sequence 예측
 

을 하는 구조다.

이게 중요한 이유는 real robot control에서 매 순간 거대한 VLM을 호출하면 너무 느리기 때문이다. 한 번 호출해서 action chunk를 뽑아놓으면, 로봇은 그 chunk를 순서대로 실행할 수 있다.


3. observation ot는 무엇인가?

논문에서 observation은 이렇게 정의된다.

ot=[It1,...,Itn,ℓt,qt]

이걸 풀면:

기호의미
It1,...,Itn 여러 개의 RGB camera image
ℓt language command token sequence
qtq robot joint angle vector, 즉 proprioceptive state

π0는 로봇마다 2개 또는 3개의 카메라 이미지를 사용한다고 되어 있다.

예를 들어 양팔 로봇이면:

base camera
left wrist camera
right wrist camera
 

이런 식으로 들어갈 수 있다.

각 image와 state는 encoder를 거친 뒤, language token과 같은 embedding space로 projection된다.

쉽게 말하면, 서로 다른 modality를 모두 transformer가 처리할 수 있는 token 형태로 바꾸는 것이다.

image → image embeddings
language → language token embeddings
robot state → state embedding
 

그리고 이걸 하나의 sequence처럼 transformer에 넣는다.


4. 기존 VLA와 π0의 가장 큰 차이: action을 token으로 안 뽑는다

RT-2나 기존 OpenVLA는 action을 discrete token으로 바꿔서 autoregressive하게 생성한다.

예를 들어 action 값이 원래 연속값이면, 이를 256개 bin 중 하나로 이산화한다.(RT 계열과 OpenVLA 계열)

0.37 → 184번 action token
 

그다음 언어 모델처럼 다음 token을 예측한다.

action token 1 → action token 2 → action token 3 ...
 

그런데 π0는 이 방식이 아니다.

π0는 action을 continuous distribution으로 보고, flow matching으로 생성한다.

즉 action을 단어처럼 하나씩 뽑는 게 아니라, 연속적인 trajectory를 생성 모델처럼 만들어낸다.


5. flow matching

flow matching은 diffusion과 비슷한 생성 모델 계열이라고 보면 된다.

아주 단순하게 말하면:

랜덤 노이즈 action
→ 점점 실제 action처럼 바꿈
→ 최종 action trajectory 생성
 

이다.

처음에는 완전히 랜덤한 action chunk에서 시작한다.

A_t^0 ~ noise
 

예를 들어 아무 의미 없는 50-step action sequence가 있다고 한다면  flow matching model은 여기에 방향 벡터를 준다.

지금 noisy action을 실제 expert action 쪽으로 조금 이동시켜라
 

이 과정을 여러 번 반복하면 noisy action이 점점 expert action trajectory에 가까워진다.

noise
→ 조금 덜 noisy한 action
→ 더 그럴듯한 action
→ 최종 robot action chunk
 

π0는 inference 때 이 과정을 10 integration step으로 수행한다.


6. 학습

학습 데이터에는 expert demonstration이 있다.

즉 정답 action chunk At가 있다.

π0는 학습 중에 이 정답 action에 noise를 섞는다.

Atτ=τAt+(1−τ)ϵ

 

여기서:

기호의미
At 정답 action chunk
ϵ random noise
τ flow matching timestep, 0에서 1 사이
Atτ noise가 섞인 action

τ=0에 가까우면 거의 noise이고, τ=1에 가까우면 거의 정답 action이다.

모델은 이 noisy action을 보고:

이 noisy action을 정답 action 쪽으로 어떻게 움직여야 하는가?
 

를 배운다.

논문에서는 이를 denoising vector field라고 부른다.

수식으로는 모델 출력 vθ(Atτ,ot)가 다음 목표와 맞도록 학습된다.

u(Atτ∣At)=At−ϵu

즉 모델은 noisy action에서 clean action으로 가는 방향을 예측하는 것이다.


7. inference 때는 어떻게 action을 생성하나?

추론 때는 정답 action이 없으니까 random noise에서 시작한다.

At0∼N(0,I)

그리고 모델이 예측한 vector field를 따라 조금씩 업데이트한다.

Atτ+δ=Atτ+δvθ(Atτ,ot)

이게 forward Euler integration이다.

 

현재 noisy action이 있음
모델이 "이 방향으로 가면 더 실제 action 같아짐"이라고 알려줌
그 방향으로 조금 이동
이걸 10번 반복
최종 action chunk 완성
 

π0는 이 과정을 통해 continuous action chunk를 생성한다.


8. 왜 action token들이 서로 attention해야 하나?

π0의 action expert는 full bidirectional attention mask를 사용한다.

즉 action chunk 안의 모든 action token이 서로 볼 수 있다.

왜 중요하냐면 action chunk는 시간적으로 연결된 trajectory이기 때문이다.

예를 들어 빨래를 접는다고 하면:

1초 후 손 위치
2초 후 손 위치
3초 후 손 위치
...
 

이 서로 독립적이면 안 된다. 앞뒤 action이 자연스럽게 이어져야 한다.

그래서 action token들이 서로 attend할 수 있게 하면, 전체 trajectory의 일관성을 더 잘 만들 수 있다.

기존 autoregressive 방식은 순서대로 생성하지만, π0는 action chunk 전체를 하나의 연속 trajectory로 모델링하려는 쪽에 가깝다.

 


9. 왜 PaliGemma를 썼나?

논문에서는 실제 backbone으로 PaliGemma를 사용한다.

PaliGemma는 3B parameter VLM이다.

저자들이 PaliGemma를 쓴 이유는 두 가지라고 설명한다.

1. open-source VLM이다.
2. 크기와 성능의 trade-off가 좋다.
 

로봇 제어에서는 모델이 너무 크면 inference가 느려진다. 그래서 GPT-4V 같은 거대한 모델을 직접 control loop에 넣기는 어렵다.

PaliGemma는 비교적 작으면서도 VLM 능력이 있으니, 실시간 제어에 적합한 선택이라고 본 것이다.

여기에 action expert 300M parameter를 추가해서 전체 π0는 약 3.3B parameter가 된다.


10. π0-small은 왜 만들었나?

π0 논문은 main model 외에 π0-small이라는 baseline도 만든다.

π0-small은:

470M parameters
VLM initialization 없음
 

즉 internet-scale VLM pretraining을 쓰지 않은 비교 모델이다.

왜 필요하냐면, 저자들은 π0가 잘 되는 이유가 두 가지 중 무엇인지 보고 싶어서 진행했다.

1. architecture가 좋아서인가?
2. VLM pretraining이 좋아서인가?
 

π0-small은 VLM pretraining을 제거한 모델이므로, 이를 비교하면 VLM initialization이 얼마나 중요한지 볼 수 있다.

논문에서는 π0-small도 일부 성능은 내지만, π0가 language following이나 복잡한 task에서 더 강하다는 식으로 분석한다.


11. 전체 흐름을 하나의 그림처럼 보면

π0의 forward process는 대략 이렇다.

[입력]
여러 카메라 이미지
+ 언어 명령
+ 로봇 joint state

↓ image/state projection

[VLM backbone]
이미지/언어/상태 정보를 하나의 latent representation으로 처리

↓ conditioning

[Action expert]
random noisy action chunk를 입력받음
flow matching vector field 예측

↓ 10번 업데이트

[출력]
50-step continuous action chunk
 

즉 π0는 단순히:

이미지 + 언어 → action
 

이 아니라,

이미지 + 언어 + 로봇상태로 조건을 만들고,
그 조건 아래에서 noisy action trajectory를 clean action trajectory로 변환하는 모델
 

이다.

 

DATA COLLECTION AND TRAINING RECIPE

 

π0는 단순히 좋은 architecture만 제안한 게 아니라, pre-training에는 넓고 다양한 데이터, post-training에는 더 좁지만 고품질인 task-specific 데이터를 사용해야 한다고 주장한다. 즉 LLM처럼 “넓게 먼저 배우고, 나중에 잘하게 다듬는” 학습 레시피를 로봇에 적용한 것이다.

 

π0 저자들이 보는 문제는 로봇 foundation model을 만들려면 architecture만 좋아서는 부족하다.

특히 이 논문은 로봇 학습도 LLM처럼 두 단계로 나눠야 한다고 본다.

Pre-training: 넓은 능력과 일반화 확보
Post-training: 특정 task를 능숙하고 안정적으로 수행하도록 특화
 

 


Pre-training의 역할

Pre-training의 목표는 범용적인 물리 행동 능력을 배우는 것이다.

즉 특정 task 하나를 완벽하게 하는 게 아니라, 여러 로봇과 여러 작업을 보면서 넓은 기반 능력을 갖추게 만드는 단계다.

논문에서 pre-training mixture는 크게 두 종류로 구성된다.

1. Physical Intelligence가 직접 수집한 dexterous manipulation data
2. 공개 로봇 데이터셋, 특히 OXE 계열 데이터
 

π0는 직접 수집한 데이터와 open-source 데이터를 섞어서 학습한다.

논문에서 직접 수집한 데이터 규모는 매우 크다.

자체 데이터: 903M timesteps
- single-arm robot: 106M steps
- dual-arm robot: 797M steps
 

또한 7개의 서로 다른 로봇 구성과 68개 task를 포함한다.

중요한 건 task 수 68개가 단순히 “pick cup”, “pick plate” 같은 식의 noun-verb 조합이 아니라는 점이다. 저자들은 각 task가 훨씬 복잡한 행동 범위를 포함한다고 말한다. 예를 들어 “bussing” task는 다양한 접시, 컵, 식기류는 수거함에 넣고, 쓰레기는 쓰레기통에 넣는 복합 작업이다.

즉 π0의 pre-training은 이런 걸 배우게 하는 단계이다.

다양한 물체를 다루는 법
여러 로봇 embodiment에 적응하는 법
실패 상황에서 회복하는 법
복잡한 장면에서 행동하는 법
언어 명령과 물리 행동을 연결하는 법
 

왜 고품질 데이터만 쓰면 안 된다고 하나?

저자들은 고품질 데이터만으로는 부족하다고 본다.

왜냐하면 고품질 demonstration은 보통 깔끔하게 성공한 행동만 포함한다. 그러면 모델은 실수했을 때 어떻게 회복해야 하는지 배우기 어렵다.

pre-training에는 조금 더 다양한 품질의 데이터, 다양한 상황, correction, recovery behavior가 필요하다.

논문의 관점은 이렇게 정리할 수 있다.


다양하지만 품질이 낮을 수 있는 pre-training data 다양한 상황, 실패, 회복 행동 학습 특정 task를 매우 효율적으로 수행하기엔 부족
고품질 post-training data 일관되고 능숙한 task 수행 학습 실수/회복 상황이 부족할 수 있음

 


Post-training의 역할

Post-training은 특정 downstream task를 잘 수행하도록 모델을 특화하는 단계다.

Pre-training된 π0는 이미 여러 작업을 어느 정도 할 수 있지만, 복잡하고 정교한 task를 “잘” 하려면 고품질 데이터를 추가로 써야 한다.

논문에서 post-training data는 pre-training data보다 작지만, 더 정제되어 있다.

목표는 다음과 같다.

일관된 전략
효율적인 동작
부드러운 조작
높은 성공률
 

예를 들어 “laundry folding” 같은 작업은 pre-training에서 관련 행동을 배웠더라도, 실제로 높은 성공률을 내려면 잘 정리된 고품질 folding trajectory로 다시 fine-tuning해야 한다.

논문은 task 난이도에 따라 필요한 post-training 데이터 양이 다르다고 말한다.

단순한 task: 약 5시간 데이터
복잡한 task: 100시간 이상 데이터
 

즉 π0는 “모든 task를 zero-shot으로 완벽하게 한다”는 논문은 아니다. 더 정확히는:

큰 pre-trained robot foundation model을 만든 뒤, 필요한 task에 고품질 데이터로 post-training하면 훨씬 빠르고 강하게 적응한다.

 


데이터 mixture를 어떻게 구성했나?

π0는 각 timestep을 하나의 학습 example로 본다.

각 example은 대략 다음 형태다.

(o_t, A_t)
 

여기서:

o_t = 현재 observation
A_t = 미래 action chunk
 

Pre-training mixture에는 open-source dataset도 포함된다.

논문에서는 open-source 데이터가 전체 training mixture의 9.1%라고 한다. 여기에는 OXE, Bridge v2, DROID 등이 포함된다.

이 공개 데이터들은 대체로 다음 특징을 가진다.

카메라 1~2개
낮은 control frequency: 2~10Hz
다양한 물체와 환경
 

반면 자체 데이터는 더 dexterous하고 복잡한 task를 많이 포함한다. 특히 dual-arm 데이터가 매우 많다.


6. 데이터 imbalance는 어떻게 처리하나?

로봇 데이터셋은 task마다 데이터 양이 다를 수밖에 없다.

예를 들어 laundry folding 같은 어려운 task는 데이터가 많고, 어떤 task는 적을 수 있다. 그러면 모델이 데이터 많은 task에 과도하게 치우칠 수 있다.

이를 줄이기 위해 저자들은 각 task-robot combination에 대해 다음 식으로 weight를 준다.

n^0.43
 

여기서 은 해당 조합의 sample 수다.

이게 무슨 뜻이냐면, 데이터가 많은 조합도 더 많이 반영되긴 하지만, sample 수에 정비례하게 반영하지는 않는다는 뜻이다.

예를 들어 어떤 task가 데이터가 100배 많다고 해서 sampling weight도 100배가 되는 게 아니라, 더 완만하게 증가한다. 그래서 overrepresented task의 영향력을 줄인다.


로봇마다 action dimension이 다른 문제

π0는 여러 로봇을 함께 학습한다. 그런데 로봇마다 joint 수와 action space가 다르다.

예를 들어:

UR5e single arm: 7D action
Bimanual robot: 14D action
Mobile manipulator: 16D 또는 17D action
 

이 문제를 해결하기 위해 π0는 가장 큰 로봇 기준으로 configuration vector와 action vector의 차원을 맞춘다.

논문에서는 최대 18차원을 사용한다고 설명한다.

작은 로봇은 부족한 차원을 zero-padding한다.

7D robot action → [7D action + 나머지 zero padding]
14D robot action → [14D action + 나머지 zero padding]
 

카메라 수도 마찬가지다. 어떤 로봇은 이미지가 2개고, 어떤 로봇은 3개일 수 있다. 이미지가 부족한 경우 missing image slot을 mask 처리한다.

이건 cross-embodiment training에서 매우 중요한 구현 디테일이야.


Language와 high-level policy

복잡한 task는 단순히 low-level policy 하나만으로 하기 어렵다.

예를 들어 “bus the table”, 즉 테이블을 치우라는 명령은 너무 추상적이다.

이를 수행하려면 여러 subtask로 나눠야 한다.

pick up the napkin
throw the napkin into the trash
pick up the plate
put the plate into the dish bin
...
 

π0는 language input을 받을 수 있으므로, high-level VLM이 이런 중간 명령을 만들어주고, π0가 그 명령을 low-level action으로 실행하는 구조를 사용할 수 있다.

즉 전체 구조는 이렇게 된다.

High-level VLM:
"테이블을 치워라" → "냅킨을 집어라", "쓰레기통에 넣어라", ...

π0:
각 sub-command를 받아 실제 로봇 action 수행
 

이건 SayCan 같은 LLM/VLM planning 방식과 유사하다고 논문에서 말한다.

즉 π0는 하나의 monolithic policy로만 쓰이는 게 아니라, high-level semantic planner와 결합해서 긴 작업을 수행할 수 있다.


사용한 로봇 플랫폼

논문은 7개의 robot configuration을 사용했다고 설명한다.

대표적으로:

UR5e
Bimanual UR5e
Franka
Bimanual Trossen
Bimanual ARX / AgileX
Mobile Trossen / Mobile ARX
Mobile Fibocom
 

이들은 single-arm, dual-arm, mobile manipulator를 모두 포함한다.

π0는 이런 여러 embodiment를 하나의 모델로 학습한다.

이게 π0의 중요한 포인트다.

특정 로봇 하나에 맞춘 policy가 아니라, 여러 로봇 플랫폼의 데이터를 섞어 학습한 cross-embodiment generalist policy를 만들려는 것.


OpenVLA-OFT와 비교하면

OpenVLA-OFT는 “이미 있는 OpenVLA를 어떻게 fine-tuning해야 빠르고 잘 되는가”에 초점이 있었다.

π0는 더 넓게:

어떤 architecture를 쓸 것인가?
어떤 데이터를 모을 것인가?
pre-training과 post-training을 어떻게 나눌 것인가?
여러 로봇 embodiment를 어떻게 하나로 학습할 것인가?
 

까지 다룬다.

즉 π0는 모델 구조 + 데이터 스케일링 + training recipe 논문이고, OpenVLA-OFT는 fine-tuning design recipe 논문에 더 가깝다.

 

 

+ Recent posts