🌏 인트로
BDDL(Behavior Description Definition Language)은 Embodied AI 연구에서 매우 중요한 자료구조로, 로봇의 행동을 정의하는 상황을 제시하는 언어입니다.
VLA 연구에 있어서 굉장히 핵심적인 데이터셋으로 활용되고 있습니다.
🌏 VLM/VLA란?
✅ VLM (Vision-Language Model)
- 정의: 이미지(또는 영상)와 텍스트를 동시에 이해하고 처리할 수 있는 모델
- 기능
- 이미지를 보고 텍스트로 설명 생성 (Image Captioning)
- 텍스트 기반 질의응답 (예: "이 그림 속에 고양이가 몇 마리야?")
- 멀티모달 검색 (이미지+텍스트 기반 검색)
- 예시: GPT-4V, CLIP, BLIP, Flamingo 등
- 활용 분야
- 시각장애인용 이미지 설명
- 이미지 기반 QA 챗봇
- 제품 이미지 검색/추천
- 자율주행, 의료영상 분석 등
✅ VLA (Vision-Language-Action)
- 정의: VLM에
행동(제어) 기능이 추가된 모델 (Embodied AI)- 단순히 보고/말하는 것을 넘어서 실제 행동을 계획하고 실행하는 능력까지 가짐
- VLM을 보고 이미지 속 상황을 이해한 로봇 팔이 실제로 컵을 옮기는 일 등을 할 수 있도록
- 기능
- 환경을 보고 상황을 이해한 후, 적절한 행동 결정해 실제 조작 실행
- 텍스트 지시, 시각 입력을 기반으로 로봇 조작 가능
- 예시: RT-2 (Google DeepMind의 Robot Transformer), SayCan, PaLM-E
- 활용 분야
- 가정용/산업용 로봇 (책상을 치워줘 라고 말하면, 로봇이 물체 인식 후 치움)
- AR/VR 상호작용
- 스마트 팩토리 자동화
- 물류, 의료 보조 로봇
이러한 Embodied AI에 핵심적인 데이터셋으로 사용되는 BDDL에 대해서 이해해 봅시다.
🌏 VLM의 한계
✅ VLM의 한계: 공간적 추론 능력 부족
사실 VLM은 꽤나 발전했습니다. 우리가 GPT에 사진을 넣은 후 설명해달라고 하면 꽤나 잘 하듯, 이미 놀라운 성과를 보이고 있기도 합니다.
하지만 사진을 보고는 고양이가 있다는 인식할 수 있지만, 고양이가 옆에 있는 나무와 얼마나 떨어져 있는지, 다른 물체보다 앞에 있는건지 뒤에 있는건지 잘 구분할 수 없는 경우가 많습니다. (공간적 추론 능력이 없는채로 곧장 로봇팔을 돌진할 수는 없겠쥬?)
✅ (논문) Spatial VLM: 비전-언어 모델에 공간 추론 능력을 부여하기
CVPR 2024, Google DeepMind · MIT · Stanford
위 논문의 초록을 번역해 보았습니다
물체들 사이의 공간적 관계를 이해하고 추론하는 능력은 VQA(비주얼 질문응답)와 로보틱스에서 아주 중요한 능력입니다. 비전-언어 모델(VLM)은 여러 VQA 벤치마크에서 뛰어난 성능을 보였지만, 여전히 3차원 공간 추론 능력은 부족합니다. 예를 들어, 두 물체 사이의 거리나 크기 차이를 정량적으로 파악하는 데 약합니다.
우리는 이 한계가 모델 구조 때문이 아니라, 훈련 데이터에 3D 공간 지식이 부족하기 때문이라고 가정합니다. 이를 해결하기 위해, 인터넷 규모의 공간 추론 데이터를 이용해 VLM을 학습시키는 방법을 제안합니다.
…
위 논문은 AI 모델이 모자라서가 아닌, 3D 공간추론에 대한 데이터셋을 더 제공해주면 이 문제가 해결될 것이라고 제안합니다.
🌏 (연구) LIBERO
✅ 목표: 지식의 전이 (Transfer Learning)
LIBERO는 이렇게 공간 추론 능력까지 학습한 모델을 테스트하기 위한 데이터셋을 제시합니다
LIBERO의 핵심은 Transfer Evaluation입니다. 즉 로봇이 이미 배운 작업을 얼마나 잘 응용할 수 있는가를 측정합니다.
예를 들어서 “Put the cup on the table.”를 학습했다면, 새로운 태스크 “Put the cup on the shelf.”도 마찬가지로 동일하게 수행할 수 있어야 합니다. (object가 바뀐 경우)
이때 로봇이 기존의 ‘컵을 집는 법’을 기억하고, 새로운 ‘선반 위치’를 인식해 올바른 행동으로 전이하는지를 평가합니다.
이 구조 덕분에 LIBERO는 지속학습(Lifelong Learning), 전이학습(Transfer Learning), 멀티태스크 학습(Multi-task Learning) 연구의 공통 벤치마크로 활용됩니다.
✅ LIBERO 데이터셋

LIBERO는 단일 데이터셋이 아니라, 여러 난이도와 주제를 가진 시리즈로 구성되어 있습니다.
- LIBERO-Spatial : 공간적 위치 이해 중심으로 테스트 (ex. 위·아래·옆)
- LIBERO-Object : 객체를 바꿔도 잘 동작하나? (ex. 컵을 들어라 vs 접시를 들어라)
- LIBERO-Physical : 물리적 조작을 중심으로 테스트 (ex. 밀기, 당기기, 잡기)
- LIBERO-Long : 여러 단계를 거치는 장기 과제 (ex. 컵을 씻어서 선반에 올리기)
모든 태스크는 자연어 설명 + 로봇 행동 궤적(trajectory) + 시각 관찰 데이터로 구성됩니다.
| 구성요소 | 설명 | 예시 |
|---|---|---|
| 자연어 지시 (Instruction) | 사람이 로봇에게 주는 명령 | “Put the mug on the shelf.” |
| 시각 입력 (Visual Input) | 로봇이 보는 RGB-D 이미지 | 카메라 시점의 장면 이미지 |
| 행동(Action) | 로봇의 실제 제어 명령 | 그리퍼 이동, 회전, 파지 등 |
🌏 Emergent Capability (EC)
✅ 개념
emergent capability는 작은 모델에서는 전혀 없던 능력이, 모델의 크기나 복잡성이 일정 수준을 넘었을 때 갑자기 나타나는 현상을 말한다. 예를 들어 작은 언어모델은 단순한 문장 예측만 가능하지만, 일정 규모 이상이 되면 논리적 추론이나 언어 전이 같은 고차 사고를 스스로 수행할 수 있다. 이런 능력은 사람이 직접 설계하거나 지도하지 않아도 데이터와 모델 구조만으로 ‘자연스럽게’ 발현된다는 점에서 의미가 크다.
✅ VLA에서의 EC
이 개념을 vla(vision-language-action) 모델에 적용하면, 단순히 보는 것과 말하는 것을 넘어서 보고 판단하고 행동하는 능력으로 확장된다. 예를 들어 로봇이 컵을 인식하고, 그것을 옮기라는 명령을 받았을 때, 학습하지 않은 상황에서도 스스로 최적의 경로를 판단하거나 새로운 행동 시퀀스를 만들어내는 것이다.
즉, vla의 emergent capability는 개별 인식·언어·행동 모듈이 결합되면서, 시스템 전체가 자율적인 의사결정과 문제 해결 능력을 보이기 시작하는 현상으로 이해할 수 있다.
🌏 BDDL
BDDL은 Embodied AI 연구에서 실험 환경과 행동 목표를 기술하기 위한 데이터 포맷으로, LIBERO·BEHAVIOR 등 VLA 데이터셋에서 표준적으로 사용됩니다.
✅ BDDL의 구조
BDDL의 구조는 아래와 같다.
BDDL
├── PDDL
│ ├── Scene
│ │ ├── Objects
│ │ └── Background
│ ├── Init
│ └── Goal
└── Instruction
✅ BDDL 예시
아래는 BDDL 문법으로 작성한 하나의 예시이다.
(define
(problem cleaning_the_pool_0)
(:domain igibson)
(:objects
pool.n.01_1 - pool.n.01
floor.n.01_1 - floor.n.01
scrub_brush.n.01_1 - scrub_brush.n.01
shelf.n.01_1 - shelf.n.01
detergent.n.02_1 - detergent.n.02
sink.n.01_1 - sink.n.01
agent.n.01_1 - agent.n.01
)
(:init
(onfloor pool.n.01_1 floor.n.01_1)
(stained pool.n.01_1)
(onfloor scrub_brush.n.01_1 floor.n.01_1)
(onfloor detergent.n.02_1 floor.n.01_1)
(inroom shelf.n.01_1 garage)
(inroom floor.n.01_1 garage)
(inroom sink.n.01_1 storage_room)
(onfloor agent.n.01_1 floor.n.01_1)
)
(:goal
(and
(onfloor ?pool.n.01_1 ?floor.n.01_1)
(not
(stained ?pool.n.01_1)
)
(ontop ?scrub_brush.n.01_1 ?shelf.n.01_1)
(onfloor ?detergent.n.02_1 ?floor.n.01_1)
)
)
)
:objects와:init섹션은 에이전트가 시작하는 초기 상태를 정의함.“이 물체가 어떤 공간에 있고, 어떤 상태에 있는지”를 명시함.inroom은 객체가 어떤 방(공간)에 존재해야 하는지를 나타냄.ontop,inside등은 작은 물체의 배치 위치(위치 관계) 를 나타냄.
- 예를 들어
(onfloor scrub_brush floor)나(inroom sink storage_room)같은 구문은 - 이렇게 정의된 상태는 BDDL 내부에서 시뮬레이터 샘플링 기능으로 전달되어, 실제 3D 물리 장면에 객체들을 배치할 때 사용됨. (여기에는 Mujoco가 사용됨)
:goal섹션은 활동이 성공하기 위해 만족해야 할 조건을 정의함.
예를 들어(not (stained pool))는 pool의 얼룩이 없어져야 한다를 의미하는데, 이렇게 써두면 로봇이 수영쟝을 겁나 닦을까?를 테스트하는 것입니다- BDDL은 이런 목표 상태만 정의하고, 어떤 과정을 통해 도달할지는 명시하지 않음. 즉, “행동 시퀀스”가 아니라 최종 상태 조건만 규정하는 과정 비의존적(process-agnostic) 구조라는 뜻입니다.

도움이 되었다면, 공감/댓글을 달아주면 깃짱에게 큰 힘이 됩니다!🌟
비밀댓글과 메일을 통해 오는 개인적인 질문은 받지 않고 있습니다. 꼭 공개댓글로 남겨주세요!
'AI > VLA' 카테고리의 다른 글
| [AI/VLA] 창발성을 테스트할 수 있는 VLA 오픈소스 데이터셋 구축하기(2): LLM 2단계 프롬프트 구조로 현실적인 BDDL 생성하기 (0) | 2025.10.23 |
|---|