BEHAVIOR에서 작업 정의는 필요한 물체와 시작·목표 조건을 정하고, 작업 인스턴스는 그 조건을 특정 장면의 물체와 배치로 구체화합니다. 같은 작업 이름을 사용해도 선택된 물체 모델과 위치가 달라질 수 있는 이유입니다. 시뮬레이터에 넘기는 대상은 추상적인 작업 이름 하나보다 더 구체적입니다.
예를 들어 “선물 바구니 만들기”의 정의에는 양초와 바구니가 필요하다는 조건이 들어갑니다. 실제 장면에서는 어떤 양초 모델을 어느 탁자 위에 놓을지까지 정해야 합니다. 이 사이를 연결하는 것이 BEHAVIOR의 객체 분류와 샘플링입니다.
BDDL은 행동 순서보다 물체와 상태 관계를 먼저 정한다
공식 작업 정의 문서는 BDDL 작업을 :objects, :init, :goal 세 부분으로 설명합니다. 물체 목록은 무엇이 필요한지, 초기 조건은 어디서 시작하는지, 목표 조건은 끝났을 때 어떤 관계가 성립해야 하는지를 정합니다.
문서의 선물 바구니 예에는 candle.n.01_1부터 _4까지 양초 네 개가 등장합니다. 초기 조건은 이 양초들이 탁자 위에 있는 관계를 지정합니다. 목표 블록은 forpairs와 inside를 사용해 양초·음식·리본과 바구니 사이에 요구되는 포함 관계를 구성합니다.
이 정의를 “양초를 먼저 집고, 손목을 회전한 뒤, 바구니로 이동하라”는 모터 명령으로 읽으면 연결 단계가 빠집니다. BDDL의 해당 블록이 주는 것은 물체와 논리 조건입니다. 로봇의 구체적인 행동은 장면에 놓인 실제 물체와 현재 상태를 바탕으로 별도로 만들어야 합니다.
synset, category, model은 서로 다른 선택이다
공식 개념 문서의 분류를 따라가면 같은 작업 정의가 여러 외형을 허용하는 방식을 이해할 수 있습니다.
| 계층 | 정하는 내용 | 문서에서 설명하는 관계 |
|---|---|---|
| synset | 작업에 필요한 의미상의 물체 종류 | 상위 synset이 요구되면 그 하위 종류의 물체를 사용할 수 있음 |
| category | 의미는 같아도 물리적 형태와 사용 방식이 다른 구분 | 벽걸이 세면대와 독립형 세면대는 다른 category |
| object model | 장면에 넣을 구체적인 3D 모델 | 하나의 category에 여러 모델이 속할 수 있음 |
| placement | 선택된 모델의 장면 내 배치 | 초기 조건을 만족하도록 위치와 관계를 구성 |
가령 작업이 fruit.n.01을 요구하면 샘플링에서 사과나 바나나처럼 더 구체적인 종류를 고를 수 있습니다. 같은 종류를 골라도 모델의 형태와 색이 달라질 수 있고, 모델이 같아도 놓이는 위치가 달라질 수 있습니다. 세 변화는 모두 “같은 작업의 다른 인스턴스”를 만드는 요소입니다.
세면대 예는 category가 필요한 이유를 보여 줍니다. 둘 다 의미상 세면대여도 벽에 붙는 모델과 바닥에 서는 모델을 같은 위치에 무작정 교환하면 장면의 물리적 구성이 달라집니다. 의미를 공유하는 범위와 모델을 교환할 수 있는 범위를 따로 표현하는 것입니다.
샘플링은 선택한 물체를 초기 조건에 맞춰 놓는다
작업 인스턴스를 만들 때는 요구된 방과 물체를 장면에서 찾고, 추가할 물체를 초기 조건에 맞게 배치합니다. 이 과정은 조건을 함께 만족시키는 문제입니다. 방이 없거나, 맞는 물체를 찾지 못하거나, 물체가 너무 커서 지정된 관계로 놓을 수 없으면 샘플링이 실패할 수 있습니다.
가상으로 같은 양초 작업에 폭이 다른 두 바구니 모델을 선택했다고 해 보겠습니다. 양초가 안에 들어가야 한다는 논리 조건은 같아도, 물체를 배치할 수 있는 공간은 달라집니다. 이때 바뀐 것은 작업 이름이 아니라 그 이름을 구체화한 형상과 배치 조건입니다.
기본 작업 문서는 인스턴스를 activity_name, activity_definition_id, activity_instance_id로 구분합니다. 각각 작업 종류, 정의의 변형, 샘플링된 구성의 번호에 대응합니다. 저장된 인스턴스를 다시 불러오는 경우에는 이미 정해진 구성을 사용하고, 온라인 샘플링에서는 새로운 구성을 만듭니다.
현재 2026 챌린지용 샘플링 문서는 이 구체화 과정을 더 세분합니다. 장면과 허용 모델을 템플릿에서 고른 뒤 작업 관련 물체를 샘플링하고, 전체 장면 물체를 합치며, 로봇 위치를 준비합니다. 그 뒤 여러 인스턴스를 생성하는 절차가 이어집니다. 기본 작업 문서가 설명하는 공개 데이터의 작업당 사전 샘플 인스턴스 한 개와, 이 챌린지 절차의 300개 생성 범위는 서로 다른 배포·생성 맥락입니다.
물체를 배치한 뒤에도 필요한 상태 변환이 있다
요리나 청소에서는 시작과 목표 사이에 물체·물질 자체가 달라질 수 있습니다. BEHAVIOR의 transition rule은 세척, 건조, 절단, 용융, 조리 같은 변환을 입력·출력 대상과 조건으로 정의합니다. 조건이 맞으면 일부 물체나 물질을 제거하고 다른 물체나 물질을 장면에 추가하는 방식입니다.
따라서 작업을 구체화할 때 확인할 것은 배치만이 아닙니다. 필요한 재료와 도구를 장면에 두는 단계에 더해, 목표가 요구하는 변환을 시뮬레이터가 처리할 수 있어야 합니다. 예를 들어 절단 전 물체에서 절단 후 물체로 이어지는 목표라면, 로봇의 이동뿐 아니라 그 상태 변환을 담당하는 규칙도 작업 구성의 일부입니다.
이렇게 만들어진 인스턴스를 실행한 뒤 어떤 조건으로 종료되고 성공이 기록되는지는 BEHAVIOR의 done·success·reward 구분에서 이어집니다. 작업 정의와 인스턴스는 실행할 세계를 정하고, 종료·성공 신호는 그 세계에서 진행된 결과를 표현합니다.
이 글은 2026년 10월 16일 확인한 BEHAVIOR 공식 개념·작업 정의·샘플링 문서를 읽어 작성했습니다. 장면 샘플링이나 로봇 정책 실행은 수행하지 않았습니다.