5장 파운데이션 모델을 로봇에 활용하는 방법
고수준 인식(High-level recognition)은 말 그대로 "로봇이 상황을 이해하고 판단하는 층"이라고 보면 됩니다. 여기서 파운데이션 모델은 주로 2가지가 쓰입니다.
1. 보상설계(Reward Design) 자동화
강화학습, 경로/궤적 최적화, MPC 등에서 목적 함수, 보상함수, 제약조건을 LLM/VLM이 대신 작성하게 하는 것
2. 맵/시나리오 그래프 구축
CLIP, VLM, Scene Understanding 결과를 더 이상 레벨의 지도, Scene Graph, Task Graph형태로 추상화해서 계획 플래너가 쓰기 좋게 만드는 것
여기서 다루는 축은 크게 아래와 같습니다.
강화학습 보상 함수 자동 생성
모션/궤적 플래닝용 비용함수 생성
어포던스(affordance) 기반 가치 맵 생성
목표 상태 이미지, 3D 구조, 영상 자체를 생성해서 '목표를 시각화'하는 방식
영상 기반 가치 함수(VIP/LIV)로, '얼마나 목표에 가까운지'를 자동으로 수치화
이걸 하나씩 환경 환경에서 어떻게 볼 수 있을지까지 생각해서 정리해보려고 합니다.
① VoxPoser: LLM/VLM으로 가치맵 만들고 MPC로 계획 돌리기
키워드: LLM + VLM + 3D 가치맵(value map) + MCP + 어포던스맵 + 제약맵
VoxPoser는 이린 식으로 돌아갑니다.
입력: 자연어 명령 (예: "맨 위 서랍을 열되, 옆의 꽃병은 건드리지 마.")
LLM: 명령을 분석해서 어떤 물체를 조작해야 하는지, 어떤 물체를 피해야 하는지, 어떤 제약이 있는지, 코드를 통해 정의
VLM + SAM + OWL-ViT: 장면에서 해당 물체들을 인식/세그멘테이션 → 포인트클라우드/3D 위치 획득
가치 맵 구성: 도달해야 하는 영역 → Affordance Map(가치↑), 피해야 할 영역 → Constraint Map(가치↓혹은 패널티)
이 3D 가치 맵을 MCP 기반 모션 플래너에 넣어서 로봇 손끝 궤적을 계획합니다.
한국 환경에서 쓸 수 있는 케이스
스마트홈 로봇: "전자레인지 열어, 옆의 화분은 건드리지 마"
물류/창고 로봇: "맨 위 박스만 꺼내, 옆 박스는 건드리면 안돼"
연구/실험용: LLM이 동작 프리미티브 없이 어포던스, 제약 맵을 코드로 바로 뽑는 프레임워크로 쓸 수 있음
단, 이 뒤에는 사람이 짜놓은 프롬프트 엔지니어링이 엄청 깔려 있다는 점도 같이 봐야 함.
② Eureka: LLM이 강화학습 보상 함수를 직접 설계
키워드: LLM기반 Reward Function Search, GPU RL, 반복적 개선, Sim전용
Eureka는 요렇게 움직입니다.
1. 입력: 환경코드(Environment Code), 태스크 설명(Task Description)
2. LLM: 여러 개의 보상 함수 후보를 코드로 생성
3. RL학습(Isaac Gym같은 GPU시뮬레이터): 각 보상 함수로 정책을 학습 → 성능 평가
4. 피드백 루프: 성능 지표(성공률, 리턴, 에피소드 길이 등)를 다시 LLM에 넣어서 더 너은 보상 함수를 재생성
5. 반복 → 인간이 짠 보상보다 성능 좋은 케이스 다수 보고
플랫폼은 4족/2족 로봇, 쿼드콥터, 매니퓰레이터, Shadow Hand까지 다양
한국 환경에서 쓸 수 있는 케이스
로봇 RL 연구실에서 "보상 설계 지옥"을 LLM으로 상당 부분 덜어낼 수 있는 구조
산업용에는 아직 바로 쓰기엔 리스크가 크지만, 정책 초기 설계용, 연구용 베이스라인으로는 충분히 실용적임
③ DrEureka: Sim2Real + Domain Randomization까지 LLM이 자동화
Eureka가 시뮬레이터 안에서 끝났다면, DrEureka는 "진짜 로봇까지 간다"에 포키스가 맞춰져 있습니다.
추가되는 것들:
입력에 Safety Instruction 포함: 토크제한, 속도 제한, 넘어짐 방지 등 (예: "실제 Go1에 적용될 것이므로 안전/강건성을 최우선해라")
Sim에서 학습 후: 물리 파라미터(마찰, 질량, 관성, 지연 특성 등)를 랜덤하게 바꿔 성능 평가, "어디 범위까지 괜찮게 동작하는지"를 LLM이 읽고 Domain Randomization 설정을 자동 튜닝
결과적으로,
현실 로봇에서도 버티는 정책을 만들기 위한 'Reward + DR설정 자동 설계 시스템"이라고 보면 됩니다.
한국 환경에서 쓸 수 있는 케이스
4족 로봇을 한국 실내/실외환경(타일, 마루, 보도블록 등)에서 쓰려면 도메인 랜덤라이제이션 설정이 핵심인데, 이걸 LLM이 자동으로 추천/조정해주는 그림
실제 상용화 전 Sim2Real 파이프라인에 붙여 엔지니어의 파라미터 삽질 시간을 줄이는 용도로 의미가 있음.
④ DALL-E-Bot: 이미지 생성형 모델로 목표 상태를 그려놓고 따라하기
키워드: Rearrangement, Table Setting, DALL-E, 목표 상태 이미지 기반 계획
문제 설정은 단순하면서 현실적:
현재: 접시/포크/나이프가 대충 훝어져 있음
목표: "예쁘게 테이블 셋팅된 상태"
파이프라인:
1. 현재 장면 인식
- Mask R-CNN: 물체 탘지 + 세그멘테이션
- OFA: 각 물체 캡션 생성
- CLIP: 물체별 시각 피처 추출
2. DALL-E 프롬프트 생성
- 예: "plate, fork, knife, spoon on a neatly set dining table, top-down view"
3. DALL-E가 여러 후보 "이상적인 테이블 셋팅 이미지" 생성
4. 생성된 이미지들 중에서 현재 물체 구성과 가장 비슷한 것 선택
- CLIP 피처 + 헝가리안 알고리즘으로 물체 매칭
- ICP로 초기/목표 자세 매핑
5. 실제 로봇: 깊이 카메라로 3D 포즈 계산 → pick-and-place로 재배치
핵심 아이디어는 간단히 말해서 "목표를 말로 수식하지 말고, 이미지생성형 모델에게 그려달라"에 가깝습니다.
한국 환경에서 쓸 수 있는 케이스
카페/레스토랑 서빙/세팅 로봇: 테이블 셋팅, 진열 정리
리테일 매장 디스플레이 자동 정리
사람이 "결과 사진만 보여주고, 나머지를 알아서 맞춰줘"같은 UX 가능
⑤ StructDiffusion; 3D에서의 목표 배치 생성 (확산 모델 기반)
DALL-E-Bot이 2D 테이블 평면 위 배치 수준이라면, StructDiffusion은 3D 구조 배치까지 포함된 셋팅입니다.
입력:
- 부분적인 포인트클라우드 (실제 센서가 보는 불완전한 3D)
- 언어 지시 (예: "컵들을 선반 위에 가지런히 정렬해")
구성 요소:
1. 물체 인코더 (Point Cloud Transformer, PCT): 세그멘트된 점군 → 형태 + 위치 피처
2. 언어 인코더: 지시문장의 토큰 → 임베딩
3. 확산 인코더: 목표 자세를 표현하는 벡터
4. 위치 인코더: 시퀀스 내 위치 구분용
확산 모델은 직접 포즈를 뽑는게 아니라, "노이즈 예측"을 학습하고, 샘플링을 통해 여러 후보 배치를 생성합니다. 그 뒤에 판별 모델 2개를 올려서 필터링:
충돌 판별기: 물체끼리 겹치지 않게 체크
지금 바로 작가의 멤버십 구독자가 되어
멤버십 특별 연재 콘텐츠를 모두 만나 보세요.
오직 멤버십 구독자만 볼 수 있는,
이 작가의 특별 연재 콘텐츠