config_node.launch.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. """
  2. 配置管理节点启动文件
  3. Config Node Launch File
  4. 启动配置管理节点,从 MySQL 读取配置并发布到 /ai/config topic
  5. """
  6. from launch import LaunchDescription
  7. from launch_ros.actions import Node
  8. from launch.actions import DeclareLaunchArgument
  9. from launch.substitutions import LaunchConfiguration
  10. def generate_launch_description():
  11. """生成 launch 描述"""
  12. # 声明启动参数
  13. use_mock_data_arg = DeclareLaunchArgument(
  14. 'use_mock_data',
  15. default_value='true',
  16. description='是否使用模拟数据 (true/false)'
  17. )
  18. refresh_interval_arg = DeclareLaunchArgument(
  19. 'refresh_interval',
  20. default_value='30.0',
  21. description='配置刷新间隔 (秒)'
  22. )
  23. topic_name_arg = DeclareLaunchArgument(
  24. 'topic_name',
  25. default_value='/ai/config',
  26. description='配置发布的话题名称'
  27. )
  28. # 定义节点
  29. config_node = Node(
  30. package='config_node',
  31. executable='config_node',
  32. name='config_node',
  33. output='screen',
  34. parameters=[{
  35. 'use_mock_data': LaunchConfiguration('use_mock_data'),
  36. 'refresh_interval': LaunchConfiguration('refresh_interval'),
  37. 'topic_name': LaunchConfiguration('topic_name'),
  38. }],
  39. )
  40. return LaunchDescription([
  41. use_mock_data_arg,
  42. refresh_interval_arg,
  43. topic_name_arg,
  44. config_node,
  45. ])