from launch import LaunchDescription from launch_ros.actions import Node from launch.actions import DeclareLaunchArgument from launch.substitutions import LaunchConfiguration def generate_launch_description(): # 声明启动参数 serial_port_arg = DeclareLaunchArgument( 'serial_port', default_value='/dev/ttyCH340', description='CH340 串口设备路径' ) baudrate_arg = DeclareLaunchArgument( 'baudrate', default_value='115200', description='串口波特率' ) send_frequency_arg = DeclareLaunchArgument( 'send_frequency', default_value='10.0', description='发送频率 (Hz)' ) # 控制参数 x_move_arg = DeclareLaunchArgument( 'x_move', default_value='0', description='平动左右 [-660, 660]' ) y_move_arg = DeclareLaunchArgument( 'y_move', default_value='0', description='平动前后 [-660, 660]' ) yaw_arg = DeclareLaunchArgument( 'yaw', default_value='0', description='云台偏航 [-660, 660]' ) pitch_arg = DeclareLaunchArgument( 'pitch', default_value='0', description='云台俯仰 [-660, 660]' ) feed_arg = DeclareLaunchArgument( 'feed', default_value='0', description='拨弹轮 [-660, 660]' ) left_switch_arg = DeclareLaunchArgument( 'left_switch', default_value='3', description='左拨杆 [1, 3]' ) right_switch_arg = DeclareLaunchArgument( 'right_switch', default_value='3', description='右拨杆 [1, 3]' ) # 创建节点 uart_transmitter_node = Node( package='amadeus_26', executable='uart_transmitter_node', name='uart_transmitter_node', output='screen', parameters=[{ 'serial_port': LaunchConfiguration('serial_port'), 'baudrate': LaunchConfiguration('baudrate'), 'send_frequency': LaunchConfiguration('send_frequency'), 'x_move': LaunchConfiguration('x_move'), 'y_move': LaunchConfiguration('y_move'), 'yaw': LaunchConfiguration('yaw'), 'pitch': LaunchConfiguration('pitch'), 'feed': LaunchConfiguration('feed'), 'left_switch': LaunchConfiguration('left_switch'), 'right_switch': LaunchConfiguration('right_switch'), }], ) return LaunchDescription([ serial_port_arg, baudrate_arg, send_frequency_arg, x_move_arg, y_move_arg, yaw_arg, pitch_arg, feed_arg, left_switch_arg, right_switch_arg, uart_transmitter_node, ])