1317.4 ROS2 네이티브 설계의 의의

1. ROS2 네이티브 설계의 정의

PlanSys2가 ROS2 네이티브(ROS2-native)로 설계되었다는 것은, ROS1의 기능을 ROS2로 단순히 포팅(porting)한 것이 아니라, ROS2의 현대적 아키텍처와 기능을 처음부터 완전히 활용하도록 설계되었음을 의미한다.

2. ROS2의 핵심 기능 활용

2.1 DDS(Data Distribution Service) 기반 통신

PlanSys2의 노드 간 통신은 ROS2의 DDS 미들웨어를 통해 수행된다. 이에 의해:

  • 발견(Discovery): 노드 간 자동 발견으로 설정 없이 통신이 가능하다.
  • QoS(Quality of Service): 통신의 신뢰성, 지속성, 이력 정책을 세밀하게 제어할 수 있다.
  • 분산 시스템: 중앙 마스터 노드 없이 여러 머신에 걸쳐 분산 실행이 가능하다.

2.2 관리형 노드(Managed/Lifecycle Nodes)

PlanSys2의 4대 핵심 노드는 ROS2의 라이프사이클 인터페이스를 구현한다:

상태 전이: Unconfigured → Inactive → Active → Finalized
                ↑ configure    ↑ activate    ↑ shutdown
                               ↓ deactivate

이에 의해:

  • 단계적 초기화: 노드를 구성(configure) 단계에서 PDDL 도메인을 로드하고, 활성화(activate) 단계에서 서비스를 시작한다.
  • 우아한 종료: 노드의 비활성화와 정리를 체계적으로 수행한다.
  • 상태 모니터링: 각 노드의 라이프사이클 상태를 외부에서 조회하고 제어할 수 있다.

2.3 ROS2 서비스, 액션, 토픽

통신 패턴PlanSys2에서의 활용
서비스(Service)도메인 조회, 술어 추가/삭제, 목표 설정
액션(Action)계획 실행, 개별 액션의 비동기 실행
토픽(Topic)실행 상태 피드백, 이벤트 알림

2.4 파라미터 시스템

ROS2의 파라미터 시스템을 사용하여 도메인 파일 경로, 플래너 플러그인 설정, 시간 제한 등을 런타임에 구성한다:

plansys2:
  model_file: "/path/to/domain.pddl"
  planner_plugin: "plansys2/POPFPlanSolver"
  action_timeout: 30.0

2.5 런치 시스템

ROS2의 런치(Launch) 시스템과 통합되어, PlanSys2의 모든 노드와 액션 수행기를 하나의 런치 파일로 구성하고 실행할 수 있다.

3. ROS2 네이티브 설계의 이점

3.1 실시간 지원

ROS2의 실시간 확장(rmw 구현에 따라)을 활용하여, 시간 제약이 있는 로봇 시스템에서의 플래닝 응답성을 향상시킬 수 있다.

3.2 보안

ROS2의 SROS2(Secure ROS2) 보안 프레임워크를 통해, 노드 간 통신의 인증과 암호화를 적용할 수 있다. 이는 산업용 로봇 시스템의 보안 요구사항을 충족하는 데 중요하다.

3.3 멀티 플랫폼

ROS2는 Linux, Windows, macOS를 지원하므로, PlanSys2도 다양한 플랫폼에서 실행될 수 있다.

3.4 분산 실행

DDS 기반 통신에 의해, PlanSys2의 각 노드를 서로 다른 머신에 배치하여 분산 실행할 수 있다. 예를 들어, 플래너 노드를 고성능 서버에, 실행기 노드를 로봇 온보드 컴퓨터에 배치하는 구성이 가능하다.

3.5 ROS2 생태계와의 자연스러운 통합

Nav2, MoveIt2, micro-ROS 등 ROS2 생태계의 다른 패키지와 표준 인터페이스로 자연스럽게 통합된다.

4. ROS1 기반 시스템과의 비교

특성ROSPlan (ROS1)PlanSys2 (ROS2)
통신 미들웨어XMLRPC/TCPROSDDS
중앙 마스터roscore 필요불필요 (분산)
라이프사이클미지원관리형 노드
QoS 정책미지원완전 지원
보안미지원SROS2
실시간제한적실시간 확장 가능
액션 인터페이스actionlibrclcpp_action

5. 참고 문헌

  • Gonzalez, F., Martin, F., Matellán, V., & Rodriguez, F. J. (2021). “PlanSys2: A Planning System Framework for ROS2.” IEEE ICARSC.
  • Macenski, S., Foote, T., Gerkey, B., Lalancette, C., & Woodall, W. (2022). “Robot Operating System 2: Design, Architecture, and Uses in the Wild.” Science Robotics, 7(66), eabm6074.