From 9187b9fb85d8deeb682b7f7875b321f51f58316d Mon Sep 17 00:00:00 2001 From: X-lanni Date: Fri, 6 Jun 2025 13:38:07 +0800 Subject: [PATCH] add ROS 2 launch scripts for starting the AGV Pro --- .../lslidar_driver/launch/lslidar_launch.py | 14 +---- .../lslidar_driver/params/lsx10.yaml | 6 +- agv_pro_bringup/CMakeLists.txt | 23 ++++++++ .../launch/agv_pro_bringup.launch.py | 58 +++++++++++++++++++ agv_pro_bringup/package.xml | 22 +++++++ 5 files changed, 107 insertions(+), 16 deletions(-) create mode 100644 agv_pro_bringup/CMakeLists.txt create mode 100644 agv_pro_bringup/launch/agv_pro_bringup.launch.py create mode 100644 agv_pro_bringup/package.xml diff --git a/Lslidar_ROS2_driver/lslidar_driver/launch/lslidar_launch.py b/Lslidar_ROS2_driver/lslidar_driver/launch/lslidar_launch.py index 8933424..9e967b7 100644 --- a/Lslidar_ROS2_driver/lslidar_driver/launch/lslidar_launch.py +++ b/Lslidar_ROS2_driver/lslidar_driver/launch/lslidar_launch.py @@ -22,19 +22,7 @@ def generate_launch_description(): parameters=[driver_dir], ) - - rviz_dir = os.path.join(get_package_share_directory('lslidar_driver'), 'rviz', 'lslidar.rviz') - - rviz_node = Node( - package='rviz2', - namespace='', - executable='rviz2', - name='rviz2', - arguments=['-d', rviz_dir], - output='screen') - return LaunchDescription([ - driver_node, - rviz_node, + driver_node ]) diff --git a/Lslidar_ROS2_driver/lslidar_driver/params/lsx10.yaml b/Lslidar_ROS2_driver/lslidar_driver/params/lsx10.yaml index 3fb00f9..805d0a7 100644 --- a/Lslidar_ROS2_driver/lslidar_driver/params/lsx10.yaml +++ b/Lslidar_ROS2_driver/lslidar_driver/params/lsx10.yaml @@ -7,7 +7,7 @@ device_ip_difop: 192.168.1.102 #雷达目的ip msop_port: 2368 #雷达目的端口号 difop_port: 2369 #雷达源端口号 - lidar_name: M10 #雷达选择:M10 M10_P M10_PLUS M10_GPS N10 L10 N10_P + lidar_name: N10_P #雷达选择:M10 M10_P M10_PLUS M10_GPS N10 L10 N10_P angle_disable_min: 0.0 #角度裁剪开始值 angle_disable_max: 0.0 #角度裁剪结束值 min_range: 0.0 #雷达接收距离最小值 @@ -15,11 +15,11 @@ use_gps_ts: false #雷达是否使用GPS授时 scan_topic: /scan #设置激光数据topic名称 interface_selection: serial #接口选择:net 为网口,serial 为串口。 - serial_port_: /dev/ttyUSB0 #串口连接时的串口号 + serial_port_: /dev/agv_lidar #串口连接时的串口号 high_reflection: false #M10_P雷达需填写该值,若不确定,请联系技术支持。 compensation: false #M10系列是否使用角度补偿功能 pubScan: true #是否发布scan话题 pubPointCloud2: false #是否发布pointcloud2话题 pointcloud_topic: /lslidar_point_cloud #设置激光数据topic名称 # pcap: /home/ls/1.pcap #雷达是否使用pcap包读取功能 -# in_file_name: /home/ls/1.txt #雷达是否使用txt文件读取功能 \ No newline at end of file +# in_file_name: /home/ls/1.txt #雷达是否使用txt文件读取功能 diff --git a/agv_pro_bringup/CMakeLists.txt b/agv_pro_bringup/CMakeLists.txt new file mode 100644 index 0000000..e8533f2 --- /dev/null +++ b/agv_pro_bringup/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 3.8) +project(agv_pro_bringup) + +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) + +install(DIRECTORY + launch + DESTINATION share/${PROJECT_NAME}/ +) + +if(BUILD_TESTING) + find_package(ament_lint_auto REQUIRED) + set(ament_cmake_copyright_FOUND TRUE) + set(ament_cmake_cpplint_FOUND TRUE) + ament_lint_auto_find_test_dependencies() +endif() + +ament_package() diff --git a/agv_pro_bringup/launch/agv_pro_bringup.launch.py b/agv_pro_bringup/launch/agv_pro_bringup.launch.py new file mode 100644 index 0000000..5fabb20 --- /dev/null +++ b/agv_pro_bringup/launch/agv_pro_bringup.launch.py @@ -0,0 +1,58 @@ +import os +from launch import LaunchDescription +from launch_ros.actions import Node +from launch.actions import DeclareLaunchArgument,IncludeLaunchDescription +from launch.substitutions import LaunchConfiguration +from launch.launch_description_sources import PythonLaunchDescriptionSource +from ament_index_python.packages import get_package_share_directory + +def generate_launch_description(): + + port_name_arg = LaunchConfiguration('port_name',default='ttyS0') + namespace = LaunchConfiguration('namespace', default='') + + urdf_file = os.path.join( + get_package_share_directory('agv_pro_description'), + 'urdf', + 'agv_pro.urdf' + ) + + with open(urdf_file, 'r') as file: + robot_description_content = file.read() + + return LaunchDescription([ + DeclareLaunchArgument( + 'port_name', + default_value=port_name_arg, + description='port name, e.g. ttyS0'), + + Node( + package='agv_pro_base', + executable='agv_pro_node', + name='agv_pro_node', + output='screen', + parameters=[{ + 'port_name': port_name_arg, + 'namespace': namespace, + }], + ), + + Node( + package='joint_state_publisher', + executable='joint_state_publisher', + name='joint_state_publisher' + ), + + Node( + package='robot_state_publisher', + executable='robot_state_publisher', + name='robot_state_publisher', + parameters=[{'robot_description': robot_description_content}] + ), + + IncludeLaunchDescription( + PythonLaunchDescriptionSource([os.path.join( + get_package_share_directory('lslidar_driver'),'launch'), + 'lslidar_launch.py']) + ) + ]) diff --git a/agv_pro_bringup/package.xml b/agv_pro_bringup/package.xml new file mode 100644 index 0000000..864d457 --- /dev/null +++ b/agv_pro_bringup/package.xml @@ -0,0 +1,22 @@ + + + + agv_pro_bringup + 1.0.0 + ROS 2 launch scripts for starting the AGV Pro + lanni + BSD-3-Clause license + + ament_cmake + robot_state_publisher + rviz2 + agv_pro_description + agv_pro_base + + ament_lint_auto + ament_lint_common + + + ament_cmake + +