[CoRL 2023 oral] VoxPoser: Composable 3D Value Maps for Robotic Manipulation with Language Models

이번 논문은 아주 재밌는 논문 입니다. LLM을 활용해 명시적인 명령어로부터 로봇 조작의 추론 및 명령어 생산하고 VLM(~OVD)을 활용해 로봇을 위한 3차원 공간에 대한 이해를 얻어 능동적인 로봇 작업 수행을 가능함을 보인 연구 결과 입니다. 요즘 핫한 CoRL에서 oral을 받은 논문이기도 합니다.

Intro

언어 수단은 인간의 의사소통을 전달하기 위한 최고의 수단으로 오랜 역사 동안 새로운 지식과 경험들을 후대에 전달하기 위한 최적의 도구로 사용되어 왔습니다. LLM은 수많은 지식과 경험들이 담겨진 초거대 언어 데이터로부터 언어 공간에 대한 투영을 통해 세계를 표현하는 방법을 학습하면서 이러한 추론 능력을 확보하기 위한 유망한 접근 방법으로 알려져 있습니다. 최근 많은 연구들에서는 언어 공간의 추상화를 통해 일반화된 지식을 추론하는 LLM에 주목하는 움직임을 보이고 있습니다. 특히, 최근 로보틱스 분야에서는 LLM을 로봇 작업 수행에 대한 에이전트로 사용하여 동작에 대한 맥락적인 추론 방법을 이용하여 실제 물리적인 세계에서 적용이 가능한지에 대한 연구들이 진행되고 있습니다.

예를 들어 로봇 작업에 따른 추상적인 언어 지시 “테이블을 준비하세요”를 기반으로 문제를 살펴봅시다. 이전 연구에서는 어휘 분석(lexical analysis)을 활용하여 지시를 구문 분석하여 사용하거나, 언어 모델을 활용하여 지시 내용을 텍스트 수준의 세분화된 명령으로 분해하는 결과를 보여줍니다. 그러나 이전 연구들은 환경과의 물리적인 상호 작용을 수행하기 위해서 LLM 혹은 별도의 에이전트가 호출 가능한 사전 정의된 motion primitives에 의존적이기 때문에, 변칙적인 상황에 대응하기 어렵다는 문제가 있습니다. 이러한 한계를 극복하기 위해서는 수많은 상황에 대해 커버가 가능한 대규모 로봇 데이터가 있다면 가능하겠지만, 실질적으로 실현 하기 어려운 사안에 해당합니다. 그럼… 이러한 대규모 로봇 데이터나 사전 정의된 수동 설계 없이 로봇의 세밀한 작업 수준에서 LLM의 풍부한 지식을 어떻게 활용하면 될까요?

해당 문제에 대해 저자는 LLM이 고차원 공간에서 직접적인 로봇 조작을 위한 제어 신호를 텍스트로 생성하는 것*은 현실적으로 불가능하다는 점을 지적합니다. 그러나 LLM이 language-conditioned affordances와 constraints를 추론하는 능력이 뛰어나다는 점과 code-writing 능력을 활용하여 perception calls (인지 기능; e.g. OWL-VIT)을 이용하여 시각적 공간을 기반으로 두는 조밀한 3D voxel maps을 구성 할 수 있음을 발견합니다.
* 구글 로보틱스의 Robot Transformer (RT), RT-2를 타겟으로 두고 말하는 것 같습니다.

예를 들어 “맨 위 서랍을 열고 꽃병을 조심해”라는 지시가 주어지면 LLM은 다음과 응답 가능합니다. 1) 상단 서랍 손잡이를 잡아야 하고, 2) 손잡이를 바깥쪽으로 돌려야 하며, 3) 로봇이 꽃병에서 멀리 떨어져 있어야 합니다. 인식 API를 호출하는 Python 코드를 생성하여 관련 물체 또는 부품의 공간-기하학적 정보를 얻은 다음 3D 복셀을 조작하여 관찰 공간의 관련 위치에서 보상 또는 비용을 지정할 수 있습니다. (e.g. 손잡이 영역은 높은 값을 할당하고 꽃병 주변은 낮은 값을 할당하는 방식) 마지막으로, posed value maps은 모션 플래너가 각 작업이나 LLM에 대한 추가 학습 데이터 없이도 주어진 명령어을 달성하는 로봇 궤적을 직접 합성할 수 있는 objective functions로 사용될 수 있습니다. 전반적인 파이프라인에 대한 도식화는 그림 1에서도 확인 가능합니다.

+ 간단하게 요약하자면,
1. 추상적인 지시에 대해 LLM으로 로봇 작업에 대한 대략적인 계획을 코드 형태로 추론 가능하도록 프롬프트 엔지니어링을 수행했다.
2. 추론된 코드들은 인지 기능->OVOD+SAM & video tracker <~ RGBD 를 이용해 관심 객체의 3차원 위치와 이와 연관된 로봇 작업에 대한 value가 포함된 voxel map 생성이 가능하다.
3. 이를 기반으로 모션 플래너의 학습을 수행한 결과도 보여줌

Method

사실 해당 부분에 대한 내용은 특별하게 새로운 지식을 전달하는 내용은 딱히 없습니다. 그래서 조금 담백하게 작성하겠습니다.

Problem Formulation

자유 형식의 언어 지시 L (e.g. “맨 위의 서랍장을 여시오”)를 토대로 로봇 조작을 수행한다고 가정했을 때, L만을 이용하여 로봇 궤적을 생성하려면 어떠한 변수로 인해 임무에 실패 할 가능성이 있습니다. 즉, 주변 환경과 상황에 대한 이해가 필요합니다. 이러한 관점에서 저자는 임무들을 L을 high-level planner (즉, LLM)을 이용하여 개별적인 단계 l_i (예를 들어 “서랍장 손잡이를 잡으시오”, “서랍장을 당겨서 여시오”)로 나눕니다.

자, 그럼 개별적인 명령어 l_i에 따른 로봇 r을 이용하여 motion trajectory \tau_i^{\bold{r}} 을 어떻게 생성할까요? 해당 궤적은 Operational Space Controller*에 의해 생성된 end-effector waypoints의 흐름에 따라 표현**됩니다. end-effector waypoints는 6-DoF end-effector pose, end-effector velocity, gripper action으로 구성됩니다.
* OSC는 기존에 제안된 motion planner 기법의 하나로 보시면 됩니다.
** end-effector는 말 그대로, 매니퓰레이터의 맨 끝 점을 생각하시면 됩니다. 각 관절들은 고려하지 않습니다.

하위 작업 l_i가 주어지면 궤적을 위한 최적화 문제는 다음과 같이 표현 가능합니다.

여기서 \tau_i^{\bold{r}} \in T_i 는 환경 상태에 대한 변화를 의미합니다. F_{task} scores는 T_i가 명령 l_i를 완료하는 정도에 대한 점수, F_{control}은 궤적을 수행하기 위한 제어 대한 시간 비용을 의미합니다. C는 기존 motion planner (물리 혹은 학습 기반) 환경 모델에 의해 적용되는 동역학에 대한 제약 조건을 나타냅니다. 위 수식을 통해 하위 작업 l_i에 대해 최적화 문제를 해결함으로써, 명령 L에 의해 지정된 전체 작업을 수행하기 위한 일련의 로봇 궤적을 얻습니다.

Grounding Language Instruction via VoxPose

자유 형식 명령과 관련하여 F_{task}를 계산하는 것은 언어 정보로부터 추론하는 방법이 난해 할 뿐더러, T와 L로 레이블이 지정된 로봇 데이터가 매우 부족하기 때문에 쉽게 해결하기 힘듭니다. 저자는 이러한 난제를 해결하기위해서 로봇의 관찰 공간에서 voxel map V \in R^{w \times h \times d \times} 를 이용하면 많은 수의 작업들에 대한 특징화가 가능하다는 것을 보입니다. 예를 들어 fig 2의 “상단 서랍 열기” 작업과 그 첫 번째 하위 작업인 “상단 서랍 손잡이 잡기”를 생각해 보겠습니다. “entity of interest” (“관심 대상”)은 end-effector이며 voxel value maps은 서랍 손잡이를 향한 인력을 반영해야 합니다. “꽃병을 조심해”라고 추가로 명령하면 꽃병의 반발력을 반영하도록 맵을 업데이트할 수도 있습니다. 이에 따라 “entity of interest”는 e로 이것의 궤적은 \tau_i^{e} 로 정의합니다. 주어진 명령 l_i에 대한 voxel value map V_i를 활용하여 이를 통과하는 e를 누적하여 F_{task}를 근사화 할 수 있습니다. 이는 다음과 같습니다.

여기서 p_j^e \in N^3 는 e의 이산화된 j e단계에서의 (x, y, z) 위치 입니다.
+ 정리하자면 관심 대상이 엔드 이펙트 혹은 대상 객체일 수 있습니다. 즉, 내가 움직이고자 하는 대상 물체를 의미합니다. 대상 물체가 움직여도 괜찮은 경로를 복셀 맵에 수치로 사용하고자 하는데 접근하면 안되는 꽃병에는 높은 점수를 부여하고 서랍에는 낮은 점수를 부여해서 F_task를 구하겠다는 이야기 입니다. 즉, 정리하면 지시 내 관심 대상을 로봇 궤적 생성에 대한 정보를 사용하는 방법을 제시하고 있는 중입니다.

저자는 인터넷 규모의 데이터에 의해 사전 학습된 대규모 언어 모델이 e를 식별할 뿐만 아니라 python 코드를 작성하여 작업 지침을 정확하게 반영하는 value map을 구성하는 기능을 보여주는 것을 확인합니다. 구체적으로 코드에 주석으로 지시가 주어지면 LLM은 1) 인식 API(OVOD와 같은 VLM을 호출)를 호출하여 관련 객체의 공간-기하학적 정보를 얻고, 2) 3D 배열을 조작하기 위해 NumPy 연산을 생성하고, 3) 관련 위치에 정확한 vaule 저장합니다. 저자는 이러한 프레임워크를 VoxPoser라고 지칭합니다. 즉, 지시 명령어로부터 LLM을 프롬프트하고 python 인터프리터를 통해 코드를 실행하여 volxel value map V^t_i = VoxPoser(o_t, ℓ_i) 를 얻는 것을 목표로 합니다. 여기서 o_t는 시간 t에서의 RGBD입니다. (추가로 V는 희소한 경우가 많기 때문에 smoothing operations~gaussian smoothing을 적용해 motion planner에 전달합니다.)

Zero-Shot Trajectory Synthesis with VoxPoser

task cost F_task를 구한 후에는 이제 수식 1에 정의된 전반적인 문제에 접근하여 동작 궤적을 계획할 수 있습니다. 여기서는 궤적을 무작위로 샘플링하고 제안된 목표에 따라 점수를 매기는 간단한 0차 최적화를 사용합니다. 이 최적화는 학습 또는 물리 기반 모델을 사용할 수 있는 동적 교란 하에서도 궤적을 안정적으로 실행하기 위해 현재 관측치를 사용하여 모든 단계에서 궤적을 반복적으로 다시 계획하는 모델 예측 제어 프레임워크에서 구현됩니다. 그러나 VoxPoser는 관측 공간에서 ‘dense rewards’을 효과적으로 제공하고 모든 단계에서 다시 계획할 수 있기 때문에 놀랍게도 전체 시스템이 단순한 휴리스틱 기반 모델로도 이 작업에서 고려한 매우 다양한 조작 작업을 이미 달성할 수 있다는 사실을 발견했습니다. 일부 value map은 로봇이 아닐 수도 있는 관심 대상에 대해 정의되기 때문에 동역학 모델을 사용하여 작업 비용(즉, 로봇과 환경 간의 상호작용이 원하는 물체 움직임을 달성하는 데 필요한 로봇 궤적)을 최소화하는 데 필요한 로봇 궤적을 찾기도 합니다.
+ 해당 부분은 아주 단순한 궤적 생성 기법을 사용했는데도 잘 작동하며, 제안한 voxel value map이 효과적인 결과를 보여준다는 내용에 해당합니다.

Efficient Dynamics Learning with Online Experiences

해당 파트에서는 학습 기반의 역학 모델을 이용하는 경우에도 이점을 누릴 수 있음을 보이는 파트 입니다. 표준적인 방식인 1) environment transition data (o_t, a_t, o_{t+1}) (여기서 a_t = MPC(o_t)) 를 수집하고 2) 예측된 다음 관측치 ˆot+1과 ot+1 사이의 L2 loss를 최소화하여 θ로 파라미터화된 동역학 모델 gθ를 훈련하는 경우를 생각해 봅시다. 여기서 학습 효율을 결정하는 중요한 요소는 일반적으로 full action space A에 대한 무작위 분포인 MPC의 action sampling distribution P(a_t|o_t)입니다. 이는 특정 작업에서는 비효율적일 수 있습니다. 예를 들어 “문 열기”에서는 대부분의 동작이 장면의 관련 물체(e.g. 문 손잡이)와 상호작용하지 않거나 반드시 의미 있는 방식으로 물체와 상호작용(e.g. 문 손잡이를 누르는 것)하지 않기 때문에 문을 여는 것과 같은 특정 작업을 해결하는 것이 목표인 경우 비효율적일 때가 많습니다. VoxPoser는 풍부한 상식적 지식을 갖춘 LLM으로 로봇 궤적을 합성하므로 zero-shot으로 합성된 궤적 \tau_0^{r} 은 동작 샘플링 분포 P(a_t|o_t, \tau_0^{r} )를 바이어스하기 전에 유용한 사전 정보로 사용될 수 있어 학습 프로세스의 속도를 크게 높일 수 있습니다. 실제로는 A에서 탐색하는 대신 작은 노이즈 ε를 추가하여 \tau_0^{r} 부근의 액션만 샘플링하여 로컬 탐색을 장려함으로써 이를 구현할 수 있습니다.
+ 정리하면 “문”이 아닌 “문 손잡이”와 소통해야 하는 경우가 존재합니다. 저자는 LLM의 풍부한 지식이 문이 아닌 문 손잡이를 잡도록 유도함으로써, 학습 프로세스를 증가 시키고, LLM이 지시한 로컬 영역에 대해서만 학습이 가능하기 때문에 효율성이 증가한다고 주장합니다.

Experiment

LLMs and Prompting. GPT-4를 활용. 프롬프트는 구글 로보틱스의 “Code as Policies”를 사용함. 각 프롬프트는 5-20의 example quries를 제공. 예시는 fig 2와 Appendix 참고

VLMs and Perception. OWL-ViT + SAM으로 해당 언어 쿼리의 마스크를 찾고 video tracker XMEM을 이용해 RGB-D 내의 object/part point cloud를 재구성

Value Map Composition. voxel map의 형태는 (100, 100, 100, k)로 k는 value map에 따라 달라짐. affordance와 avoidance는 k=1, rotation은 SO(3)이기에 k=4

Motion Planner. greed search?를 이용하여 collision-free end-effector positions을 구함. 여기서는 affordance and avoidance map만 사용. 해당 기능은 동작 후, 5 Hz 뒤 다시 생성

Dynamics Model. 여기서는 end-effcetor만 관심 대상으로 규정했으며, 물체가 중심인 경우에는 밀고 당기기만 고려함. 해당 파트에서 rotation, velocity map을 사용하여 동작에 대한 액션 파라미터로 사용

Generalization to Unseen Instructions and Attribute

LLM+Prim.은 LLM을 활용해서 코드를 생성하고 모션에 대해서는 primitive motion만 이용한 방법에 해당함. Tabe 2에서는 새로운 명령어와 새로운 특성을 가진 객체에 대해서 LLM의 일반화와 제시한 voxel value map을 이용한 Motion planner의 성능을 보이는 결과. tab 1과 tab 2에서 모두 기존 기법들은 월등히 뛰어넘는 결과를 보여줌

Efficient Dynamics Learning with Online Experiences

Tab 3은 dynamics learning 기법에 따른 분석 결과로 zero-shot (휴리스틱한 기법), LLM의 정보를 사전 정보로 부여하는 여부에 따른 learing 기법에 따른 분석 결과에 해당함. 학습 시간과 성공률이 향상된 결과를 보여줌

Error Breakdown

“Dynamics error”는 동역학 모델에서 발생하는 오류, “Perception error””는 인식 모듈에서 발생한 오류, “Specification error””는 low-level motion planner 또는 primitive의 비용이나 파라미터를 지정하는 모듈에서 발생한 오류를 뜻함. fig 4에서 볼 수 있듯이 VoxPoser는 일반화와 유연성으로 인해 가장 낮은 “Specification error”를 달성합니다. 해당 실험 결과를 통해 인지 모듈과 동역학 모델 향상될 경우에 더욱 강인한 결과를 보여줄 것이란 걸 시사함.
+ 예를 들어, 감지기는 물체의 초기 포즈에 민감하고 물체 부분을 감지할 때 덜 강력하다는 것을 발견했다고 합니다.


추후에도 해당 태스크 관련 내용들로 꾸준히 리뷰를 작성할 것 같습니다. 지금은 난해한 분야라서 이해하기 어렵지만 차차 익숙해지면 조금 더 와닿는 표현들로 글을 작성하도록 하겠습니다.

Author: 김 태주

1 thought on “[CoRL 2023 oral] VoxPoser: Composable 3D Value Maps for Robotic Manipulation with Language Models

  1. 좋은 리뷰 감사합니다.

    언어 지시 L이 자유 형식이라 하셨는데, L로부터 l_i를 만드는 과정에서는 주어진 지시어만을 고려하는 것으로 이해하였는데, 주변 환경에 대한 정보가 주어지지 않을 경우에는 주변의 장애물등은 아예 고려하지 못하는 것일 지 궁금합니다.
    자유 형식이라고는 했지만, 목적하는 작업에 대한 지시와 주변에 대한 정보는 필수적으로 주어져야하는 것일까요?

    (주변 환경에 대한 명시적 정보 제공이 없어도 이를 자동으로 고려할 수 있도록 하는 연구가 추후 필요해보입니다..)

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다