1291.80 MoveIt2에서의 행동 트리 활용

MoveIt2는 ROS2 기반의 매니퓰레이션(Manipulation) 프레임워크로서, 로봇 팔(Robot Arm)의 모션 플래닝(Motion Planning), 역기구학(Inverse Kinematics), 충돌 감지(Collision Detection), 경로 실행(Trajectory Execution) 등의 기능을 통합적으로 제공한다. MoveIt2에서의 행동 트리 활용은 매니퓰레이션 임무의 고수준 흐름 제어에 초점이 맞추어져 있다.

1. MoveIt2에서의 행동 트리 도입 배경

매니퓰레이션 임무는 물체 인식, 파지 계획, 접근, 파지, 이동, 배치 등 다수의 하위 작업이 순차적 또는 조건부로 결합되는 복합 작업이다. 기존에는 이러한 임무 흐름이 사용자의 스크립트 코드나 유한 상태 머신에 의해 직접 구현되었으며, 행동의 추가, 수정, 재조합에 상당한 코딩 비용이 수반되었다.

행동 트리의 도입은 매니퓰레이션 임무의 흐름을 선언적으로 정의하고, 하위 작업의 조합을 모듈적으로 구성하며, 실패 시 복구 행동을 체계적으로 관리할 수 있게 한다. MoveIt2 Task Constructor(MTC)는 이러한 목표를 위해 개발된 구성 요소로서, 행동 트리의 설계 원리를 매니퓰레이션 임무 구성에 적용하였다.

2. MoveIt Task Constructor의 구조

MoveIt Task Constructor(MTC)는 매니퓰레이션 임무를 단계(Stage)들의 계층적 조합으로 정의하는 프레임워크이다. 각 단계는 행동 트리의 노드와 유사하게 성공 또는 실패를 반환하며, 상위 단계에 의해 순차적 또는 조건부로 조합된다. MTC의 주요 개념은 다음과 같다.

단계(Stage): 개별 매니퓰레이션 하위 작업을 캡슐화한다. 예를 들어, 물체 접근(Approach), 파지(Grasp), 인양(Lift), 이동(Move), 배치(Place) 등이 각각 독립적인 단계로 정의된다.

컨테이너(Container): 다수의 단계를 조합하는 상위 구조이다. 시퀀스(Serial) 컨테이너는 행동 트리의 시퀀스 노드에 대응하여 단계들을 순차적으로 실행하며, 대안(Alternatives) 컨테이너는 폴백 노드에 대응하여 대안적 단계들을 시도한다.

솔루션(Solution): 각 단계는 하나 이상의 해(Solution)를 생성할 수 있으며, 상위 컨테이너는 하위 단계들의 해를 조합하여 전체 임무의 해를 구성한다.

3. 행동 트리와의 통합 활용

MoveIt2 생태계에서는 BehaviorTree.CPP와의 직접적 통합도 활용된다. 행동 트리의 액션 노드에서 MoveIt2의 모션 플래닝 서비스를 호출하거나, MoveIt Task Constructor의 전체 임무를 하나의 액션 노드로 캡슐화하여 상위 행동 트리에 삽입하는 구조가 사용된다.

이러한 통합 구조에서 행동 트리는 매니퓰레이션 임무를 포함한 전체 로봇 임무의 흐름을 관리하고, MoveIt2는 매니퓰레이션에 특화된 모션 플래닝과 경로 실행을 담당하는 역할 분담이 이루어진다.

4. 매니퓰레이션 임무에서의 이점

행동 트리 기반의 매니퓰레이션 임무 구성은 다음의 이점을 제공한다. 첫째, 파지 실패 시 재파지 시도, 다른 파지 자세(Grasp Pose) 선택, 또는 물체 재탐색 등의 복구 행동을 폴백 노드를 통해 체계적으로 구성할 수 있다. 둘째, 임무의 각 단계를 독립적 서브트리로 관리하여, 동일한 파지 서브트리를 다양한 임무에 재사용할 수 있다. 셋째, XML 기반의 임무 정의를 통해 비프로그래머도 매니퓰레이션 임무를 구성하고 수정할 수 있다.


참고 문헌

  • Coleman, D., Sucan, I., Chitta, S., & Correll, N. (2014). “Reducing the Barrier to Entry of Complex Robotic Software: a MoveIt! Case Study.” Journal of Software Engineering for Robotics, 5(1), 3–16.
  • Gorner, M., Haschke, R., Ritter, H., & Zhang, J. (2019). “MoveIt! Task Constructor for Task-Level Motion Planning.” Proceedings of the IEEE International Conference on Robotics and Automation (ICRA).
  • Iovino, M., Scukins, E., Styrud, H., Ögren, P., & Smith, C. (2022). “A Survey of Behavior Trees in Robotics and AI.” Robotics and Autonomous Systems, 154, 104096.