안녕하세요. 이번 논문은 VLM과 visual prompting을 활용한 open-world 환경에서의 Robot Manipulation 태스크 관련 논문입니다. 자세히는 free-form language instruction 에 대해 VLM visual prompting을 활용한 Marking Open-World Keypoint Affordance(MOKA) 기법을 제안하여 VLM의 예측 – 실제 세계의 로봇 action 을 연결하는 과정으로 Robot Manipulation을 수행하는 태스크입니다. 아 참고로 이 논문에서 말하는 VLM이란 CLIP 등의 VLM이 아니라 GPT-4V 즉 MLLM을 두고 VLM이라고 말하고 있습니다 참고하여 읽어주시길 부탁드립니다. 리뷰 시작하겠습니다.
1. Introduction
로봇 시스템에서 Open-Vocabulary 일반화를 달성하는 것은 여전히 큰 도전 과제로 남아 있습니다. 이는 로봇이 보지 못한(unseen) 환경에서 새로운 사용자 명령을 이해하고, 물리 세계의 복잡성과 다양성을 고려하여 적절한 동작을 수행해야 하기 때문입니다. 최근 가장 직관적인 해결책으로 주목받는 접근 방식은, 대규모 데이터로부터 사전 지식을 학습한 거대 모델(LLM, MLLM, LVLM 등)을 로봇 태스크에 적용하는 것입니다. 실제로 LLM과 VLM의 발전은 개념 이해, 상식, 추론 능력에서 뛰어난 성과를 보여 왔습니다. 하지만 기존의 인터넷 규모 대규모 데이터로 학습된 모델들은 3D 공간 이해, 접촉 물리학, 로봇 제어 등의 관점에서 여전히 한계를 보이며, 특정 시나리오의 환경적 특성과 동역학에 대한 지식이 부족합니다. 따라서 컴퓨터 비전(CV)과 자연어 처리(NLP) 분야에서의 성공적인 트렌드와 달리, 로봇 공학에서의 적용에는 여전히 간극이 존재합니다. 이러한 한계에도 불구하고, 최근에는 로봇 제어를 위해 사전학습된 거대 모델을 활용하는 연구가 활발히 이루어지고 있습니다. 주로 LLM 및 VLM을 직접 프롬프트(prompting)하거나 미세 조정(fine-tuning)하는 방식으로 로봇 제어를 수행하며, 다음과 같은 세 가지 주요 방향으로 연구가 진행되고 있습니다.
- Planning: SayCan, InnerMonologue, Language-Planner, NLMap-SayCan 등
- Reward Modeling: Eureka, Reward Design with Language Models, Zero-Shot Reward Model, Language-to-Reward 등
- Code Generation: Code as Policies, ProgPrompt, Voyager 등
하지만 이러한 접근 방식들 또한 여전히 몇 가지 한계를 가집니다.
- LLM이 VLM보다 먼저 발전했기 때문에, 기존 연구들은 환경 정보를 언어로 변환한 후(Langugae Description), 이를 바탕으로 LLM에서 reasoning과 planning을 수행하는 방식이 주로 사용되었습니다. 하지만 고수준 언어 설명만으로는 세밀한 환경 정보와 사물의 미묘한 시각적 디테일을 놓칠 위험이 있습니다.
- LLM 기반의 접근 방식은 유사한 작업을 수행하기 위해 많은 in-context example을 필요로 하며, 이를 설계하는 과정에서 상당한 수작업 비용이 발생합니다. 예를 들어, VoxPoser, Code as Policies, ProgPrompt 등의 연구에서는 이러한 예제 설계가 필수적이었으며, 이는 확장성과 일반화를 저해하는 요소로 작용했습니다.
그래서 본 연구에서는 VLM을 활용하여 자유형 언어 명령어에 대해 로봇이 새로운 매니퓰레이션 태스크를 얼마나 효과적으로 수행할 수 있는지에 집중합니다. 연구의 핵심은 이미지에 대한 VLM의 예측을 물리 세계의 로봇 동작과 연결하는 중간 표현(intermediate representation)으로 affordance 표현을 활용하는 것입니다. 이러한 affordance 표현은 다음 두 가지 조건을 만족해야 하는데 첫째로는 “VLM이 환경의 시각적 관찰과 작업 묘사를 기반으로 현실적으로 예측할 수 있어야 한다.” 이고, 두번째론 “로봇이 쉽게 실행할 수 있도록, 동작 수행에 필수적인 정보만을 간결하게 추출해야 한다.”입니다. 이를 위해 본 연구에서는 Marking 기반 Visual Prompting 방식을 활용하여 로봇 매니퓰레이션을 수행하는 “Marking Open-World Keypoint Affordances (MOKA)”를 제안하게 됩니다.

위의 그림이 이 태스크를 간단히 보여주는 그림인데요. 보면 Table cleaning이라는 user 명령이 들어오고, 1,2,3 이런 순으로 무언가 작업을 구체화하는 text가 가장 상단에서 이루어진 것을 볼 수 있습니다. 그러면서 좌측 이미지를 보시면, 이미지 내 후보 포인트를 표시하고, VLM에 쿼리하여 최적의 포인트 집합으로써 afforadance 포인트를 선택하는 과정을 보여줍니다. 이렇게 예측된 affordance를 키포인트와 웨이포인트로써 picking, placing, pressing, tool use 등 다양한 매니퓰레이션 태스크에 대한 모션 trajectory를 정의하는 데 활용하는 방식으로 본 방법론이 구성되게 됩니다.
MOKA의 contribution 핵심은 VLM의 예측과 로봇 동작을 연결하는 새로운 Affordance 표현을 도입하여 기존 연구의 문제점을 해결했다는 것이고, 세부적으로는 다음과 같습니다.
- 포인트 기반 어포던스(Point-Based Affordance Representation)
- 로봇 동작을 키포인트(Keypoints)와 웨이포인트(Waypoints)로 표현하여 VLM 예측을 로봇의 물리적 동작과 직접 연결.
- 마크 기반 시각적 프롬프팅(Mark-Based Visual Prompting)
- 이미지에 후보 키포인트를 표시하여 VLM이 이를 조금 더 이해하기 쉬운 VQA 문제로 해결하도록 유도.
- 로봇 경험 활용을 통한 성능 향상
- In-Context Learning: MOKA가 생성한 데이터를 VLM에 제공하여 성능 향상.
- Policy Distillation: 로봇 실행 결과를 학습 데이터로 활용하여 로봇 정책을 개선.
2. Problem Statement
MOKA의 목표는 로봇이 unseen objects 와 새로운 goals를 다루는 매니퓰레이션 작업을 잘 수행하도록 하는 것이 목표입니다. 각 작업은 free-form language instruction으로 이루어지며, 작업을 성공적으로 수행하려면, 로봇은 하나 이상의 stage에서 환경과 상호작용해야합니다.
Fig1 을 예로 들면, “안경을 치운 후, 테이블 위의 쓰레기를 닦아라”라는 instruction은 2개의 sub-task로 나눌 수 있습니다. 1. 안경을 안경 케이스로 옮긴다. 2. 빗자루를 사용하여 쓰레기를 쓸어낸다. 가 되겠습니다.
여기서 sub-task는 물리적 상호작용의 단위로 구분되어 정의됩니다. 크게 3가지인데, 먼저 로봇이 손에 쥔 물체(Object in hand)와의 상호작용[ex) 물체 들기, 서랍 열기, 수도꼭지 돌리기 등], 로봇이 손에 잡혀있지 않은 환경 속 물체(Object unattached)와의 상호작용[ex) 장애물 밀기, 버튼 누르기], 도구 사용(Tool Use) [ex) 막대로 찌르기, 빗자루로 쓸기, 칼로 자르기]입니다.

MOKA는 이런 sub-task를 계층적 처리 방식, 즉 high-level reasoning, low-level reasoning 으로 나누어 태스크를 진행합니다.
먼저 high-level reasoning에서는 VLM을 활용해 큼직한 여러 sub-task로 분해하도록 image와 in-context example 방식의 text prompt를 input으로 넣어 sub-task에 대한 description 결과를 만들어냅니다. 그런 다음 각 sub-task에 대한 instruction과 관련된 물체(object-in-hand, object-unattached), 동작 방향(motion direction)을 추출합니다. 이후 low-level reasoning에서는 또 다시 VLM을 활용해, 다시 한번 in-context example prompting을 통해 로봇 매니퓰레이션을 위한 grasp_keypoint, function_keypoint, target_keypoint, pre_contack_tile, post_contact_tile 및 추가 attributes를 생성합니다. 이 과정이 바로 앞서 계속 언급한 MOKA만의 Affordance representation을 정의하는 핵심 요소가 됩니다.
실제 로봇 환경과 동작 방식은 다음과 같습니다. 환경의 경우 테이블탑 구성에서 로봇팔 따로, RGBD 카메라 따로 세팅하고, 로봇 동작의 정의는 매 타임스텝 t마다 환경에서의 관찰인 observation s_t를 받고, action a_t를 결정하여 로봇을 조작하는 과정을 가집니다. action a_t는 6DOF 그리퍼 pose 및 finger status로 표현됩니다.
3. Marking Open-World Keypoint Affordances
결국 VLM을 활용해서 open-world manipulation task를 해결하려면, 초반에 언급했듯이 VLM의 예측 결과와 로봇의 물리적 동작을 연결하는 인터페이스가 필요하다는 것이 핵심입니다. 그리고 그 인터페이스가 되어주는 것이 본 논문에서는 affordance representation이 되는 것이죠. 이 VLM을 통한 affordance prompting의 과정을 살펴보도록 하겠습니다.
A. Point-Based Affordance Representations
기존 연구인 kpam, keto 방식들을 기반으로 다양한 로봇 매니퓰레이터 태스크에 적용할 수 있는 key point based affordance representation을 구성했습니다. 매번 다른 사전정의 기술에 의해 구분되는 다양한 motion primitives 대신에, 통일된 구조의 keypoints와 waypoints를 motion 구체화에 사용했습니다. 이를 VLM을 통해 2D 이미지에서 예측된 포인트를 3D 공간에서의 pose로 변환하여 로봇 동작을 매끄럽게 생성할 수 있도록 했습니다. 이를 수행하기 위해선 로봇은 다음의 생성된 motion trajectory를 기반으로 환경과 상호작용합니다.

저자들은 로봇의 motion을 object-centric 방식으로 환경과 객체가 어떤 타입으로 상호작용하는지에 따라 representation을 다르게 설명합니다. 먼저 객체는 로봇이 잡는 객체인 o_in-hand 와, 로봇이 상호작용하는 고정된 객체인 o_unattached로 구분됩니다. 그리고 motion은 로봇이 환경에서 o_in-hand를 잡는 grasping phase와, 로봇이 동작을 수행하며 o_unattached 객체와 단순 접촉하여 상호작용하거나, o_in-hand를 도구처럼 사용하는 manipulation phase 로 구체화할 수 있겠습니다. 이외 특정한 상황으로는 로봇은 o_in-hand나 o_unattached 중 하나와만 상호작용하는 경우로 볼 수 있는데, 예를 들어 o_in-hand 만 사용하는 경우는 케이블 뽑기, 서랍 열기 등이 있을 것이고, o_unattached 만 사용하는 경우에는 버튼 누르기 등이 있겠습니다.
일단 이 방식을 통해 저자들은 로봇의 움직임을 단순하고 객체 중심적으로 구체화해 정의해놓게 되어 추후 작업 시 용이하게 만들어 놓습니다. 위의 이미지로 보시면 o_in-hand의 경우는 broom이 되겠고, o_unattached의 경우는 trash가 되겠습니다.

이제 앞서 말한 keypoints와 waypoints의 정의가 어떻게 되는지, 그것들이 위에서 말한 motion을 지정하는 방식에 대해서 설명하겠습니다. 위의 이미지와 같이 결부해서 보시면 이해가 쉽습니다.
- grasping keypoint x_{grasp} : o_in-hand 객체에서 로봇 그리퍼가 잡아야 할 위치를 지정하는 키포인트입니다. 만약 o_in-hand가 작업에 포함되지 않는다면, 해당 grasping 단계는 생략됩니다. 위 이미지에서는 빨간 점 P5가 되게 됩니다.
- function keypoint x_{function} : manipulation phase에서 o_in-hand의 특정 부분이 o_unattached와 접촉하게 될 위치를 지정합니다. 만약 o_in-hand가 작업에 없다면, x_function은 로봇 그리퍼에서 정의되고, 로봇과 o_unattached 간의 직접 접촉을 하게되는 것으로 나타냅니다. 위 이미지에서는 노란점 P3가 되게 됩니다.
- target keypoint x_{target} : manipulation phase 중 x_function이 접촉할 o_unattached의 위치를 지정합니다. 위 이미지에서는 파란점 Q1이 되게 됩니다.
- pre-contact waypoints x_{pre-contact} : 이는 사전 접촉 waypoint로 로봇이 접촉하기 전의 자유 공간에서의 움직임을 정의합니다. 위 이미지에서는 하늘색점 c4가 되게 됩니다.
- post-contact waypoints x_{post-contact} 이는 사후 접촉 waypoint로 로봇이 접촉 한 후의 움직임을 정의합니다. 위 이미지에서는 하늘색점 e4가 되게 됩니다.
이 keypoints와 waypoints는 객체에 정의된 대로 manipulation phase 에서 로봇의 motion trajectory를 결정합니다.
manipulation phase 동안에 로봇은 x_function이 x_pre-contact, x_target, x_post-contact 를 순차적으로 연결하는 경로를 따르도록 그리퍼를 움직입니다. 경로를 따르는 것 외에도 로봇 그리퍼는 앞선 두가지 단계 동안 각각 지정된 파지방향인 R_grasp와 조작방향인 R_manipulate를 따라야합니다. 포인트 기반 motion의 설계를 더 잘 설명하기 위해 예측된 포인트와 그에 따른 모션의 예를 보여줍니다. 이는 추후 Experiments의 정성적 결과에서 보여드리도록 하겠습니다.
B. Affordance Reasoning with Vision-Language Models
그럼 이제 앞서 정의한 affordance representation을 VLM을 통해서 추론해내야겠죠? MOKA는 VLM을 통해 인터넷 스케일로 학습된 사전지식을 바탕으로 VQA 문제처럼 추론해보고자 했습니다. 이 때 high-level reasoning 과 low-level reasoning 두 단계로 hierarchical prompting이 적용되었습니다. 이렇게 level을 차등하여 affordance reasoning을 수행함으로써 고수준의 태스크 이해능력, 저수준의 공간적 추론을 적절히 짬뽕해 human text representation과 robot의 실제 action 간의 gap을 좁히고자 했던 것 같습니다. VLM reasoning으로 task-planning을 본인들이 미리 정의해놓은 example prompting 처럼 잘 흘러갈 수 있도록 잘 구체화한 것이 핵심입니다. 예를 들면 “스낵팩 오른쪽에 빗자루를 옮기세요” 와 환경의 RGB 이미지를 입력으로 받으면 → subtask로 나눌 수 있게 되는 것입니다.

high-level 추론 단계에서 MOKA는 초기 관찰값과 태스크 설명을 기반으로 VLM을 질의하여 하위 작업의 순서와 관련 정보를 포함하는 구조화된 표현 y_{high}을 생성합니다. M은 VLM이고, ρ_{high}는 language prompt, l는 language description, s_0은 initial observation입니다. 이 표현에는 각 작업의 설명(예: “빗자루를 오른쪽으로 이동”)과 상호작용할 객체의 이름, 동작의 방향 등이 포함되게 됩니다.


다음으로, low-level 추론 단계에서는 VLM을 다시 질의해 구체적인 2D 및 3D 키포인트를 추론합니다. y^k_low 는 추론된 affordance representation이고, ρ_low는 low-level reasoning을 위해 쓰이는 앞선 high-level reasoning 형태의 response와 annotated image를 가진 request description입니다. y^k_high는 k는 high-level에서 나뉜 k번째 sub-task과 연관된 substring으로 보면 됩니다. 마지막 f(s_t(k))는 raw visual observation s_t(k)를 처리하는 표현식입니다.
이를 통해 로봇은 객체와 상호작용할 지점을 정확히 파악하고 작업을 수행할 수 있습니다. MOKA는 직접적인 3D 좌표 생성을 대신하여, RGBD의 2D 이미지와 depth를 기반으로 키포인트를 예측한 후 이를 3D 공간에 투영하는 방식을 채택했습니다. 키포인트는 로봇의 동작을 구체화하기 위해 x_grasp, x_function, x_target와 같은 단계별 목표 지점을 포함합니다.
C. Mark-Based Visual Prompting
MOKA의 low-level 추론에서 눈에 띄는 점은 Mark-Based Visual Prompting 방식입니다. 이미지 위에 점, 격자, 텍스트 annotation을 마킹하여 VLM의 시각적 reasoning 능력을 끌어올리는 것인데요. 아래의 Set-of-Mark Prompting 을 활용한 GPT-4V에서의 visual grounding 수행 연구의 컨셉을 가져왔다고 합니다.

기존의 생짜 이미지로 VQA를 하는 것이 주관식이라면 해당 기법은 1,2,3,4 등의 마킹을 통해 객관식 문제로 쉽게 풀게끔 만드는 것으로 이해하면 될 것 같습니다. 제가 예전에 리뷰했던 LLM-Optic 에서 사용했던 것과도 유사한 기법을 사용한 것이죠.(왜 LLM-Optic이 주목을 못 받았는 지 알 것 같았습니다. 서로 다른 저자에 비슷한 태스크인데 SoM의 경우는 MS와 공동연구인지라 퀄리티 차이가 많이 나더라구요.) 여기서 MOKA는 high-level reaoning 단계에서 planning을 통해 추론된 o_in-hand와 o_unattached에 정의된 키포인트를 선택하기 위해서, 이 객체들에 대한 후보 키포인트를 내뱉고 이미지에 그리는 방식으로 마킹합니다. 또한 각 객체의 이름에 대한 텍스트 프롬프트에서 지정된 객체의 분할 마스크를 추출하도록 GroundedSAM 을 활용하여 o_in-hand와 o_unattached를 분할합니다. 이후 이 두 객체의 분할 마스크를 얻은 후에는 객체의 윤곽에서 가장 먼 지점 샘플링(Pointnet의 farthest point sampling 기법)을 통해 K boundary points를 얻습니다. 중심점과 함께 각 객체에 K+1개의 후보 키포인트를 overlay하면 각 후보 키포인트에는 인덱스가 할당되고 annotated됩니다. 복잡성과 혼동을 피하기 위해, 저자들은 o_in-hand 와 o_unattached 후보 키포인트에 서로 다른 색상을 사용하고, 캡션은 P_i, Q_j 형태입니다.
이제 scene 내의 free space에 있는 waypoints를 선택하려면 더 넓은 영역에서 찾아내야 합니다. 전체 작업 공간에서 직접 포인트를 샘플링하는 과정은 비효율적일 수 있기 때문에, 저자들은 input RGB 이미지를 m x n 그리드 (본 연구의 eval에선 5 x 5)로 나누어 VLM으로 하여금 pre-contact 와 post-contact keypoints가 위치할 타일을 선택해서 locate하라는 프롬프팅을 취하고, 정확한 waypoints를 타일 내에서 균일하게 샘플링한다고 합니다. 그래서 이 작업에서 이미지에 각 타일의 이름과 함께 그리드를 overlay해서 그려넣는 과정이 들어가게 됩니다. 타일 이름은 문자로 체스 표기법을 따른다고 합니다.
D. Motion Generation with Predicted Affordances
이제 VLM에서 선택한 keypoints와 waypoints를 얻었으니, affordance를 실제로봇에서 실행가능한 모션으로 변환해야 합니다. 그러려면 2D image의 모든 포인트를 3D 공간으로 올려야합니다.
object에 생긴 keypoints의 경우, RGBD 인풋에서 가지고 있던 depth 이미지에서 corresponding 포인트를 직접 가져와 로봇의 frame으로 변환할 수 있습니다. scene 내의 free space에서 선택된 waypoints의 경우 object에 부착되어 있지 않기 때문에, 이를 3D 공간으로 deprojection하려면 높이 정보가 있어야 됩니다. 이를 위해서 VLM에 waypoints의 높이를 결정하도록 요청한다고 합니다. 이렇게 하면 구현하지 못하는 동작들이 많이 생길 거라는 생각이 들지만, 저자들은 대부분의 일반적인 table top manipulation 시나리오에 한해서는 waypoints가 target points와 같은 높이에 있거나(pushing), target points 위에 있는 경우만 고려한다고 합니다.(placing) 게다가 일반적으로 tool use task의 성공에 영향을 미칠 수 있는 manipulation phase에서 VLM에 o_in-hand의 orientation을 반환하라는 prompting도 넣는다고 하네요.

그럼 이제 3D로 얻어진 waypoints와 keypoints들을 어떻게 할 것이냐,, 는 위 figure에 보이는 것처럼 kpam이라는 19년도 논문의 방식을 따랐다고 합니다. x_grasp, x_function으로 벡터를 사용하여 물체의 방향을 지정하고 한정된 옵션 세트(예) 앞, 뒤, 위쪽, 아래쪽, 왼쪽, 오른쪽)에서 방향을 예측하도록 VLM에 요청한다고 합니다. 이후 그립과 관련된 부분까지는 거의 전적으로 kpam이라는 방법론을 따라 의존하는 것 같았는데요. 해당 kpam 논문을 아직 제대로 읽어보지 못해, 추후 기회가 되면 내용 다뤄보도록 하겠습니다.
E. Bootstrapping through Physical Interactions
실제 세계와의 물리적 상호작용을 통해 MOKA의 성능을 부트스트랩하는 2가지 방법을 고려합니다. 두 방법 모두 대상 작업에 대한 VLM policy를 풀어서 로봇 경험을 수집합니다. 수집된 경험의 success 레이블은 VLM 또는 사람이 주석을 달게 됩니다.
[In-context learning]

위 그림 7과 같이 몇 가지 성공적인 사례를 컨텍스트 내 예시로 사용하여 high-level reasoning과 low-level reasoning을 진행합니다. few-shot prompting으로 in-context example 2~3개를 사용하면 VLM의 성능을 크게 향상시킬 수 있다고 합니다. request와 관련된 input 프롬프트인 ρ_high 및 ρ_low를 변경하지 않고, 세 쌍의 주석이 달린 이미지와 이전에 성공적으로 롤아웃된 VLM policy의 VLM response를 프롬프트에 추가하는 방식을 취한다고 합니다.
[policy distillation]
MOKA는 실제 로봇 학습을 위한 데모 데이터 세트를 수집하는 데 사용할 수 있습니다. 성공적인 궤적을 수집할 때 멀티뷰 이미지와 로봇 고유 sensing 상태를 기록하고 간단한 behavior cloning objective를 사용하여 visuomotor policy를 학습한다고 합니다.
4. Experiments
실험은 다음의 3가지 의문을 검증하고 정리하기 위해 진행했다고 합니다.
- MOKA가 unseen task에 대해 이미지를 기반으로 affordance를 효과적으로 추론할 수 있는가?
- MOKA의 예측을 low-level의 동작으로 변환한 후 제안된 작업에서 얼마나 잘 수행하는가?
- in-context learning이나 policy distillation을 통해 실제 실험에서 MOKA가 개선될 수 있는가?
먼저 zero-shot 및 in-context learning 환경에서 4가지 매니퓰레이션 태스크에 대해 기준 방법과 비교하여 MOKA의 성능을 평가합니다. 각 evaluation 태스크는 두 단계로 구성되며, 각 태스크에는 다양한 사물 상호작용 및 도구 사용 시나리오가 포함됩니다.
일단 open-world task의 zero-shot 실행을 가능하게 하는 대표 기존 연구인 Code as Policies와 VoxPoser를 기준으로 비교가 이루어집니다.

MOKA와 두 주요 baseline인 Code-as-Policies와 VoxPoser의 성공률을 비교한 결과, MOKA In-Context의 경우에는 단 2개의 context example prompting만을 사용했는데도 성능을 대폭 향상시켰으며 특히 복잡한 태스크에서 높은 성공률을 보여줬습니다. MOKA Distilled의 경우에는 물리적 상호작용과 policy distill을 통해 VLM에서 추출한 데이터를 로봇 학습에 재활용해 zero-shot보다 성능을 더 높인 것을 확인할 수 있었습니다. 유의미하게 볼 점은 zero-shot 성능이 baseline인 CaP, VoxPoser보다 더 좋았던 것을 유의미하게 볼 수 있을 것 같으나, 태스크가 한정적이었다는 점에서 zero-shot을 통한 일반화가능성까지는 해당 방법론으로는 더 개선이 있어야될 것 같다는 생각이 듭니다. VLM(GPT-4V)을 얼마나 더 유용하게 사용할 수 있을지, prompting을 어떻게 설계할지, CaP의 action policy code generation 방법을 해당 MOKA가 추구하는 waypoints, keypoints를 통한 작업방식에 접목한다면 시너지가 날지에 대해 궁금증이 생기네요.

위의 Fig3에서는 작업과정에서의 키포인트와 궤적을 보여줍니다. 예를 들어 테이블 닦기의 경우에는 빗자루의 키포인트를 지정하고, 쓰레기를 쓸어내는 궤적을 생성하는 모습을 보이는 것을 확인할 수 있고, 전원 버튼 누르기 작업에서는 버튼 위치를 정확히 파악하고 누르기 동작을 수행하는 것을 볼 수 있습니다. 이렇듯 MOKA의 키포인트 기반 매니퓰레이션 접근법은 꽤나 시각적으로 직관적일 수 있다는 게 장점인 것 같고, 도구 사용, 물체 간 상호작용 매니퓰레이션 등에 있어서는 기존 action policy code generation 기반 CaP보다 더 복잡한 태스크에 적응하기 쉬울 수 있겠단 생각도 듭니다. 그럼 또 차라리 이 둘의 방식을 섞으면 어떻게 될까? 라는 생각도 또 들고요.

작업 시나리오는 크게 4가지로 구성되어 있습니다. 저자들은 이것만으로도 작업 일반화 능력을 평가하기에 적합하다고는 하나, 추후 더 좋은 실험환경에서 여러가지 객체와 매니퓰레이터 간의 상호작용을 보일 수 있는 세팅이 주어지면 더 좋을 것 같습니다.

Fig 4.는 실패사례를 보이는데요. 크게 2가지의 실패 경우가 있습니다. 먼저 Reasoning Failure로 VLM으로부터의 키포인트 예측 자체가 잘못되는 경우입니다. 이런 경우 빗자루를 잘못된 방향으로 잡거나, 목표 지점을 혼동하는 경우로 파악할 수 있습니다. 다음은 Execution Failure인데 동작 수행 중에 물리적인 제약으로 실패하는 경우를 말합니다. 예를 들면 버튼을 나름 눌렀는데도 위치나 힘 등에서 애매한 오차가 있거나, rigid하지 않은 물체의 경우 잡을 때의 안정성이 떨어지는 경우 등이 있겠습니다. 이는 zero-shot 에서 당연히 많은 사례가 일어났기에 저자들은 distilled 방식과 in-context 방식으로 실패 개선을 이룰 수 있었다고 합니다.

마지막으로 MOKA는 다양한 초기 배치, 다양한 언어 지시, 객체 변화에도 꽤 강건한 모습을 보일 수 있었다고 합니다. 예를 들어 언어 지시가 약간씩 다르거나 객체의 기하학적 특성이 변해도 VLM의 사전지식으로 꽤나 일관된 키포인트를 예측하는 모습을 보였다고 합니다. 더불어 이는 좀 신기한 코멘트였는데 투명하거나 변형이 가능한 객체에서도 높은 성공률을 기록했다고 합니다. 마킹 기반 visual prompting 만으로도 VLM(GPT-4V)의 능력이 투명 혹은 비정형 물체에 대해서도 좋은 키포인트 예측을 보인다는 것이 인상깊네요.
5. Conclusion
MOKA는 사전 학습된 VLMs를 활용해 로봇이 오픈 월드 조작 태스크를 zero-shot/few-shot 방식으로 수행하는 파이프라인을 가지며, 핵심 method인 마크 기반 시각 프롬프트를 사용해 VLM을 통한 manipulation 능력을 강화하는 모습을 보였습니다. 하지만 Affordance Representation 설계에 있어서는 3D 공간, 접촉 물리학, 로봇 제어에 대한 깊이 있는 설계가 부족하고, 더 정밀한 동작 생성은 어렵기에 모든 로봇 동작은 포괄하지 못한다는 것이 한계로 언급됩니다. 또한 manipulation 태스크 자체가 dynamic하다는 특성과 open-loop control이었다는 점에 있어서 VLM의 높은 지연시간 문제도 간과할 수 없는 문제가 있다고 합니다. 이상 리뷰 마치겠습니다.
안녕하세요 재찬님 리뷰 감사합니다.
혹시 policy distillation이 로봇이 행동한 결과가 성공적이었을 때 그 행동과 결과를 다시 학습에 사용한다고 이해했는데 제가 맞게 이해한걸까요? Behavior Cloning 을 활용해서 학습하는거면 추가되는 데이터도 기존의 데이터와 차이가 별로 없을것 같기도 한데 어떤 측면의 향상을 기대하면서 policy distillation을 수행하는건가요?
안녕하세요. 재찬님. 리뷰 감사합니다.
해당 태스트에 대해서 팔로업을 하고 있는데, 주로 하나의 free-from instrcution이 주어지면 이것을 sub-task로 나누어 수행하는 경우가 많은 것 같습니다.
본 논문에서는 sub-task를 물리적 상호작용의 단위로 구분하여 정의한다고 하였는데, 해당 논문뿐만 아니라 대부분의 논문에서 이렇게 sub-task로 나누나요? 아니면 본 논문에서만 물리적 상호작용의 단위로 구분하는 걸까요? 만약 해당 방식이 통상적으로 사용되는 방식이 아니라면 통상적으로 사용되는 sub-task로 나누는 방식이 이미 구축되어 있는지 아니면 논문마다 방식들이 다 다른지 궁금합니다.
감사합니다.