매우 넓은 실내 공간
에서, 로봇이 다양한 Tasks를 수행할 수 있도록 하자!peter에게 커피를 만들어줘
-> 커피 머신에 가서, 커피 잔을 집어서 머신에 올리고, 다시 집어서, 피터에게 데려다주는 계획
을 로봇에게 주입3DSG
s to allow LLMs to conduct a semantic search for task-relevant subgraphs from a smaller, collapsed representation of the full graph; scene graph simulator
, correcting infeasible actions and avoiding planning failurescollapsed 3D scene graph
와 작업 지시
collapsed 3D scene graph
작업 지시
커피를 만들어서 피터에게 가져다 줘!
LLM(대규모 언어 모델)이 semantic search을 해서, 작업 해결에 필요한 아이템들이 있는 suitable subgraph 를 찾아냄
작업 지시
에 필요한 collapsed graph의 nodes
를 찾습니다.커피를 만들어서 피터에게 가져다 줘!
오피스
에 있을 가능성이 크니, expand_node(오피스)
을 해서 하위 node들을 탐색해보자!책상
)주방 node
에 있을 가능성이 크다!expand_node(kitchen)
을 해서 하위 node들을 탐색해보자!explored subgraph
를 만들어낸다.explored subgraph
와 작업 지시
오피스로 가서
-> 책상에 가서
-> 컵을 잡고
-> 주방으로 가서
-> 커피머신을 켜고
-> ...scene graph simulator 로부터의 피드백
을 받아가며, assets과 objects 모두, 아래의 특징들을 포함함
위 그래프는 dynamic agent node도 포함합니다.
3DSG의 이 모든 정보는 JSON이라는 데이터 형식으로 저장될 수 있어서, LLM(대규모 언어 모델) 같은 프로그램이 이해하고 사용할 수 있습니다.
예: 단일 asset 노드
그리고 NetworkX Graph object 로 3DSG가 표현될 수 있다.
1: G' ← collapseψ(G)
collapseψ(G)
함수는 전체 3D Scene Graph G
를 "축소"합니다. 즉, 이 과정에서 전체 그래프의 상위 수준(예: 층, 방)을 남기고 세부 정보를 제거하여 LLM이 다룰 수 있는 크기로 축소된 그래프 G'
를 만듭니다. 이 축소된 그래프는 LLM이 처리하기에 충분히 작으면서도 중요한 정보를 유지합니다.Stage 1: Semantic Search
3: command, node_name ← LLM(P,G′,I)
P
, 축소된 장면 그래프 G'
, 작업 지시 I
를 바탕으로 command
와 node_name
을 생성합니다. command
는 LLM이 다음에 수행해야 할 작업을 나타내며, node_name
은 해당 작업이 적용될 그래프 노드의 이름입니다.5: G' ← expandψ(node_name)
expandψ(node_name)
함수는 지정된 node_name
노드를 확장합니다. 즉, 해당 노드와 연결된 하위 노드를 포함하는 세부 정보를 추가로 노출시켜 G'
그래프를 업데이트합니다. 예를 들어, node_name
이 "부엌"이라면, 부엌 안의 물체들(예: 커피 머신, 냉장고 등)을 그래프에 추가합니다.Stage 2: Causal Planning
8: feedback = ""
feedback
변수를 초기화합니다. 이 변수는 LLM이 생성한 계획이 실행 가능한지 여부에 대한 피드백을 저장하는 데 사용됩니다.9: while feedback != “success” do
feedback
이 "success(성공)"이 될 때까지 계속 실행됩니다. 즉, LLM이 생성한 계획이 실행 가능한 것으로 확인될 때까지 계속 반복됩니다.10: plan ← LLM(P,G′,I,feedback)
P
, 축소된 장면 그래프 G'
, 작업 지시 I
, 그리고 이전 피드백 feedback
을 기반으로 새로운 계획 plan
을 생성합니다. 이 계획에는 로봇이 수행할 고수준의 작업 순서가 포함됩니다.11: full_plan ← φ(plan,G′)
φ(plan,G′)
함수는 plan
을 사용하여 최적의 경로 계획을 계산하고, 이를 full_plan
으로 확장합니다. 이는 로봇이 목표 지점까지 어떻게 이동할지를 포함한 전체 계획을 의미합니다.12: feedback ← verify_planψ(full_plan)
verify_planψ(full_plan)
함수는 full_plan
을 시뮬레이터에서 실행해 보고, 이 계획이 실제 환경에서 실행 가능한지를 확인합니다. 계획이 실패하면 피드백을 반환하고, 성공하면 "success"라는 피드백을 반환합니다.13: return full_plan
full_plan
을 반환합니다. 이 계획은 로봇이 실행할 수 있도록 준비된 상태입니다.작업별 하위 그래프 G′
를 전체 3DSG에서 식별하려고 합니다. goto(pose2)
) 및 조작(pickup(coffee_mug)
) 작업 시퀀스를 생성하는 작업을 수행고수준 위치 간 최적 경로를 찾는 작업을 처리
하여 LLM이 작업의 필수 조작 부분(pickup(coffee_mug)
)에 집중할 수 있도록 함장면 그래프 시뮬레이터에서 생성된 계획이
장면 그래프의 술어, 상태 및 가능성에 부합하는지 평가하는 텍스트 기반, 작업 무관 피드백을 사용하여
생성된 계획을 반복적으로 수정