"""perception_manager 공통 진입점 (통합 perception 모듈). LocalLauncher buildPerceptionArg 가 모든 모델 pkg 에 동일한 계약으로 `ros2 launch perception_lmnet_pkg perception.launch.py robot:=.. use_sim_time:=.. model_source:=..` 를 스폰하므로(perception_pkg/launch_spec.py), 모델 launch(lmnet.launch.py)로 위임한다. robot 은 공통 계약상 선언만 하고, 모델 launch 가 선언한 경우에만 소비된다. """ import os from ament_index_python.packages import get_package_share_directory from launch import LaunchDescription from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription from launch.launch_description_sources import PythonLaunchDescriptionSource from launch.substitutions import LaunchConfiguration def generate_launch_description(): share = get_package_share_directory('perception_lmnet_pkg') return LaunchDescription([ DeclareLaunchArgument('robot', default_value='fr09'), DeclareLaunchArgument('use_sim_time', default_value='true'), DeclareLaunchArgument('model_source', default_value='finetuned'), IncludeLaunchDescription( PythonLaunchDescriptionSource( os.path.join(share, 'launch', 'lmnet.launch.py')), launch_arguments={ 'robot': LaunchConfiguration('robot'), 'use_sim_time': LaunchConfiguration('use_sim_time'), 'model_source': LaunchConfiguration('model_source'), }.items(), ), ])