1317.37 PlanSys2의 시각화 도구

1. 시각화의 필요성

PDDL 기반 임무 계획 시스템에서 도메인 모델, 문제 인스턴스, 수립된 계획, 실행 상태 등은 텍스트 형식으로 표현되므로, 복잡한 계획의 구조와 진행 상태를 직관적으로 파악하기 어렵다. 시각화 도구는 이러한 텍스트 기반 정보를 그래픽 형태로 변환하여, 개발자와 운영자가 시스템의 동작을 효율적으로 이해하고 디버깅할 수 있게 한다(Martín et al., 2021).

2. RViz2 기반 시각화

2.1 RViz2 플러그인의 활용

PlanSys2는 ROS2의 표준 시각화 도구인 RViz2에서 계획 실행 상태를 표시하기 위한 연동 기능을 제공할 수 있다. 계획에 포함된 이동 액션의 경로, 로봇의 현재 위치, 목표 위치 등 공간적 정보를 RViz2의 3차원 뷰에 오버레이하여 표시한다. 이를 통해 이동 기반 임무의 계획과 실행을 공간적 맥락에서 파악할 수 있다.

2.2 마커(Marker)를 통한 상태 표시

ROS2의 visualization_msgs/Marker 메시지를 활용하여, 계획의 각 액션에 대응하는 시각적 마커를 RViz2에 표시할 수 있다. 예를 들어, 이동 경로를 선으로, 작업 위치를 점으로, 현재 실행 중인 액션을 강조 색상으로 표시하는 등의 시각화가 가능하다.

3. 행동 트리 시각화

3.1 Groot 도구와의 연동

PlanSys2의 실행기 노드는 BT.CPP 라이브러리의 Groot 연동 기능을 활용하여, 계획 실행에 사용되는 행동 트리의 구조와 실시간 상태를 시각적으로 표시할 수 있다. Groot은 다음과 같은 기능을 제공한다.

기능설명
트리 구조 표시행동 트리의 노드와 연결 관계를 그래프로 시각화한다
실시간 상태 표시각 노드의 현재 상태를 색상으로 구분하여 표시한다
로그 재생기록된 트리 실행 로그를 재생하여 과거 실행을 분석한다

Groot과의 연동을 위해서는 BT.CPP의 PublisherZMQ 로거를 행동 트리에 연결한다. 이 로거는 ZeroMQ 프로토콜을 통해 트리의 실시간 상태를 Groot 클라이언트에 스트리밍한다.

3.2 트리 상태의 색상 규약

Groot은 행동 트리 노드의 상태를 다음과 같은 색상으로 구분한다.

상태색상의미
IDLE회색미실행
RUNNING노란색실행 중
SUCCESS녹색성공
FAILURE빨간색실패

이 색상 규약을 통해, 계획 실행의 진행 상황과 실패 지점을 시각적으로 즉시 식별할 수 있다.

4. 계획 타임라인 시각화

4.1 간트 차트 형태의 계획 표시

시간적 계획(temporal plan)은 간트 차트(Gantt chart) 형태로 시각화할 수 있다. 각 액션을 시간축 위의 막대로 표시하되, 시작 시각과 지속 시간에 따라 막대의 위치와 길이가 결정된다. 병렬로 실행되는 액션들은 수직으로 배열되어, 동시 실행 구간을 직관적으로 파악할 수 있다.

시간 →  0s    5s    10s   15s
robot1: ████████████████████████
         move        pick  move
robot2: ██████████████████
         charge

4.2 실행 진행 상태의 동적 표시

계획 실행 중에는 타임라인 시각화에 현재 시각을 나타내는 커서가 이동하며, 완료된 구간, 진행 중인 구간, 대기 중인 구간이 색상으로 구분된다. 이를 통해 계획의 시간적 진행 상태를 한눈에 파악할 수 있다.

5. 웹 기반 시각화

5.1 rqt 플러그인

ROS2의 rqt 프레임워크를 위한 PlanSys2 시각화 플러그인이 개발될 수 있다. rqt 플러그인은 Qt 기반의 그래픽 인터페이스를 제공하며, 도메인 정보 조회, 문제 인스턴스 편집, 계획 표시, 실행 상태 모니터링 등의 기능을 통합된 윈도우에서 제공한다.

5.2 원격 모니터링을 위한 웹 인터페이스

로봇이 원격지에서 운용되는 경우, 웹 기반 시각화 인터페이스가 유용하다. rosbridge 프로토콜을 통해 PlanSys2의 토픽과 서비스를 웹 클라이언트에서 접근하고, 웹 브라우저에서 계획 실행 상태를 실시간으로 모니터링할 수 있다.

시각화 도구는 PlanSys2 시스템의 투명성을 높이고, 개발 생산성과 운영 안정성을 향상시키는 보조 도구로서 중요한 역할을 수행한다(Martín et al., 2021; Colledanchise & Ögren, 2018).


참고 문헌

  • Martín, F., Cañas, J. M., Ginés, J., & Fuentetaja, R. (2021). “PlanSys2: A Planning System Framework for ROS2.” IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).
  • Colledanchise, M., & Ögren, P. (2018). Behavior Trees in Robotics and AI: An Introduction. CRC Press.

버전: v1.0