1317.42 PlanSys2와 MoveIt2의 통합 가능성
1. 통합의 배경
MoveIt2는 ROS2 생태계에서 로봇 매니퓰레이터의 운동 계획(motion planning)과 제어를 담당하는 표준 프레임워크이다(Coleman et al., 2014). PlanSys2와 MoveIt2의 통합은 PDDL 수준의 태스크 계획(task planning)과 매니퓰레이터의 운동 계획(motion planning)을 연결하는 것으로, 이를 통해 로봇 팔이 수행하는 물체 파지(grasping), 배치(placing), 조립(assembly) 등의 조작 임무를 자율적으로 계획하고 실행할 수 있다(Martín et al., 2021).
2. 태스크 계획과 운동 계획의 관계
2.1 계획 수준의 차이
태스크 계획과 운동 계획은 추상화 수준이 상이하다.
| 계획 유형 | 추상화 수준 | 입력 | 출력 |
|---|---|---|---|
| 태스크 계획 (PlanSys2) | 심볼릭 | PDDL 도메인, 문제 | 액션 시퀀스 |
| 운동 계획 (MoveIt2) | 기하학적 | 로봇 모델, 장애물, 목표 자세 | 관절 궤적 |
PlanSys2는 “물체를 집어라“라는 심볼릭 수준의 계획을 수립하고, MoveIt2는 이를 “관절 각도를 어떻게 변화시켜야 하는가“라는 기하학적 수준의 궤적으로 변환한다.
2.2 태스크-운동 계획 통합(TAMP)의 과제
태스크 계획과 운동 계획의 통합은 태스크-운동 계획(Task and Motion Planning, TAMP)이라는 연구 분야를 형성한다(Garrett et al., 2021). TAMP의 핵심 과제는 태스크 수준에서 기하학적으로 실현 불가능한 계획이 수립되는 것을 방지하고, 두 수준의 계획 간 일관성을 보장하는 것이다.
3. PlanSys2-MoveIt2 통합 아키텍처
3.1 조작 액션 수행기
PlanSys2에서 pick, place, move_arm 등의 조작 관련 PDDL 액션에 대해, MoveIt2의 기능을 활용하는 액션 수행기를 개발할 수 있다. 이 수행기는 MoveIt2의 MoveGroupInterface를 사용하여 매니퓰레이터의 운동 계획과 실행을 수행한다.
class PickAction : public plansys2::ActionExecutorClient
{
moveit::planning_interface::MoveGroupInterface move_group_;
void do_work() override
{
auto args = get_arguments();
// 1. 물체 위치로 접근
// 2. 파지기 열기
// 3. MoveIt2를 통한 파지 자세 계획 및 실행
// 4. 파지기 닫기
// 5. 들어올리기
}
};
3.2 PDDL 도메인의 설계
매니퓰레이션을 포함하는 PDDL 도메인은 로봇 팔의 상태, 파지기 상태, 물체의 위치 등을 술어로 표현한다.
(:predicates
(arm_free ?r - robot)
(holding ?r - robot ?o - object)
(object_at ?o - object ?l - location)
(gripper_open ?r - robot))
(:action pick
:parameters (?r - robot ?o - object ?l - location)
:precondition (and
(at ?r ?l)
(arm_free ?r)
(object_at ?o ?l))
:effect (and
(holding ?r ?o)
(not (arm_free ?r))
(not (object_at ?o ?l))))
4. 기하학적 실현 가능성의 검증
4.1 사전 검증
태스크 계획에서 기하학적으로 실현 불가능한 액션이 포함되는 것을 방지하기 위해, 계획 수립 전에 MoveIt2의 운동 계획 기능을 활용하여 기하학적 실현 가능성을 사전 검증할 수 있다. 특정 물체의 파지가 기하학적으로 불가능한 경우, 해당 술어를 문제 인스턴스에서 제거하여 플래너가 실현 불가능한 계획을 생성하지 않도록 한다.
4.2 실행 시 검증
사전 검증이 모든 경우를 포괄할 수 없으므로, 액션 실행 시점에 MoveIt2가 운동 계획에 실패하면 액션 수행기가 PlanSys2에 실패를 보고하고, 재계획이 트리거되는 반응적(reactive) 접근이 보완적으로 사용된다.
5. 통합의 한계와 향후 전망
현재 PlanSys2와 MoveIt2의 통합은 주로 액션 수행기 수준에서의 순차적 연동으로 이루어진다. 완전한 TAMP 시스템의 구현을 위해서는 태스크 플래너와 운동 플래너 간의 긴밀한 상호 피드백 루프가 필요하며, 이는 활발히 연구되고 있는 분야이다. PlanSys2의 모듈화된 아키텍처와 ROS2의 표준 통신 메커니즘은 이러한 고급 통합을 구현하기 위한 유리한 기반을 제공한다(Martín et al., 2021; Garrett et al., 2021).
참고 문헌
- 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).
- 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.
- Garrett, C. R., Lozano-Pérez, T., & Kaelbling, L. P. (2021). “Integrated Task and Motion Planning.” Annual Review of Control, Robotics, and Autonomous Systems, 4, 265–293.
버전: v1.0