feat: support Yahboom local Gazebo simulation
This commit is contained in:
@@ -4,7 +4,11 @@ LMS 전용 템플릿 저장소입니다. 설치 폴더: `[lms-nav2-yahboom-contr
|
|||||||
|
|
||||||
- 패키지: `yahboom_control`
|
- 패키지: `yahboom_control`
|
||||||
- 런치: `control.launch.py`
|
- 런치: `control.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에서 설치 -> 빌드 -> 실행합니다.
|
LMS에서 설치 -> 빌드 -> 실행합니다.
|
||||||
|
|||||||
@@ -4,12 +4,17 @@ from launch import LaunchDescription
|
|||||||
from launch.actions import DeclareLaunchArgument
|
from launch.actions import DeclareLaunchArgument
|
||||||
from launch.substitutions import LaunchConfiguration
|
from launch.substitutions import LaunchConfiguration
|
||||||
from launch_ros.actions import Node
|
from launch_ros.actions import Node
|
||||||
|
from launch_ros.parameter_descriptions import ParameterValue
|
||||||
|
from nav2_common.launch import RewrittenYaml
|
||||||
|
|
||||||
def generate_launch_description():
|
def generate_launch_description():
|
||||||
share = get_package_share_directory("yahboom_control")
|
share = get_package_share_directory("yahboom_control")
|
||||||
params = os.path.join(share, "params", "control.yaml")
|
params = os.path.join(share, "params", "control.yaml")
|
||||||
|
params = RewrittenYaml(source_file=params, root_key="",
|
||||||
|
param_rewrites={"use_sim_time": LaunchConfiguration("sim_mode")},
|
||||||
|
convert_types=True)
|
||||||
nodes = [["nav2_controller","controller_server","controller_server"],["nav2_behaviors","behavior_server","behavior_server"]]
|
nodes = [["nav2_controller","controller_server","controller_server"],["nav2_behaviors","behavior_server","behavior_server"]]
|
||||||
actions = []
|
actions = [DeclareLaunchArgument("sim_mode", default_value="false", choices=["true", "false"])]
|
||||||
for package, executable, name in nodes:
|
for package, executable, name in nodes:
|
||||||
actions.append(Node(
|
actions.append(Node(
|
||||||
package=package, executable=executable, name=name, output="screen",
|
package=package, executable=executable, name=name, output="screen",
|
||||||
@@ -19,7 +24,7 @@ def generate_launch_description():
|
|||||||
actions.append(Node(
|
actions.append(Node(
|
||||||
package="nav2_lifecycle_manager", executable="lifecycle_manager",
|
package="nav2_lifecycle_manager", executable="lifecycle_manager",
|
||||||
name="lifecycle_manager_yahboom_control", output="screen",
|
name="lifecycle_manager_yahboom_control", 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]}],
|
"node_names": [name for _, _, name in nodes]}],
|
||||||
))
|
))
|
||||||
return LaunchDescription(actions)
|
return LaunchDescription(actions)
|
||||||
|
|||||||
@@ -10,5 +10,6 @@
|
|||||||
<exec_depend>launch_ros</exec_depend>
|
<exec_depend>launch_ros</exec_depend>
|
||||||
<exec_depend>ament_index_python</exec_depend>
|
<exec_depend>ament_index_python</exec_depend>
|
||||||
<exec_depend>nav2_bringup</exec_depend>
|
<exec_depend>nav2_bringup</exec_depend>
|
||||||
|
<exec_depend>nav2_common</exec_depend>
|
||||||
<export><build_type>ament_cmake</build_type></export>
|
<export><build_type>ament_cmake</build_type></export>
|
||||||
</package>
|
</package>
|
||||||
|
|||||||
Reference in New Issue
Block a user