Files
amadeus_26/launch/transmitter_test.launch.py
2026-03-23 02:10:54 +08:00

112 lines
3.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from launch import LaunchDescription
from launch_ros.actions import Node
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
def generate_launch_description():
# 声明启动参数 - 基本设置
send_frequency_arg = DeclareLaunchArgument(
'send_frequency',
default_value='50.0',
description='CAN 发送频率 (Hz)'
)
tx_channel_arg = DeclareLaunchArgument(
'tx_channel',
default_value='0',
description='CAN 发送通道 (0 或 1)'
)
rx_channel_arg = DeclareLaunchArgument(
'rx_channel',
default_value='1',
description='CAN 接收通道 (0 或 1)'
)
# 声明启动参数 - CAN ID 设置
can_id_motion_arg = DeclareLaunchArgument(
'can_id_motion',
default_value='329', # 0x149 = 329
description='运动控制 CAN ID (十进制,默认 0x149=329)'
)
can_id_attack_arg = DeclareLaunchArgument(
'can_id_attack',
default_value='393', # 0x189 = 393
description='攻击控制 CAN ID (十进制,默认 0x189=393)'
)
# 声明启动参数 - CAN 帧格式
use_extended_frame_arg = DeclareLaunchArgument(
'use_extended_frame',
default_value='false',
description='是否使用扩展帧(29位ID)false=标准帧(11位)'
)
use_canfd_arg = DeclareLaunchArgument(
'use_canfd',
default_value='false',
description='是否使用 CANFDfalse=CAN2.0'
)
use_brs_arg = DeclareLaunchArgument(
'use_brs',
default_value='false',
description='CANFD 是否启用波特率切换(BRS)'
)
# 声明启动参数 - 接收过滤
rx_filter_enabled_arg = DeclareLaunchArgument(
'rx_filter_enabled',
default_value='false',
description='是否启用接收 ID 过滤'
)
rx_filter_id_min_arg = DeclareLaunchArgument(
'rx_filter_id_min',
default_value='0',
description='接收过滤 ID 最小值'
)
rx_filter_id_max_arg = DeclareLaunchArgument(
'rx_filter_id_max',
default_value='2047', # 0x7FF
description='接收过滤 ID 最大值'
)
# 创建节点
transmitter_test_node = Node(
package='amadeus_26',
executable='transmitter_test_node',
name='transmitter_test_node',
output='screen',
parameters=[{
'send_frequency': LaunchConfiguration('send_frequency'),
'tx_channel': LaunchConfiguration('tx_channel'),
'rx_channel': LaunchConfiguration('rx_channel'),
'can_id_motion': LaunchConfiguration('can_id_motion'),
'can_id_attack': LaunchConfiguration('can_id_attack'),
'use_extended_frame': LaunchConfiguration('use_extended_frame'),
'use_canfd': LaunchConfiguration('use_canfd'),
'use_brs': LaunchConfiguration('use_brs'),
'rx_filter_enabled': LaunchConfiguration('rx_filter_enabled'),
'rx_filter_id_min': LaunchConfiguration('rx_filter_id_min'),
'rx_filter_id_max': LaunchConfiguration('rx_filter_id_max'),
}],
)
return LaunchDescription([
send_frequency_arg,
tx_channel_arg,
rx_channel_arg,
can_id_motion_arg,
can_id_attack_arg,
use_extended_frame_arg,
use_canfd_arg,
use_brs_arg,
rx_filter_enabled_arg,
rx_filter_id_min_arg,
rx_filter_id_max_arg,
transmitter_test_node,
])