From 1e9e4003456b17272d3e311f3be76fd7871dbac1 Mon Sep 17 00:00:00 2001 From: chyoo Date: Tue, 22 Sep 2026 10:28:54 +0900 Subject: [PATCH] feat: support Yahboom local Gazebo simulation --- README.md | 6 +++++- src/yahboom_map/launch/map.launch.py | 9 +++++++-- src/yahboom_map/package.xml | 1 + 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 42767f1..343e32d 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,11 @@ LMS 전용 템플릿 저장소입니다. 설치 폴더: `[lms-nav2-yahboom-map]y - 패키지: `yahboom_map` - 런치: `map.launch.py` -- 이미지: `future-nav2:humble-yahboom` +- 이미지: `future-nav2:humble-yahboom` (실차 기본) +- 로컬 시뮬레이션: 빌드 전에 `sim_mode:=true`를 설정하면 LMS가 + `future-nav2-gazebo:humble`을 사용합니다. 기본값은 `false`입니다. +- 시뮬레이션에서는 기존 NAV2-Gazebo에 `platform:=yahboom`을 설정하고 + NAV2-Yahboom 차량 모듈을 함께 실행합니다. 실차 Agent/Camera는 실행하지 않습니다. - 앱의 야붐 실행기 지원이 반영되어야 합니다. - 서버 과정의 야붐 전용 환경에 이 모듈과 이미지 아티팩트를 등록한 후 LMS에서 설치 -> 빌드 -> 실행합니다. diff --git a/src/yahboom_map/launch/map.launch.py b/src/yahboom_map/launch/map.launch.py index 97df767..f3f11ad 100644 --- a/src/yahboom_map/launch/map.launch.py +++ b/src/yahboom_map/launch/map.launch.py @@ -4,12 +4,17 @@ from launch import LaunchDescription from launch.actions import DeclareLaunchArgument from launch.substitutions import LaunchConfiguration from launch_ros.actions import Node +from launch_ros.parameter_descriptions import ParameterValue +from nav2_common.launch import RewrittenYaml def generate_launch_description(): share = get_package_share_directory("yahboom_map") params = os.path.join(share, "params", "map.yaml") + params = RewrittenYaml(source_file=params, root_key="", + param_rewrites={"use_sim_time": LaunchConfiguration("sim_mode")}, + convert_types=True) nodes = [["nav2_map_server","map_server","map_server"]] - actions = [] + actions = [DeclareLaunchArgument("sim_mode", default_value="false", choices=["true", "false"])] actions.append(DeclareLaunchArgument("map", description="Absolute path to a saved map YAML")) for package, executable, name in nodes: actions.append(Node( @@ -20,7 +25,7 @@ def generate_launch_description(): actions.append(Node( package="nav2_lifecycle_manager", executable="lifecycle_manager", name="lifecycle_manager_yahboom_map", output="screen", - parameters=[{"use_sim_time": False, "autostart": True, + parameters=[{"use_sim_time": ParameterValue(LaunchConfiguration("sim_mode"), value_type=bool), "autostart": True, "node_names": [name for _, _, name in nodes]}], )) return LaunchDescription(actions) diff --git a/src/yahboom_map/package.xml b/src/yahboom_map/package.xml index 00f6d5d..262b33e 100644 --- a/src/yahboom_map/package.xml +++ b/src/yahboom_map/package.xml @@ -10,5 +10,6 @@ launch_ros ament_index_python nav2_bringup + nav2_common ament_cmake