ROS YAML文件中的环境变量?

ROS YAML文件中的环境变量?,yaml,ros,Yaml,Ros,有没有办法在启动文件期间加载的ROS yaml文件中使用环境变量 比如说, 测试启动: <launch> <rosparam command="load" file="example.yaml" /> </launch> 我知道您可以使用或标记将环境变量作为参数加载到启动文件中,但是当有很多参数时,将它们定义在单独的.yaml文件中要整洁得多。有推荐的方法吗?没有,并且不支持读取yaml文件中的env变量 您可以创建多个不同名称的yaml文件,

有没有办法在启动文件期间加载的ROS yaml文件中使用环境变量

比如说,

测试启动:

<launch>    
   <rosparam command="load" file="example.yaml" />
</launch>
我知道您可以使用
标记将环境变量作为参数加载到启动文件中,但是当有很多参数时,将它们定义在单独的.yaml文件中要整洁得多。有推荐的方法吗?

没有,并且不支持读取yaml文件中的env变量

您可以创建多个不同名称的yaml文件,并使用启动文件中的env变量有选择地加载它们,例如:

<launch>    
   <rosparam command="load" file="$(optenv VEHICLE_NAME default_vehicle_name)_example.yaml" />
</launch>

`

标签有一个属性
subst\u value
,用于启用
env
optenv
等。当直接添加到启动文件中时,YAML文本的替换参数。这是以下工作:


foo:$(环境用户)
对于和更高版本的,它在使用外部YAML文件时也有效:


<launch>    
   <rosparam command="load" file="$(optenv VEHICLE_NAME default_vehicle_name)_example.yaml" />
</launch>