serial_ntrip_nmea.launch.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!/usr/bin/env python3
  2. """
  3. serial_ntrip_nmea节点的启动文件
  4. """
  5. import os
  6. import yaml
  7. from ament_index_python.packages import get_package_share_directory
  8. from launch import LaunchDescription
  9. from launch_ros.actions import Node
  10. import launch.actions
  11. import launch.event_handlers
  12. def generate_launch_description():
  13. # 获取包共享目录和配置文件路径
  14. share_dir = get_package_share_directory('nmea_ros_bridge')
  15. config_file = os.path.join(share_dir, 'config', 'serial_ntrip_nmea_config.yaml')
  16. # 读取配置文件
  17. with open(config_file, 'r') as f:
  18. params = yaml.safe_load(f)['serial_ntrip_nmea']['ros__parameters']
  19. # serial_ntrip_nmea节点
  20. serial_ntrip_nmea_node = Node(
  21. package='nmea_ros_bridge',
  22. executable='serial_ntrip_nmea',
  23. name='serial_ntrip_nmea',
  24. output='screen',
  25. parameters=[params]
  26. )
  27. return LaunchDescription([
  28. serial_ntrip_nmea_node,
  29. launch.actions.RegisterEventHandler(
  30. event_handler=launch.event_handlers.OnProcessExit(
  31. target_action=serial_ntrip_nmea_node,
  32. on_exit=[launch.actions.EmitEvent(
  33. event=launch.events.Shutdown())],
  34. )),
  35. ])