ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

gazebo model的sdf文件中的uri路径

2021-05-04 20:03:00  阅读:485  来源: 互联网

标签:iris 路径 uri sdf depth path model gazebo


让我们先看一个gazebo模型的sdf文件iris_depth_camera_down.sdf

<sdf version='1.5'>
  <model name='iris_depth_camera_down'>
    <include>
      <uri>model://iris</uri>
    </include>

    <include>
      <uri>model://depth_camera_new</uri>
      <pose>0 0 -0.05 0 1.5708 0</pose>
    </include>

    <joint name="depth_camera_new_joint" type="fixed">
      <child>depth_camera_new::link</child>
      <parent>iris::base_link</parent>
      <axis>
        <xyz>0 0 1</xyz>
        <limit>
          <upper>0</upper>
          <lower>0</lower>
        </limit>
      </axis>
    </joint>
  </model>

显然这里面用uri链接打开了iris和depth_camera_new两个模型。

问题是,这两个模型的文件路径是什么?

答案在https://answers.gazebosim.org/question/6568/uri-paths-to-packages-in-the-sdf-model-file/

简而言之,<uri>model://iris</uri>会去找gazebo_model_path路径,而这个路径的申明有几种方法。

1、默认路径

~/.gazebo/models是gazebo会去找的模型默认路径,gazebo中联机下载的模型也会放在这里,也可以把你的模型放在这里,那gazebo一定可以找到。

2、自制model包

也可在自己写的一些ros包的package.xml文件里export这个包里的models文件夹,这个文件夹里的模型也会成为gazebo_model_path。给个参考:

<?xml version="1.0"?>
<package format="2">
  <name>uavros_gazebo</name>
  <version>0.0.0</version>
  <description>The iris_gazebo package</description>

  <license>BSD</license>
  <author>colin</author>
  <maintainer email="lcyfly1@163.com">colin</maintainer>

  <buildtool_depend>catkin</buildtool_depend>
  <build_depend>message_generation</build_depend>
  <depend>message_runtime</depend>
  <depend>std_msgs</depend>

  <depend>gazebo_ros</depend>
  <depend>roscpp</depend>
  <depend>rospy</depend>
  <depend>camera_info_manager</depend>
  <depend>geometry_msgs</depend>
  <exec_depend>depth_image_proc</exec_depend>

  <test_depend>rostest</test_depend>

  <exec_depend>urdf</exec_depend>
  <exec_depend>xacro</exec_depend>


 <export>
    <gazebo_ros
      plugin_path="${prefix}/lib"
      gazebo_media_path="${prefix}"
      gazebo_model_path="${prefix}/models"
      />
  </export>
</package>

下面的命令可以查看gazebo_ros的model path:

rospack plugins --attrib=gazebo_model_path gazebo_ros

3、声明路径

最后,可以在终端或者.bashrc里声明GAZEBO_MODEL_PATH的路径,之后再打开相应的模型就会找到路径了,比较麻烦不推荐。

exprot GAZEBO_MODEL_PATH=${GAZEBO_MODEL_PATH}:path-to-model

 

如果多个路径下面都有同名的model,那么会用到哪个我还不知道,可能有个先后顺序。如果都找不到那就会联网去下载。

最好还是不要用同名的model。

下面是搬运:


 

 

 

标签:iris,路径,uri,sdf,depth,path,model,gazebo
来源: https://blog.csdn.net/benchuspx/article/details/116404058

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有