From b96a558fa8732fda1977eeabacea38db150b3cab 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_slam/launch/slam.launch.py | 7 +++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 00319b4..5315753 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,11 @@ LMS 전용 템플릿 저장소입니다. 설치 폴더: `[lms-nav2-yahboom-slam] - 패키지: `yahboom_slam` - 런치: `slam.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_slam/launch/slam.launch.py b/src/yahboom_slam/launch/slam.launch.py index 3102b93..1b497b6 100644 --- a/src/yahboom_slam/launch/slam.launch.py +++ b/src/yahboom_slam/launch/slam.launch.py @@ -4,16 +4,19 @@ 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 def generate_launch_description(): share = get_package_share_directory("yahboom_slam") + clock = ParameterValue(LaunchConfiguration("sim_mode"), value_type=bool) return LaunchDescription([ + DeclareLaunchArgument("sim_mode", default_value="false", choices=["true", "false"]), Node(package="cartographer_ros", executable="cartographer_node", - parameters=[{"use_sim_time": False}], output="screen", + parameters=[{"use_sim_time": clock}], output="screen", arguments=["-configuration_directory", os.path.join(share, "params"), "-configuration_basename", "yahboom_cartographer.lua"], remappings=[("scan", "/scan"), ("odom", "/odom")]), Node(package="cartographer_ros", executable="cartographer_occupancy_grid_node", - parameters=[{"use_sim_time": False}], output="screen", + parameters=[{"use_sim_time": clock}], output="screen", arguments=["-resolution", "0.05", "-publish_period_sec", "1.0"]), ])