← 최신 논문
🤖 AI

Towards LLM-Assisted Architecture Recovery for Real-World ROS~2 Systems: An Agent-Based Multi-Level Approach to Hierarchical Structural Architecture Reconstruction

본 논문은 기존 노드 수준의 방법론의 한계를 극복하기 위해 정제된 LLM 프롬프팅과 단계적 복구 전략을 활용하여 복잡한 실제 ROS 2 시스템에서 계층적 소프트웨어 아키텍처를 복구하기 위한 향상된 에이전트 기반 다단계 접근법을 제시합니다.

원저자: Dominique Briechle, Raj Chanchad, Tobias Geger, Ruidi He, Dhruv Jajadiya, Dhruv Kapadiya, Andreas Rausch, Meng Zhang

게시일 2026-05-20
📖 4 분 읽기☕ 가벼운 읽기

원저자: Dominique Briechle, Raj Chanchad, Tobias Geger, Ruidi He, Dhruv Jajadiya, Dhruv Kapadiya, Andreas Rausch, Meng Zhang

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

상상해 보세요. 수년에 걸쳐 팀이 함께 조립한 거대하고 복잡한 레고 세트가 있다고 가정해 봅시다. 원래 사용 설명서는 분실되었거나, 아예 처음부터 작성되지 않았을지도 모릅니다. 여러분이 손에 남은 것은 흩어진 블록들, 그 블록들이 들어 있던 상자들, 그리고 어떻게 조립해야 하는지에 대한 몇 가지 메모뿐입니다.

여러분의 목표는 무엇일까요? 전체 기계가 어떻게 작동하는지, 부품들이 어떻게 연결되는지, 그리고 고장 났을 때 어떻게 수리해야 하는지 이해할 수 있도록 원래의 사용 설명서를 다시 만드는 것입니다.

이 논문은 바로 그 작업을 다루고 있으며, 대상은 로봇 소프트웨어(특히 ROS 2라는 도구로 구축된 시스템)입니다.

문제: "유령" 같은 지시사항

로봇 공학 세계에서는 소프트웨어가 종종 조각별로 작성됩니다. 한 사람은 카메라용 코드를, 다른 사람은 로봇 팔용 코드를, 또 다른 사람은 컨베이어 벨트용 코드를 작성합니다. 그들은 각자의 작업을 서로 다른 파일에 저장합니다. 이들을 하나로 묶어주는 "접착제"—즉, 컴퓨터에 어떤 부분을 먼저 시작할지, 그리고 서로 어떻게 소통하게 할지 알려주는 것—는 "런치 파일 (launch files)"과 흩어진 코드 주석 안에 숨겨져 있습니다.

이는 한 노트에는 재료 목록이 적혀 있고, 다른 노트에는 그 재료를 섞는 방법이 숨겨져 있으며, 오븐 온도는 냅킨에 낙서처럼 적혀 있는 요리법과 같습니다. 재료 목록만 보고 전체 요리법을 추측하려 한다면 잘못될 수 있습니다. 메모에 적힌 숫자를 보고 케이크가 500 도에서 구워져야 한다고 생각할 수 있지만, 그 숫자는 실제로는 오븐 조명에 대한 것이었을 수도 있습니다.

이전에는 연구자들이 **AI(대형 언어 모델)**를 사용하여 이러한 흩어진 메모들을 읽고 전체 요리법을 추측하려 했습니다. 하지만 AI 는 때때로 혼란을 겪거나, 사실을 만들어 내거나 (환각), 서로 다른 부품들이 어떻게 위계적으로 연결되는지 (작은 기계들로 구성된 큰 기계처럼) 놓치는 경우가 있었습니다.

해결책: "단계별" 탐정 접근법

이 논문의 저자들은 AI 탐정 방법을 개선했습니다. AI 에게 한 번에 전체 그림을 추측하게 하는 대신, 작업을 세 가지 명확한 단계로 나누고 AI 가 길을 잃지 않도록 "청사진"(엄격한 규칙 집합) 을 사용했습니다.

세 가지 전문 팀이 있는 건설 현장이라고 상상해 보세요.

  1. 팀 1: 재고 관리원 (NodeAnalyzer)
    먼저, AI 는 모든 코드 파일을 스캔하여 간단한 목록을 작성합니다. "우리가 찾은 개별 로봇 부품들은 이것들입니다." 로봇 팔, 카메라, 센서 각각을 나열하고, 그들이 코드 내에서 정확히 어디에 위치하는지 기록합니다.

    • 비유: 이는 조립하기 전에 모든 레고 블록을 색상과 모양별로 분류하여 더미로 나누는 것과 같습니다.
  2. 팀 2: 청사진 해독자 (LaunchFileAnalyzer)
    다음으로, AI 는 "런치 파일"(로봇을 시작하는 방법에 대한 지시사항) 을 살펴봅니다. 어떤 부품이 켜지는지, 어떻게 이름이 붙는지, 그리고 어떻게 그룹화되는지 파악합니다. 의존성 지도를 작성합니다. "카메라는 로봇 팔이 움직이기 전에 켜지며, 둘 다 '시각 (Vision)' 그룹에 속해 있습니다."

    • 비유: 이는 어떤 블록들이 조립되어 바퀴를 만드는지, 그리고 어떤 바퀴들이 차체에 부착되는지 확인하기 위해 조립 설명서를 읽는 것과 같습니다.
  3. 팀 3: 수석 건축가 (SystemArchitectureTeam)
    마지막으로, AI 는 부품 목록 (팀 1 에서) 과 연결 지도 (팀 2 에서) 를 받아 최종 고수준 다이어그램을 구축합니다. 중간 단계 목록들을 가지고 있기 때문에 추측할 필요가 없습니다. 단지 증거를 따를 뿐입니다.

    • 비유: 이는 재고 목록과 조립 메모를 가지고 있기 때문에 모든 벽돌과 전선이 어디에 가야 하는지 정확히 알고 있는 건축가가 완성된 집의 최종 청사진을 그리는 것과 같습니다.

테스트: "BrickByBrick" 로봇

이 새로운 방법을 테스트하기 위해 연구자들은 BrickByBrick이라는 실제 로봇 시스템을 사용했습니다. 이는 건축 블록으로 만들어진 복잡한 구조물을 분해하도록 설계된 로봇입니다. 이 로봇은 다음을 포함합니다.

  • 두 개의 로봇 팔 (앨리스와 밥).
  • 블록을 보기 위한 카메라.
  • 블록을 이동시키는 컨베이어 벨트.
  • 블록을 부수지 않고 분리하는 방법을 계획하는 "뇌".

이 시스템은 이전 연구에서 사용했던 간단한 예시들보다 훨씬 복잡했습니다. 서로 다른 많은 유형의 소프트웨어가 함께 작동하고 있었습니다.

결과

새로운 "단계별" 방법은 매우 잘 작동했습니다.

  • 정확도: AI 는 거의 모든 단일 부품과 연결을 정확하게 식별했습니다 (복잡한 시스템 수준 지도에서 98% 정확도).
  • 신뢰성: 가짜 연결을 만들어 내지 않았습니다. AI 가 그린 모든 연결은 실제 코드 증거에 기반했습니다.
  • 개선: 이전 방법과 비교하여 서로 다른 부품들이 어떻게 그룹화되었는지 이해하는 데 훨씬 더 뛰어났습니다.

결론

이 논문은 복잡한 로봇의 소프트웨어를 이해하려면 AI 에게 "전체를 추측하라"고 요청해서는 안 된다는 것을 보여줍니다. 대신 AI 에게 구조화된 프로세스를 제공해야 합니다.

  1. 부품 목록을 작성합니다.
  2. 조립 지시사항을 매핑합니다.
  3. 해당 사실들을 바탕으로 최종 다이어그램을 구축합니다.

이 접근법은 AI 를 훨씬 더 신뢰할 수 있게 만들어, 혼란스러운 코드 더미를 명확하고 이해하기 쉬운 구조적 지도로 변환합니다. 그러나 저자들은 로봇이 실행 중에 동작을 변경할 경우 (동적 변경), 현재 방법으로는 이러한 움직이는 표적을 포착하는 데 여전히 약간의 어려움이 있다고 인정합니다. 하지만 시스템의 정적 구조를 이해하는 데 있어 이는 큰 진전입니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →