如何将原始路径作为环境变量放在XML文件中?

时间:2018-12-12 21:56:46

标签: xml ros

我在ROS中有一个用于凉亭模拟的.world文件,它是一个XML文件。

如何在<uri>标签中放置动态起始路径而不是静态路径?


这是我的简化.world文件:

<?xml version="1.0" ?>
<sdf version='1.5'>
  <world name='default'>
    <visual name='base_link_visual_front_sonar'>
      <pose>0.109 0 0.209 0 -0 0</pose>
      <geometry>
      <mesh>
        <uri>/home/agn/catkin_ws/src/description/meshes/sonar.stl</uri> <!--Note-->
      </mesh>
      </geometry>
    </visual>
  </world>
</sdf>

如何使用$HOME代替/home/agn

我尝试了以下结果失败的情况:

<uri>~/catkin_ws/src/description/meshes/sonar.stl</uri>
<uri>$HOME/catkin_ws/src/description/meshes/sonar.stl</uri>
<uri>"$HOME/catkin_ws/src/description/meshes/sonar.stl"</uri>
<uri>${HOME}/catkin_ws/src/description/meshes/sonar.stl</uri>
<uri>"${HOME}/catkin_ws/src/description/meshes/sonar.stl"</uri>
<uri>"${sys:user.home}/catkin_ws/src/description/meshes/sonar.stl"</uri>
<uri>${sys:user.home}/catkin_ws/src/description/meshes/sonar.stl</uri>
<uri>${user.home}/catkin_ws/src/description/meshes/sonar.stl</uri>
<uri>"${user.home}/catkin_ws/src/description/meshes/sonar.stl"</uri>

2 个答案:

答案 0 :(得分:0)

根据Gazebo tutorial凉亭,可以在环境变量GAZEBO_MODEL_PATH上列出的路径中找到其他模型。

How to correctly add a path to PATH?中对添加到环境变量的路径进行了很好的描述,并且可以像

PATH=$GAZEBO_MODEL_PATH:/your/path/to/check

现在您可以将uri设置为

<uri>model://relative/path/file.stl</uri>

请注意,还有a hacks允许更改 package.xml 中的环境变量。

答案 1 :(得分:0)

根据roslaunch wiki,您应该尝试以下操作:

<uri>$(env HOME)/catkin_ws/src/description/meshes/sonar.stl</uri>