ROS2 Foxy是否可像ROS1一样在Launch文件加载两个YAML文件?
ROS2 Foxy中在Launch文件加载多个YAML文件的方法
当然可以在ROS2 Foxy的Launch文件中加载多个YAML文件,实现方式很直接:Node动作的parameters参数支持接收一个列表,你只需要将多个YAML文件的路径依次加入该列表即可。
示例代码如下:
import os from launch import LaunchDescription from launch_ros.actions import Node from ament_index_python.packages import get_package_share_directory def generate_launch_description(): # 获取第一个配置文件路径 file1_path = os.path.join( get_package_share_directory('pkg1'), 'config', 'file1.yaml' ) # 获取第二个配置文件路径 file2_path = os.path.join( get_package_share_directory('pkg1'), 'config', 'file2.yaml' ) return LaunchDescription([ Node( package="pkg1", executable="node1", name="node1", output="screen", parameters=[file1_path, file2_path] # 传入多个YAML文件路径 ) ])
需要注意的是,如果两个YAML文件中存在同名参数,后面文件中的参数值会覆盖前面的,这一行为和ROS1中多次使用<rosparam>加载文件的逻辑一致。
内容的提问来源于stack exchange,提问作者zach
相关产品推荐
相关产品推荐

