검색
← 모듈 로드맵

VoxPoser: 언어 모델로 3D 가치 지도 만들기

논문 · 전문가 · Wenlong Huang 외 · 2023 · arXiv

원제 · VoxPoser: Composable 3D Value Maps for Robotic Manipulation with Language Models

언어 모델이 코드로 3D 가치 지도를 그려, 미리 만든 스킬 없이 로봇 궤적을 계획하게 한 방법

먼저 알아야 할 것

대규모 언어 모델과 프롬프트Code as Policies개방 어휘 물체 검출모델 예측 제어(MPC)복셀(3차원 격자)

다루는 내용

VoxPoser는 GPT-4가 인식 API와 NumPy를 부르는 코드를 써서 어포던스·회피 등 3D 복셀 가치 지도를 만들고, 이를 목표 함수로 삼아 움직임 계획기가 6자유도 궤적을 합성하게 합니다. 생성 코드를 캐시하고 5 Hz로 재계획해 교란에 강하며, 추가 학습 없이 처음 보는 지시와 물체를 다룹니다. 실제 로봇 5개 과제에서 정지 88.0%·교란 70.0% 성공했고, 시뮬레이션에서 학습한 비용 지도나 LLM+동작 단위보다 일반화가 좋았으며, 제로샷 궤적을 탐색 사전 정보로 써 접촉이 많은 과제의 동역학 학습을 3분 안쪽 상호작용으로 해냈습니다.

초록

저자가 쓴 초록을 옮긴 것입니다.

대규모 언어 모델(LLM)은 추론과 계획의 형태로 로봇 조작에 끌어다 쓸 수 있는 풍부한 실행 가능 지식을 지닌 것으로 알려져 있습니다. 이런 진전에도 불구하고 대부분의 방법은 여전히 환경과 물리적으로 상호작용하기 위해 미리 정의한 동작 기본 단위(motion primitive)에 의존하며, 이것이 여전히 큰 병목입니다. 이 연구에서 우리는 열린 집합의 지시와 열린 집합의 물체가 주어졌을 때, 매우 다양한 조작 과제에 대해 로봇 궤적, 즉 6자유도 말단 장치 경유점의 조밀한 수열을 합성하는 것을 목표로 합니다. 이를 위해 먼저 LLM이 자유 형식의 언어 지시로부터 어포던스와 제약을 추론하는 데 뛰어나다는 점에 주목합니다. 더 중요하게는, LLM의 코드 작성 능력을 활용하면 LLM이 시각-언어 모델(VLM)과 상호작용하며 3D 가치 지도를 구성해 그 지식을 에이전트의 관측 공간에 접지할 수 있습니다. 이렇게 구성한 가치 지도는 모델 기반 계획 틀에서 쓰여, 동적 교란에 강건한 폐루프 로봇 궤적을 제로샷으로 합성합니다. 나아가 접촉이 많은 상호작용이 있는 장면에 대해 동역학 모델을 효율적으로 학습함으로써, 제안한 틀이 온라인 경험에서 이득을 얻을 수 있음을 보입니다. 시뮬레이션과 실제 로봇 환경 모두에서 제안한 방법을 대규모로 연구해, 자유 형식의 자연어로 지정한 매우 다양한 일상 조작 과제를 수행하는 능력을 보여 줍니다. 영상과 코드는 https://voxposer.github.io 에 있습니다.

해설

VoxPoser: 언어 모델로 3D 가치 지도 만들기

언어 모델이 "어디로 가고 무엇을 피할지"를 파이썬 코드로 써서 3차원 격자 위에 점수 지도를 그리면, 그 지도를 목표 함수로 삼아 움직임 계획기가 로봇 궤적을 바로 만듭니다. 미리 만들어 둔 동작 단위 없이, 추가 학습도 없이 처음 보는 지시와 물체를 다룰 수 있다는 것을 실제 로봇으로 보였습니다.

항목내용
원제VoxPoser: Composable 3D Value Maps for Robotic Manipulation with Language Models
저자Wenlong Huang · Chen Wang · Ruohan Zhang · Yunzhu Li · Jiajun Wu · Li Fei-Fei (Stanford University, University of Illinois Urbana-Champaign)
발표2023 · CoRL 2023 · arXiv 2307.05973
트랙 · 수준피지컬 AI · 심화
먼저 알면 좋은 것대규모 언어 모델과 프롬프트, Code as Policies, 개방 어휘 물체 검출, 모델 예측 제어(MPC), 복셀(3차원 격자)

들어가기 전에

이 해설은 아래 내용을 안다고 보고 씁니다. 처음이라면 먼저 읽고 오면 수식과 손계산을 훨씬 쉽게 따라올 수 있습니다.

한눈에 보기

  • 언어 모델이 로봇 제어 신호를 직접 내지 않고 목표 함수(점수 지도)를 만드는 역할을 맡는 구조를 압니다.
  • 3차원 격자 위의 어포던스 지도(끌림)와 회피 지도(밀어냄) 를 더해 궤적의 비용을 매기는 식을 압니다.
  • 언어 모델이 인식 API와 NumPy 연산을 부르는 코드를 써서 지도를 채우는 방식을 압니다.
  • 지도를 매 순간 다시 계산하는 폐루프 계획(MPC) 덕분에 교란에 강하다는 것을 압니다.
  • 제로샷 궤적을 탐색의 출발점(사전 정보) 으로 쓰면 접촉이 많은 과제의 동역학 학습이 빨라진다는 결과를 압니다.

초록 (번역)

대규모 언어 모델(LLM)은 추론과 계획의 형태로 로봇 조작에 끌어다 쓸 수 있는 풍부한 실행 가능 지식을 지닌 것으로 알려져 있습니다. 이런 진전에도 불구하고 대부분의 방법은 여전히 환경과 물리적으로 상호작용하기 위해 미리 정의한 동작 기본 단위(motion primitive)에 의존하며, 이것이 여전히 큰 병목입니다. 이 연구에서 우리는 열린 집합의 지시와 열린 집합의 물체가 주어졌을 때, 매우 다양한 조작 과제에 대해 로봇 궤적, 즉 6자유도 말단 장치 경유점의 조밀한 수열을 합성하는 것을 목표로 합니다. 이를 위해 먼저 LLM이 자유 형식의 언어 지시로부터 어포던스와 제약을 추론하는 데 뛰어나다는 점에 주목합니다. 더 중요하게는, LLM의 코드 작성 능력을 활용하면 LLM이 시각-언어 모델(VLM)과 상호작용하며 3D 가치 지도를 구성해 그 지식을 에이전트의 관측 공간에 접지할 수 있습니다. 이렇게 구성한 가치 지도는 모델 기반 계획 틀에서 쓰여, 동적 교란에 강건한 폐루프 로봇 궤적을 제로샷으로 합성합니다. 나아가 접촉이 많은 상호작용이 있는 장면에 대해 동역학 모델을 효율적으로 학습함으로써, 제안한 틀이 온라인 경험에서 이득을 얻을 수 있음을 보입니다. 시뮬레이션과 실제 로봇 환경 모두에서 제안한 방법을 대규모로 연구해, 자유 형식의 자연어로 지정한 매우 다양한 일상 조작 과제를 수행하는 능력을 보여 줍니다. 영상과 코드는 voxposer.github.io 에 있습니다.

무엇을 풀었나

SayCan이나 Code as Policies 같은 앞선 연구는 언어 모델로 "무엇을 어떤 순서로 할지"를 잘 정했습니다. 하지만 실제로 팔을 움직이는 부분은 사람이 미리 만들어 둔 동작 기본 단위(스킬)에 맡겼습니다.

이 스킬 목록이 병목입니다. 스킬 하나하나를 만들려면 로봇 데이터나 손 설계가 필요하고, 목록에 없는 동작은 할 수 없습니다. 논문은 "언어 모델의 지식을 더 세밀한 동작 수준까지 쓸 수 없을까"를 묻습니다.

그렇다고 언어 모델이 관절 명령을 글자로 직접 내게 하기는 어렵습니다. 로봇 제어는 고차원 공간에서 높은 주기로 나오는 신호이기 때문입니다.

논문의 관찰은 이렇습니다. 언어 모델은 제어 신호는 못 내도 "손잡이를 잡아야 한다", "꽃병은 피해야 한다" 같은 어포던스(affordance, 물체가 허락하는 행동)와 제약은 잘 추론합니다. 그리고 그 판단을 코드로 써서 3차원 공간에 옮겨 적을 수 있습니다.

핵심 아이디어

1. 문제를 최적화로 쓰기

한 문장 직관: 내비게이션에 "목적지"와 "피할 길"을 표시해 두면 경로는 내비게이션이 찾는 것처럼, 언어 모델은 표시만 하고 길 찾기는 계획기에 맡깁니다(해설용 비유).

단계별 설명

  1. 긴 지시 LL(예: "맨 위 서랍을 열어")을 상위 계획기가 하위 과제 ℓ1,ℓ2,…,ℓn\ell_1, \ell_2, \dots, \ell_n으로 나눕니다(예: "손잡이 잡기", "당겨 열기"). 논문에서는 이 분해도 LLM이 하지만, 기여의 초점은 아니라고 밝힙니다.
  2. 하위 과제 ℓi\ell_i마다 로봇 궤적 τir\tau_i^r을 하나 만듭니다.
  3. 궤적은 말단 장치(end-effector, 로봇 손끝)의 조밀한 경유점 수열입니다. 각 경유점은 원하는 6자유도 자세, 속도, 집게(gripper) 동작으로 이루어지고, 작업 공간 제어기(Operational Space Controller)가 따라갑니다.
  4. 좋은 궤적은 "지시를 잘 이루고(과제 점수)", "힘이나 시간을 덜 쓰며(제어 비용)", "물리 법칙과 로봇 구조를 어기지 않는(제약)" 궤적입니다.

수식 (논문 식 1)

min⁡τir{Ftask(Ti,ℓi)+Fcontrol(τir)}subject toC(Ti)\min_{\tau_i^r} \Big\{ \mathcal{F}_{task}(\mathbf{T}_i, \ell_i) + \mathcal{F}_{control}(\tau_i^r) \Big\} \quad \text{subject to} \quad \mathcal{C}(\mathbf{T}_i)

기호 풀이

기호뜻
ℓi\ell_iii번째 하위 과제의 언어 지시
τir\tau_i^r로봇 rr이 하위 과제 ii에서 따라갈 궤적
Ti\mathbf{T}_i그동안 환경 상태가 변해 가는 모습. 로봇 궤적은 그 일부입니다(τir⊆Ti\tau_i^r \subseteq \mathbf{T}_i)
Ftask\mathcal{F}_{task}환경 변화가 지시를 얼마나 이루는지 매기는 과제 점수(작을수록 좋게 부호를 맞춤)
Fcontrol\mathcal{F}_{control}총 제어 노력이나 총 시간 같은 제어 비용
C(Ti)\mathcal{C}(\mathbf{T}_i)동역학 · 기구학 제약. 로봇의 알려진 모델과 환경의 물리 · 학습 모델로 강제

왜 이렇게 했나

언어 모델에게 "궤적 자체"를 맡기면 고차원 · 고주기 출력을 글자로 내야 합니다. 반면 "목표 함수"를 맡기면 언어 모델은 잘하는 일(의미 추론)만 하고, 최적화는 오래 검증된 계획기가 합니다. 논문은 이 접근이 경로 계획의 퍼텐셜 장(potential field) 방법, 조작 계획의 제약 최적화와 닮았다고 각주에서 밝힙니다.

2. 3D 가치 지도 — 공간에 점수를 칠하기

한 문장 직관: 방바닥을 바둑판처럼 나눈 뒤, 가고 싶은 칸에는 높은 점수를, 피하고 싶은 칸에는 낮은 점수를 적어 두는 것입니다(해설용 비유).

단계별 설명

  1. 로봇의 관측 공간을 w×h×dw \times h \times d 크기의 복셀(voxel, 3차원 격자 칸)로 나눕니다. 논문 구현은 각 지도를 (100,100,100,k)(100, 100, 100, k) 모양 배열로 만듭니다.
  2. 장면에서 움직일 "관심 대상(entity of interest)" e\mathbf{e}를 정합니다. 로봇 손끝일 수도, 물체나 물체의 한 부분일 수도 있습니다.
  3. "손잡이 잡기"라면 관심 대상은 손끝이고, 지도는 손잡이 쪽으로 끌어당기는 모양이 됩니다.
  4. "꽃병 조심해"가 붙으면 꽃병 주변은 밀어내는 값으로 바뀝니다.
  5. 관심 대상이 지나가는 칸들의 값을 모두 더해 과제 점수를 냅니다.

수식 (논문 3.2절)

Ftask=−∑j=1∣τie∣V(pje),V∈Rw×h×d\mathcal{F}_{task} = -\sum_{j=1}^{|\tau_i^{\mathbf{e}}|} \mathbf{V}(p_j^{\mathbf{e}}), \qquad \mathbf{V} \in \mathbb{R}^{w \times h \times d}

기호 풀이

  • V\mathbf{V}: 복셀마다 실수 하나를 적은 가치 지도. 높을수록 "가고 싶은 곳"
  • τie\tau_i^{\mathbf{e}}: 관심 대상 e\mathbf{e}의 궤적, ∣τie∣|\tau_i^{\mathbf{e}}|는 그 단계 수
  • pje∈N3p_j^{\mathbf{e}} \in \mathbb{N}^3: jj번째 단계에서 관심 대상의 이산화된 (x,y,z)(x, y, z) 위치
  • 맨 앞의 −-: 가치(높을수록 좋음)를 비용(낮을수록 좋음)으로 바꾸는 부호

논문 구현에서 계획기가 쓰는 비용 지도는 정규화한 어포던스 지도와 회피 지도를 가중치 2와 1로 더한 합의 음수입니다. 어포던스 지도에는 유클리드 거리 변환을, 회피 지도에는 가우시안 필터를 적용해 듬성듬성한 지도를 부드럽게 채웁니다. 부드러운 지도가 계획기에서 매끄러운 궤적을 낳기 때문입니다.

숫자로 해 보기 (해설용 예 — 논문 수치 아님)

3×33 \times 3 평면 격자에서 손끝이 (1,1)(1,1)에서 출발해 목표 (3,3)(3,3)로 가고, 꽃병이 가운데 (2,2)(2,2)에 있다고 합시다. 설명을 위해 비용을 칸마다 c=−2a+bc = -2a + b로 단순화합니다(끌림은 빼고, 피함은 더함).

  • 어포던스 a=1−d/4a = 1 - d/4, dd는 목표까지 칸 거리(가로 + 세로)
  • 회피 bb: 꽃병 칸 1, 꽃병과 맞닿은 네 칸 0.5, 나머지 0
칸aabbcc
(1,2)0.250.50
(1,3)0.50−1
(2,2)0.510
(2,3)0.750.5−1
(3,3)10−2

같은 네 걸음짜리 두 경로를 비교합니다.

  • 가운데를 지나는 경로 (1,2)→(2,2)→(2,3)→(3,3)(1,2) \to (2,2) \to (2,3) \to (3,3): 0+0−1−2=−30 + 0 - 1 - 2 = -3
  • 가장자리 경로 (1,2)→(1,3)→(2,3)→(3,3)(1,2) \to (1,3) \to (2,3) \to (3,3): 0−1−1−2=−40 - 1 - 1 - 2 = -4

비용이 더 낮은 가장자리 경로가 뽑힙니다. 회피 지도를 빼면(b=0b = 0) 두 경로 모두 −0.5−1−1.5−2=−5-0.5 - 1 - 1.5 - 2 = -5로 같아집니다. "꽃병 조심해" 한마디가 동점을 깨고 경로를 바꾼 것입니다.

왜 이렇게 했나

비슷한 앞선 연구(Sharma 외)는 언어를 2D 비용 지도로 바꾸는 예측기를 지도학습으로 훈련했습니다. VoxPoser는 학습 대신 사전학습 언어 모델의 열린 세계 지식을 쓰고, 더 어려운 3D 조작을 다룹니다. 지도라는 형태는 여러 조건을 더하기만 하면 합쳐진다는 장점도 있습니다. 이것이 제목의 "조합 가능한(composable)"입니다.

3. 언어 모델이 코드로 지도를 채운다

한 문장 직관: 현장 감독이 "손잡이 위치를 확인해서 거기에 표시해"라는 작업 지시서를 쓰면, 측량 기사(시각 모델)가 위치를 재 오고 지시서대로 표시가 칠해지는 것입니다(해설용 비유).

단계별 설명

  1. 지시를 코드의 주석처럼 넣으면, LLM이 파이썬 코드를 씁니다.
  2. 코드는 detect('handle') 같은 인식 API를 불러 관련 물체 · 부분의 위치와 점유 격자를 얻습니다.
  3. 그 위치를 NumPy 배열 연산으로 3D 배열에 옮기고, 해당 칸에 정확한 값을 적습니다(예: 손잡이 칸 = 1, 꽃병 점유 칸 = −1).
  4. 파이썬 인터프리터가 코드를 실행해 지도 Vit=VoxPoser(ot,ℓi)\mathbf{V}_i^t = \text{VoxPoser}(o^t, \ell_i)를 얻습니다. oto^t는 시각 tt의 RGB-D 관측입니다.

구성 요소 (논문 4장 구현)

  • 언어 모델: OpenAI API의 GPT-4. Code as Policies의 프롬프트 구조를 따라, 각자 맡은 기능이 있는 언어 모델 프로그램(LMP)들이 서로를 재귀적으로 부릅니다. LMP마다 예시 질의 · 응답 5~20개를 프롬프트에 넣습니다.
  • 상위 LMP 두 개: planner는 지시 LL을 하위 과제 ℓ1:N\ell_{1:N}으로 나누고, composer는 하위 과제 ℓi\ell_i를 받아 필요한 지도 LMP들을 자세한 언어 인자와 함께 부릅니다.
  • 지도 종류: 어포던스, 회피, 말단 장치 속도, 말단 장치 회전, 집게 동작. 종류마다 LMP가 따로 있습니다. 비용을 나타내는 어포던스 · 회피는 k=1k = 1, 회전(쿼터니언)은 k=4k = 4입니다.
  • 인식: 개방 어휘 검출기 OWL-ViT로 상자를 얻고, Segment Anything으로 마스크를 만들고, 영상 추적기 XMem으로 마스크를 따라갑니다. 마스크와 RGB-D로 물체 점군을 복원합니다.

위치 외의 지도 (논문 식 표기)

Vr:N3→SO(3),Vg:N3→{0,1},Vv:N3→R\mathbf{V}_r : \mathbb{N}^3 \to SO(3), \qquad \mathbf{V}_g : \mathbb{N}^3 \to \{0, 1\}, \qquad \mathbf{V}_v : \mathbb{N}^3 \to \mathbb{R}
  • Vr\mathbf{V}_r: 그 칸에서 손끝이 향할 회전(예: "손잡이 면의 법선을 향하라")
  • Vg\mathbf{V}_g: 그 칸에서 집게를 닫을지(1) 열지(0)
  • Vv\mathbf{V}_v: 그 칸에서의 목표 속도 배율

이 지도들은 비용이 아니라 궤적의 "설정값"입니다. 계획기는 어포던스 · 회피 지도로 위치를 정한 뒤, 각 위치에서 나머지 지도를 읽어 회전 · 속도 · 집게를 붙입니다.

숫자로 해 보기 (해설용 계산 — 논문의 지도 크기로 셈)

  • 지도 한 장의 칸 수: 100×100×100=1,000,000100 \times 100 \times 100 = 1{,}000{,}000
  • 회전 지도는 칸마다 숫자 4개라 4,000,0004{,}000{,}000개
  • 언어 모델이 이 숫자들을 글자로 하나하나 내는 것은 비현실적입니다. 하지만 map[x, y, z] = 1 한 줄과 부드럽게 하기 함수 한 번이면 백만 칸이 채워집니다. 코드가 "압축된 출력 형식" 역할을 하는 셈입니다.

왜 이렇게 했나

언어 모델이 위치 좌표를 직접 짐작하게 하면 장면을 볼 수 없으니 틀리기 쉽습니다. 위치는 시각 모델이 재고, 언어 모델은 "무엇을 재서 어떻게 칠할지"만 정합니다. Code as Policies가 스킬의 순서를 코드로 엮었다면, VoxPoser는 공간을 코드로 엮습니다.

4. 폐루프 궤적 합성 — 매 순간 다시 계획

한 문장 직관: 운전 중 길이 막히면 내비게이션이 즉시 경로를 다시 찾듯, 한 걸음 가고 다시 보고 다시 계획합니다(해설용 비유).

단계별 설명

  1. 계획기는 어포던스 · 회피 지도만으로 충돌 없는 손끝 위치 수열 p1:N∈R3p_{1:N} \in \mathbb{R}^3을 탐욕적 탐색(greedy search)으로 찾습니다.
  2. 각 위치에 회전 · 속도 · 집게 지도를 적용해 6자유도 궤적을 완성합니다.
  3. 첫 경유점만 실행하고, 최신 관측으로 지도를 다시 계산해 궤적을 5 Hz로 다시 계획합니다.
  4. 언어 모델은 매번 다시 부르지 않습니다. 같은 하위 과제 동안 생성된 코드는 그대로이므로 캐시해 두고, 코드 안의 인식 호출만 새 관측으로 다시 실행합니다. 그래서 언어 모델이 고리 안에 있어도 폐루프가 가능합니다.
  5. 일반적인 최적화로는 궤적을 무작위로 뽑아 목표 함수로 점수를 매기는 0차 최적화를, 모델 예측 제어(MPC, model predictive control) 틀 안에서 씁니다.
  6. 관심 대상이 물체일 때(예: 물체 밀기)는 동역학 모델로 "어떤 로봇 동작이 원하는 물체 움직임을 낳는지"를 찾습니다. 논문은 접촉점 · 미는 방향 · 미는 거리로 매개화한 평면 밀기 모델만 다루며, 점군을 미는 방향으로 그만큼 옮기는 휴리스틱 모델과 무작위 슈팅 MPC를 씁니다. 그 뒤 미리 정의한 밀기 동작을 실행합니다.

숫자로 해 보기 (해설용 계산)

  • 5 Hz 재계획 → 한 번 계획에 쓸 수 있는 시간은 1/5=0.21/5 = 0.2초
  • 사람이 서랍을 다시 열어 버리는 교란이 생겨도, 다음 0.2초 안에 새 관측으로 지도가 바뀌고 궤적이 고쳐집니다.

왜 이렇게 했나

논문은 놀랍게도 단순한 휴리스틱 모델만으로도 많은 과제가 풀렸다고 보고합니다. 이유로 두 가지를 듭니다. 가치 지도가 관측 공간 전체에 "조밀한 보상"을 주고, 매 단계 다시 계획할 수 있기 때문입니다. 대부분의 과제(관심 대상이 로봇 손끝)에서는 환경 동역학 모델 없이 장면을 정지해 있다고 가정했습니다.

5. 온라인 경험으로 동역학 배우기

한 문장 직관: 처음 가는 동네에서 지도를 대충이라도 받아 그 근처만 돌아다니면, 동네 전체를 무작정 헤매는 것보다 훨씬 빨리 길을 익힙니다(해설용 비유).

단계별 설명

  1. 문 · 냉장고 · 창문 열기처럼 접촉이 복잡한 과제는 휴리스틱 모델로 부족합니다.
  2. 로봇은 ① 전이 데이터 (ot,at,ot+1)(o_t, a_t, o_{t+1})를 모으고 ② 다음 관측 예측 o^t+1\hat{o}_{t+1}과 실제 ot+1o_{t+1}의 L2 오차를 줄이도록 동역학 모델 gθg_\theta를 학습하는 일을 번갈아 합니다. 행동은 at=MPC(ot)a_t = \text{MPC}(o_t)로 고릅니다.
  3. 학습 효율을 좌우하는 것은 MPC의 행동 표본 분포 P(at∣ot)P(a_t \mid o_t)입니다. 보통은 전체 행동 공간 A\mathcal{A}에서 무작위로 뽑는데, 대부분의 행동은 손잡이를 건드리지도 않습니다.
  4. VoxPoser가 제로샷으로 만든 궤적 τ0r\tau_0^r을 사전 정보로 써서, 그 근처에서만 표본을 뽑습니다: P(at∣ot,τ0r)P(a_t \mid o_t, \tau_0^r).
  5. 구현에서는 τ0r\tau_0^r의 각 경유점에 작은 잡음 ε∼N(0,σ2)\varepsilon \sim \mathcal{N}(0, \sigma^2)을 더해 국소 탐색을 하고, MLP 동역학 모델을 학습합니다.

숫자로 해 보기 (해설용 예 — 논문 수치 아님)

행동이 1차원 구간 [−1,1][-1, 1]이고, 문이 실제로 열리는 행동이 폭 0.1짜리 구간이라고 합시다.

  • 전체에서 고르게 뽑으면 맞힐 확률은 0.1/2=5%0.1 / 2 = 5\%입니다.
  • 제로샷 궤적이 그 구간 근처를 가리키고, 그 주변 폭 0.4 안에서만 뽑으면 0.1/0.4=25%0.1 / 0.4 = 25\%로 다섯 배가 됩니다.

차원이 여러 개면 이 배율이 차원마다 곱해지므로 차이가 훨씬 커집니다.

처리 흐름

mermaid
flowchart LR
    A["언어 지시<br/>예: 맨 위 서랍 열기, 꽃병 조심"] --> B["planner LMP<br/>하위 과제로 분해"]
    B --> C["composer LMP<br/>필요한 지도 LMP 호출"]
    C --> D["지도 LMP들이 파이썬 코드 생성"]
    O["RGB-D 관측"] --> E["인식: OWL-ViT → SAM → XMem<br/>물체 점군"]
    D --> E
    E --> F["3D 가치 지도<br/>어포던스 · 회피 · 회전 · 속도 · 집게"]
    F --> G["움직임 계획기<br/>비용 최소 경유점 탐색"]
    G --> H["첫 경유점 실행"]
    H -->|"5 Hz로 다시 관측 · 재계획<br/>코드는 캐시"| E

결과

모든 수치는 논문이 보고한 값입니다.

실제 로봇 (Franka Emika Panda, 탁상, Azure Kinect RGB-D 카메라 2대, 논문 표 1)

비교 대상은 LLM이 간단한 동작 단위(위치로 이동, 회전, 속도 설정, 집게 열기 · 닫기)를 매개화하는 Code as Policies 변형입니다. "교란"은 로봇에 무작위 힘 가하기, 물체 옮기기, 과제 진행 되돌리기(예: 닫는 중인 서랍 다시 열기)입니다.

과제LLM + 동작 단위 (정지)LLM + 동작 단위 (교란)VoxPoser (정지)VoxPoser (교란)
이동 · 회피0/100/109/108/10
식탁 차리기7/100/109/107/10
서랍 닫기0/100/1010/107/10
병 열기5/100/107/105/10
쓰레기 쓸기0/100/109/108/10
합계24.0%0.0%88.0%70.0%

시뮬레이션 일반화 (SAPIEN, 13개 과제 · 고유 지시 2,766개, 과제당 20회 평균, 논문 표 2)

"SI/UI"는 본 · 처음 보는 지시, "SA/UA"는 본 · 처음 보는 속성(물체 · 위치 등)입니다. 과제는 물체 상호작용과 공간 구성(예: 특정 물체 근처에서 천천히) 두 범주입니다. 비교 대상은 U-Net으로 비용 지도를 학습하는 방법 + 계획기(Sharma 외 변형)와 LLM + 동작 단위입니다.

조건범주U-Net + 계획기LLM + 동작 단위VoxPoser
SI SA물체 상호작용21.0%41.0%64.0%
SI SA공간 구성53.8%43.8%77.5%
SI UA물체 상호작용3.0%46.0%60.0%
SI UA공간 구성3.8%25.0%58.8%
UI UA물체 상호작용0.0%17.5%65.0%
UI UA공간 구성0.0%25.0%76.7%
  • 학습한 비용 예측기는 처음 보는 속성 · 지시에서 거의 0으로 무너졌고, VoxPoser는 비슷한 성공률을 유지했습니다.

온라인 동역학 학습 (시뮬레이션, 시드 3개, 논문 표 3)

과제제로샷 성공사전 정보 없이 성공 · 시간사전 정보 사용 성공 · 시간(초)
문6.7% ± 4.4%58.3% ± 4.4% · 시간 초과88.3% ± 1.67% · 142.3 ± 22.4
창문3.3% ± 3.3%36.7% ± 1.7% · 시간 초과80.0% ± 2.9% · 137.0 ± 7.5
냉장고18.3% ± 3.3%70.0% ± 2.9% · 시간 초과91.7% ± 4.4% · 71.0 ± 4.4
  • "시간 초과"는 최대 12시간을 넘겼다는 뜻입니다.
  • 제로샷 궤적은 대체로 의미는 있지만 그것만으로는 부족했습니다. 이를 탐색 사전 정보로 쓰자 3분이 안 되는 온라인 상호작용으로 쓸 만한 동역학 모델을 얻었습니다.

오류 분석 (논문 그림 4)

정답 인식 · 동역학에 접근할 수 있는 시뮬레이션에서 오류를 동역학 · 인식 · 명세(비용이나 인자를 잘못 정함) 오류로 나눴습니다. VoxPoser는 명세 오류가 가장 적었습니다. 실제 로봇 실험에서는 오류 대부분이 인식에서 나왔고, 특히 검출기가 물체의 처음 자세에 민감하고 물체 부분 검출에 약했다고 보고합니다.

창발적 행동 (논문 부록 A.2, 정성 예시)

"나는 왼손잡이야"라고 하면 포크를 그릇 왼쪽으로 옮기고, "1cm 왼쪽으로 어긋났어" 같은 세밀한 교정을 따르고, "서랍을 정확히 반만 열어"에는 끝까지 열며 변위를 잰 뒤 중간까지 닫는 여러 단계 전략을 세웠습니다.

왜 중요한가 · 이후 영향

  • 언어 모델의 역할을 "보상 · 비용 설계자"로 옮겼습니다. 스킬 목록 없이도 언어 지식이 동작 수준까지 내려올 수 있다는 것을 보였습니다. 같은 시기 LLM으로 보상 함수를 만드는 연구(이 섹션의 Eureka 등)와 흐름을 같이 합니다.
  • 3D 공간 접지의 틀을 제시했습니다. 언어 → 코드 → 인식 → 격자 지도 → 계획이라는 분업은 학습 데이터 없이 처음 보는 물체를 다루는 한 가지 길입니다.
  • 데이터 기반 접근과 대비됩니다. RT-1 · RT-2 같은 끝단 간(end-to-end) 정책은 많은 로봇 데이터로 행동을 직접 배우는 반면, VoxPoser는 로봇 데이터 없이 사전학습 모델과 고전적 계획을 엮습니다. 두 접근의 장단점을 비교할 때 기준점이 됩니다.

한계 · 주의할 점

  • 외부 인식 모듈에 의존합니다. 전체 장면을 아우르는 시각 추론이나 물체의 세밀한 기하를 이해해야 하는 과제에는 약합니다. 실제 실험의 오류도 대부분 인식에서 나왔습니다.
  • 범용 동역학 모델이 없습니다. 접촉이 많은 과제를 같은 수준으로 일반화하려면 범용 동역학 모델이 필요하다고 논문이 밝힙니다. 실제 로봇의 물체 밀기는 미리 정의한 밀기 동작을 썼습니다.
  • 손끝 궤적만 계획합니다. 팔 전체를 계획하는 편이 더 나은 설계일 수 있다고 논문이 인정합니다.
  • 프롬프트를 손으로 만들어야 합니다. LMP마다 예시를 직접 넣어야 합니다.
  • 표본 수가 작습니다. 실제 로봇 결과는 과제당 10회 시도라서, 과제별 성공률 차이를 작게 해석해야 합니다.

이어서 읽을 것

  • 앞: Code as Policies — LLM이 로봇 코드를 쓰는 틀. VoxPoser의 프롬프트 구조와 비교 대상
  • 앞: SayCan — 언어 모델 계획 + 미리 배운 스킬 조합
  • 앞: CLIP — 개방 어휘 인식의 바탕이 된 이미지-텍스트 사전학습
  • 옆: Eureka — LLM이 보상 함수 코드를 쓰는 다른 방향
  • 옆: PaLM-E — 인식을 언어 모델 안에 넣은 멀티모달 접근(논문이 향후 과제로 언급한 방향)
  • 뒤: RT-2 — 시각-언어 모델이 행동을 직접 내는 끝단 간 접근
  • 뒤: 확산 정책 — 시연 데이터로 행동을 배우는 쪽의 대표 방법

용어 정리

용어쉬운 뜻
동작 기본 단위(motion primitive)"집기", "이동하기"처럼 미리 만들어 둔 작은 동작
어포던스(affordance)물체나 장소가 허락하는 행동, 여기서는 "가야 할 곳"
복셀(voxel)3차원 공간을 나눈 정육면체 칸
3D 가치 지도(value map)복셀마다 점수(또는 회전 · 속도 · 집게 값)를 적은 배열
관심 대상(entity of interest)지도가 움직임을 이끄는 대상. 손끝 · 물체 · 물체 부분
접지(grounding)언어의 뜻을 실제 관측 공간의 위치 · 물체에 연결하는 일
LMP(language model program)특정 기능을 맡아 코드를 생성하는 언어 모델 호출 단위
개방 어휘 검출기정해진 목록이 아닌 임의의 이름으로 물체를 찾는 검출기
말단 장치(end-effector)로봇 팔 끝의 손 · 집게
모델 예측 제어(MPC)앞을 내다보고 계획한 뒤 첫 동작만 실행하고 다시 계획하는 제어
0차 최적화기울기 없이 후보를 뽑아 점수로만 고르는 최적화
제로샷(zero-shot)그 과제를 위한 추가 학습 · 예시 데이터 없이 바로 수행
동역학 모델지금 상태와 행동으로 다음 상태를 예측하는 모델

스스로 점검

1. VoxPoser에서 언어 모델이 직접 내지 않는 것은 무엇이고, 대신 무엇을 내나요? 답: 관절 명령이나 궤적 같은 제어 신호는 내지 않습니다. 대신 인식 API와 NumPy를 부르는 파이썬 코드를 내고, 그 코드가 3D 가치 지도(목표 함수)를 만듭니다. 궤적은 움직임 계획기가 그 지도를 최소화해 찾습니다.

2. 언어 모델이 고리 안에 있는데 어떻게 5 Hz 재계획이 가능한가요? 답: 같은 하위 과제 동안에는 생성된 코드가 바뀌지 않으므로 코드를 캐시합니다. 매번 언어 모델을 부르지 않고, 코드 속 인식 호출만 새 관측으로 다시 실행해 지도를 갱신합니다.

3. 온라인 동역학 학습에서 제로샷 궤적은 어떤 역할을 하나요? 답: 탐색의 사전 정보입니다. 전체 행동 공간에서 무작위로 뽑는 대신 제로샷 궤적 경유점에 작은 가우시안 잡음을 더한 근처에서만 행동을 뽑습니다. 논문에서는 이렇게 해서 3분이 안 되는 상호작용으로 높은 성공률을 얻었고, 사전 정보 없이는 12시간 한도를 넘겼습니다.

다음에 볼 것

이 글을 이해했다면 이어서 보면 좋은 항목입니다.

출처

AI 원리부터 이해하기 · 피지컬 AI 모듈

피지컬 AI 모듈 학습

이 글은 피지컬 AI 모듈의 학습 자료입니다. 전체 26개 자료 중 14번째입니다.

AI 기초 과정은 현재 진도 저장을 지원하지 않습니다.

출처·원문

원문 보기

요약만

arXiv (논문별 상이)

arXiv 2307.05973