로봇 작업 교란을 진단해 프로그램 재사용과 MLLM 재계획을 골라 복구한다

DiMuRe: Diagnosis-Guided Multilevel Recovery for Robotic Task Execution

arXiv2611.04226v1

Renkai Yi2026-11-03

무엇인가

이 논문이 다루는 문제는 로봇이 미리 짜둔 작업 프로그램을 실행하는 도중 외부 교란이 들어왔을 때다. 물체가 밀리거나, 쥔 것이 미끄러지거나, 옮겨야 할 목적지 영역이 움직이면 다음 동작이 요구하는 전제조건이 깨진다. 그런데 프로그램 전체가 무용지물이 되는 것은 아니다. Encore처럼 지각·동작·피드백을 실행 가능한 코드로 표현하는 로봇용 에이전트에는 이미 체크와 재시도가 들어 있고, 상당 부분은 그대로 쓸 수 있다. 그래서 문제는 "실패했다"를 감지하는 것이 아니라, 남은 프로그램 중 무엇이 아직 유효한지 판단하고 어떤 수준의 복구를 지금 상태에 맞게 고르는 것이다. 저자들은 복구 수단마다 한계가 다르다고 본다. 프로그램 재사용은 과제 특화 동작을 보존하지만 적응 가능한 구간이 있어야 하고, 사전 정의 스킬은 전제조건이 맞을 때만 특정 실패를 처리하며, MLLM은 새 동작 시퀀스를 만들 수 있지만 추론과 검증 비용이 붙는다.

어떻게 동작하나

방법의 중심에는 규칙 기반 진단기(diagnoser)가 있다. 현재 조작 단계 φ를 집기, 운반, 놓기, 검증 중 하나로 두고, 로봇 상태·측정된 물체 형상·과제 관계·동작 피드백·이전 검증 결과·예산 정보를 증거로 받아 진단 코드, 규칙 기반 신뢰도, 권장 대응, 근거를 출력한다. 저자들은 이 신뢰도가 보정된 성공 확률은 아니라고 명시한다. 대표적인 검사가 파지 검증이다. 그리퍼 개방값을 먼저 확인한 뒤, 물체 중심 추정치의 이동량과 엔드이펙터 이동량의 차이(추종 잔차)를 계산해 물체가 그리퍼에 붙어 있는지 판정한다. 판정에는 충분한 시야와 최소 공구 이동량이 필요하고, 잔차가 임계값보다 작으면서 그리퍼 개방값이 허용 하한과 상한 사이에 있어야 하며, 물체가 더 이상 지지되지 않는다는 증거도 요구한다. 측정이 부족하면 미지로 처리하고, 형상이 안 보이면 추가 관측을 요청한다.

무엇과 다른가

복구는 세 층으로 나뉜다. 1층은 원본 프로그램 재사용이다. 기록된 파지 구간의 웨이포인트를 현재 물체 중심의 수평 이동량과 지지 높이 변화만큼 평행이동해 재생하고, 기록된 방향(회전 행렬)은 그대로 보존한다. 기록 구간과 물체 중심 기준값이 있어야 하며, 형상 데이터가 있으면 실행 전에 형상 호환성과 지지 높이 변화를 검사하고 없으면 수직 성분을 0으로 둔다. 수평 변위가 임계값을 넘으면 재생을 거부한다. 2층은 사전 정의 복구 스킬로, 측정된 목표 형상으로 접근 방향·그리퍼 방향·닫힘·들기를 정하는 기하 기반 재파지, GraspVLA를 묶어 호출하는 제한된 VLA 파지, 갱신된 수신 영역 추정치를 쓰는 놓기 복구가 있다. 3층은 원본 프로그램이 종료된 뒤 MLLM이 RGB 이미지, 구조화된 상태 증거, 프로그램 문맥, 실행 이력을 받아 원본 함수와 2층 스킬을 조합한 교정 코드를 생성하는 재계획이다.

어떻게 쓰나

후보 선택은 고정 순서를 따른다. 템플릿 재생, 기하 기반 재파지, 제한된 VLA 파지 순으로 각 후보를 (사전 허가 조건, 실행 루틴, 국소 검증 규칙) 세 쌍으로 표현하고, 후보마다 새 목표 관측을 먼저 얻는다. 형상이 없으면 로봇이 위로 후퇴해 다시 관측하고, 그래도 없으면 절차를 끝낸다. 허가 조건이 false면 건너뛰고, 실행이 정상 반환되고 모니터가 파지를 검증하면 그 파지를 채택하며, 실행했지만 검증이 실패하면 다음 후보로 넘어간다. 후보 시도는 과제 전체에 공유되는 정수 한도를 쓰고, 전제조건 검사 전에 시도 하나를 소모하므로 건너뛴 경우에도 차감된다. 예산도 공유된다. 복구 절차에 들어가면 완료용 예비 스텝과 절차별 추가 상한, 외곽 상한을 합쳐 물리 스텝 상한을 고정하고, 그 안에서만 동작·그리퍼·정착 명령을 허용한다. 중요한 구분이 하나 있다. 파지나 놓기를 검증했다고 해서 과제 전체 성공이 입증되는 것은 아니다.

전제와 한계

평가를 위해 LIBERO-Disturb 벤치마크도 함께 제안한다. LIBERO의 과제와 목표 술어 위에 실행 중 교란을 주입하되, 교란 주입과 과제 평가를 피험 시스템과 분리해 프로그램 기반 에이전트와 VLA 정책 모두를 같은 방식으로 시험할 수 있게 했다. 교란은 실행의 네 측면을 건드리는 아홉 종류다. 물체 위치·운동을 바꾸는 XY 변위, 물체 충돌(속도 증가), 느린 표류, 물체 회수, 자세를 바꾸는 자세 변경과 전복, 파지 미끄러짐, 팔 관절 후퇴, 그리고 운반 중 목적지가 움직이는 수신 영역 이동이 있다. 평가는 교란 적용 여부, 관측된 물리적 효과, 원래 성공 판정 결과를 각각 따로 기록하고, 교란이 적용되지 않은 사례도 성공률 분모에 남긴다.

실험은 Encore의 교란 예정 801건, 고정된 과제 프로그램 30개, 리셋 시드 3개로 다섯 구성을 비교한다. 원본 프로그램은 58.68%, 프로그램 재사용과 복구 스킬을 합친 Local은 77.65%, 여기에 종료 후 MLLM 재계획과 추가 예산·조기 인계를 더한 Full은 81.90%다. 층별로는 1층만으로 +14.98%p, 2층만으로 +6.87%p였고, 둘을 합치면 +18.98%p로 이득이 더 컸다. 1층은 파지 미끄러짐 사례를, 2층은 물체 자세 변경 사례를 더 많이 완료해 서로 다른 실패를 담당한다는 관찰로 이어진다. 깨끗한 90건은 원본·Local·Full 모두 전부 완료해 성공률 손실은 관측되지 않았다. 비용은 갈린다. 전체 사례 평균 물리 스텝은 Local이 310.20으로 원본 328.90보다 적지만 소요 시간은 5.47초로 원본 4.65초보다 길다. 성공 사례만 보면 Local이 3.94초·226.89스텝, 원본이 2.93초·213.46스텝이다. Full은 전체 평균 19.59초·361.30스텝, 성공 사례 7.05초·248.25스텝으로 더 많은 과제를 더 큰 비용으로 끝낸다. 독립 라벨링이 가능한 801건 중 161건의 결함 구간에서 이상 대응 커버리지는 두 구성 모두 78.26%였고, 대응한 사례의 이후 과제 성공률은 Local 74.60%, Full 80.16%였다.

개발자 관점에서 이 논문의 쓸모는 "복구를 하나의 정책으로 만들지 말고 실패 유형별로 층을 나누고, 각 층의 전제조건과 결과 검증을 명시적으로 코드화하라"는 설계 지침에 있다. 로봇 조작 에이전트를 붙일 때는 파지·운반·놓기·검증 각 단계에서 무엇을 증거로 삼을지, 어떤 후보를 어떤 순서로 시도할지, 시도 한도와 스텝 예산을 어떻게 공유할지를 먼저 정해야 한다. 특히 검증 루틴이 "잡았다"와 "과제를 끝냈다"를 구분하지 못하면 재계획이 불필요하게 반복되거나 예산이 먼저 바닥난다.

저자들이 밝힌 한계는 분명하다. 가림이나 물체 동일시 오류가 후보 선택과 국소 검증 양쪽에 오류를 만들 수 있고, 고정된 후보 순서 때문에 적합한 VLA 스킬이나 MLLM 플래너에 도달하기 전에 예산이 소진될 수 있다. 종료 재계획이 필요한지 판단할 더 신뢰할 만한 완료 검사가 필요하고, 지각·기억·추론 구성 요소별 절제 실험도 더 필요하다. 또한 층별 비교가 각 구성 요소를 완전히 분리하지 못한다. 놓기 재시도가 프로그램 재생과 복구 스킬을 함께 쓸 수 있고, Full의 추가 예산과 조기 인계 때문에 Local 대비 이득을 3층 효과로만 돌릴 수 없다. 회고적 진단 분석은 독립 라벨링이 가능한 결함 구간만 다루며, 저장된 복구 경험은 평가 전에 고정해 테스트 사례와 분리해야 하고, 현재 근거는 시뮬레이션에 한정된다.