1317.17 PlanSys2의 파라미터 구성 체계
1. ROS2 파라미터 시스템의 활용
PlanSys2는 ROS2의 파라미터(Parameter) 시스템을 사용하여 시스템의 동작을 구성한다. 파라미터는 런치 파일, YAML 설정 파일, 또는 명령행에서 설정할 수 있으며, 일부 파라미터는 런타임에 동적으로 변경 가능하다.
2. 주요 파라미터
2.1 Domain Expert 파라미터
domain_expert:
ros__parameters:
model_file: "/path/to/domain.pddl"
# PDDL 도메인 파일의 경로
2.2 Planner 파라미터
planner:
ros__parameters:
plugin: "plansys2/POPFPlanSolver"
# 플래너 플러그인 이름
plan_solver_timeout: 30.0
# 플래너 실행 시간 제한 (초)
2.3 Executor 파라미터
executor:
ros__parameters:
action_bt_xml_filename: ""
# 사용자 정의 행동 트리 XML (빈 문자열이면 자동 생성)
default_action_bt_xml_filename: ""
# 기본 액션 실행 행동 트리 템플릿
3. 런치 파일에서의 파라미터 설정
from launch import LaunchDescription
from launch_ros.actions import Node
import os
from ament_index_python.packages import get_package_share_directory
def generate_launch_description():
pkg_dir = get_package_share_directory('my_robot_planner')
return LaunchDescription([
Node(
package='plansys2_bringup',
executable='plansys2_node',
name='plansys2',
output='screen',
parameters=[{
'model_file': os.path.join(pkg_dir, 'pddl', 'domain.pddl'),
'planner_plugin': 'plansys2/POPFPlanSolver',
'plan_solver_timeout': 30.0,
}]
)
])
4. YAML 설정 파일 사용
# config/plansys2_params.yaml
plansys2:
domain_expert:
ros__parameters:
model_file: "domain.pddl"
planner:
ros__parameters:
plugin: "plansys2/POPFPlanSolver"
plan_solver_timeout: 30.0
executor:
ros__parameters:
action_bt_xml_filename: ""
# 런치 파일에서 YAML 파일 로드
Node(
package='plansys2_bringup',
executable='plansys2_node',
parameters=[os.path.join(pkg_dir, 'config', 'plansys2_params.yaml')]
)
5. 런타임 파라미터 변경
# 명령행에서 파라미터 변경
ros2 param set /planner plan_solver_timeout 60.0
ros2 param get /domain_expert model_file
ros2 param list /planner
6. 네임스페이스와 파라미터
PlanSys2를 네임스페이스 내에서 실행하면, 파라미터 경로도 네임스페이스에 포함된다:
Node(
package='plansys2_bringup',
executable='plansys2_node',
namespace='robot1',
parameters=[{'model_file': domain_file}]
)
# → /robot1/domain_expert, /robot1/planner 등
이를 통해 다중 로봇 시스템에서 각 로봇의 PlanSys2 인스턴스를 독립적으로 구성할 수 있다.
7. 참고 문헌
- Gonzalez, F., Martin, F., Matellán, V., & Rodriguez, F. J. (2021). “PlanSys2: A Planning System Framework for ROS2.” IEEE ICARSC.