From 0939e19f3b47043f0712f0f82afe71d71946636d Mon Sep 17 00:00:00 2001 From: lyq Date: Fri, 30 Jan 2026 09:07:15 +0800 Subject: [PATCH] =?UTF-8?q?launch=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/launch_system/CMakeLists.txt | 32 +++++ .../launch_system/launch/start_all.launch.py | 117 ++++++++++++++++++ src/common/launch_system/package.xml | 33 +++++ 3 files changed, 182 insertions(+) create mode 100644 src/common/launch_system/CMakeLists.txt create mode 100644 src/common/launch_system/launch/start_all.launch.py create mode 100644 src/common/launch_system/package.xml diff --git a/src/common/launch_system/CMakeLists.txt b/src/common/launch_system/CMakeLists.txt new file mode 100644 index 0000000..5270001 --- /dev/null +++ b/src/common/launch_system/CMakeLists.txt @@ -0,0 +1,32 @@ +cmake_minimum_required(VERSION 3.8) +project(launch_system) + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +# find dependencies +find_package(ament_cmake REQUIRED) +find_package(ament_cmake_python REQUIRED) +find_package(vehicle_params REQUIRED) +find_package(radio_ctrl REQUIRED) +find_package(remote_ctrl REQUIRED) +find_package(mc REQUIRED) +find_package(ctrl_arbiter REQUIRED) +find_package(mqtt_report REQUIRED) +find_package(rslidar_sdk REQUIRED) +find_package(rtk REQUIRED) +find_package(route REQUIRED) +find_package(sub REQUIRED) +find_package(task_manager REQUIRED) +find_package(pl REQUIRED) +find_package(fu REQUIRED) + +# Install launch files +install(DIRECTORY + launch + config + DESTINATION share/${PROJECT_NAME}/ +) + +ament_package() \ No newline at end of file diff --git a/src/common/launch_system/launch/start_all.launch.py b/src/common/launch_system/launch/start_all.launch.py new file mode 100644 index 0000000..2c41612 --- /dev/null +++ b/src/common/launch_system/launch/start_all.launch.py @@ -0,0 +1,117 @@ +from launch import LaunchDescription +from launch_ros.actions import Node +from launch.actions import IncludeLaunchDescription +from launch.launch_description_sources import PythonLaunchDescriptionSource +from ament_index_python.packages import get_package_share_directory +import os + +def generate_launch_description(): + # 获取各包的路径 + rslidar_sdk_path = get_package_share_directory("rslidar_sdk") + fu_path = get_package_share_directory("fu") + + return LaunchDescription( + [ + # 启动车辆参数节点 + Node( + package="vehicle_params", + executable="vehicle_params_node", + name="vehicle_params_node", + output="screen", + ), + + # 启动无线电控制节点 + Node( + package="radio_ctrl", + executable="radio_ctrl_node", + name="radio_ctrl_node", + output="screen", + ), + + # 启动远程控制节点 + Node( + package="remote_ctrl", + executable="remote_ctrl_node", + name="remote_ctrl_node", + output="screen", + ), + + # 启动MC节点 + Node( + package="mc", + executable="mc_node", + name="mc_node", + output="screen", + ), + + # 启动控制仲裁节点 + Node( + package="ctrl_arbiter", + executable="ctrl_arbiter_node", + name="ctrl_arbiter_node", + output="screen", + ), + + # 启动MQTT报告节点 + Node( + package="mqtt_report", + executable="mqtt_report_node", + name="mqtt_report_node", + output="screen", + ), + + # 启动激光雷达节点(使用现有launch文件) + IncludeLaunchDescription( + PythonLaunchDescriptionSource( + os.path.join(rslidar_sdk_path, "launch", "start_double.launch.py") + ) + ), + + # 启动RTK节点 + Node( + package="rtk", + executable="rtk_node", + name="rtk_node", + output="screen", + ), + + # 启动路径节点 + Node( + package="route", + executable="route_node", + name="route_node", + output="screen", + ), + + # 启动SUB节点 + Node( + package="sub", + executable="sub_node", + name="sub_node", + output="screen", + ), + + # 启动任务管理器节点 + Node( + package="task_manager", + executable="task_manager_node", + name="task_manager_node", + output="screen", + ), + + # 启动PL节点 + Node( + package="pl", + executable="pl_node", + name="pl_node", + output="screen", + ), + + # 启动FU节点(使用现有launch文件) + IncludeLaunchDescription( + PythonLaunchDescriptionSource( + os.path.join(fu_path, "launch", "fu.launch.py") + ) + ), + ] + ) \ No newline at end of file diff --git a/src/common/launch_system/package.xml b/src/common/launch_system/package.xml new file mode 100644 index 0000000..7350f03 --- /dev/null +++ b/src/common/launch_system/package.xml @@ -0,0 +1,33 @@ + + + + launch_system + 0.0.0 + Launch system for sweeper_200 + User + Apache-2.0 + + ament_cmake + ament_cmake_python + + vehicle_params + radio_ctrl + remote_ctrl + mc + ctrl_arbiter + mqtt_report + rslidar_sdk + rtk + route + sub + task_manager + pl + fu + + ament_lint_auto + ament_lint_common + + + ament_cmake + + \ No newline at end of file