Py Tree - visualization
Py Trees 시각화 기능에 대한 설명
시각화 개요
행동 트리(Behaviour trees)는 시각화를 통해 설계, 모니터링 및 디버깅이 훨씬 쉬워집니다. Py Trees는 트리를 다양한 간단한 출력 형식으로 렌더링하는 최소한의 지원을 제공합니다. 현재 지원되는 형식으로는 dot 그래프, 문자열, 표준 출력(stdout) 등이 있습니다.
ASCII/유니코드 트리
py_trees.display.ascii_tree() 또는 py_trees.display.unicode_tree()를 통해 표준 출력에 ASCII/유니코드 아트 표현을 얻을 수 있습니다.
py_trees.display.ascii_tree() 함수
이 함수는 콘솔에 트리를 ASCII 아트로 표현합니다.
매개변수
- root (Behaviour): 표시하려는 트리 또는 서브트리의 루트
- show_only_visited (bool): 방문한 행동(behaviours)만 표시할지 여부
- show_status (bool): 항상 상태 및 피드백 메시지 표시 (즉, 방문한 것뿐만 아니라 모든 요소에 대해)
- visited (dict): 현재 틱(tick)에서 방문한 행동의 (uuid.UUID)와 상태(Status) 쌍을 포함하는 딕셔너리
- previously_visited (dict): 이전 트리 틱에서의 행동 ID/상태 쌍을 포함하는 딕셔너리
- indent (int): 트리를 들여쓰기할 문자 수
반환값
- ASCII 트리(문자열 형태)
- 반환 타입: str
관련 함수
py_trees.display.xhtml_tree(), py_trees.display.unicode_tree()
예제
SnapshotVisitor와 BehaviourTree를 사용하여 각 틱마다 스냅샷 정보를 생성하고, 이를 상태 및 피드백 메시지와 함께 트리를 출력하는 후처리 핸들러에 제공하는 예제:
XHTML 트리
py_trees.display.xhtml_tree()는 트리의 정적 또는 런타임 표현을 임베디드 XHTML 스니펫으로 생성합니다.
DOT 트리
API
트리의 정적 표현을 dot 그래프로 얻으려면 py_trees.display.dot_tree()를 사용합니다. dot 그래프를 dot/png/svg 이미지로 렌더링하려면 py_trees.display.render_dot_tree()를 사용하세요. dot 그래프 표현은 트리의 런타임 정보(방문한 경로, 상태 등)를 생성하지 않는다는 점에 유의하세요.
명령줄 유틸리티
py-trees-render 프로그램을 사용하여 Python 패키지에서 트리를 생성하고 트리의 루트를 반환하는 노출된 메서드를 명령줄에서 렌더링할 수도 있습니다. 이는 트리를 설계하거나 CI에서 문서용 dot 그래프를 자동 렌더링할 때 매우 유용합니다.
블랙박스와 가시성 레벨
행동(behaviours)을 여러 수준의 세분화로 블랙박스로 표시할 수 있는 실험적 기능도 있습니다. 이는 순전히 렌더링된 dot 그래프에서 다양한 수준의 세부 정보를 보여주기 위한 것입니다. 수백 개의 행동이 있는 완전히 렌더링된 dot 그래프는 전체 그림을 시각화하고자 할 때 그다지 유용하지 않습니다.
py-trees-demo-dot-graphs 프로그램은 이 기능의 독립적인 예제로 제공됩니다.