• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

gazebo教程(四)改善Velodyne模型外观

人工智能 我是。 2799次浏览 0个评论

文章目录

  • 一、介绍
  • 二、准备网格模型
  • 三、将网格模型添加到sdf文件中

 

一、介绍

  具有纹理和3D网格的模型可以改善您的视觉体验,更重要的是可以改善环境的真实感。将这些信息提供给视觉处理算法的模拟,摄像机也将从实际模型中受益。   在本节中,我们将使用Velodyne网站上提供的3D网格来改善模型的视觉外观。更多制造商正在提供3D网格,但是有时可能很难找到现有的网格。在这些情况下,您可以尝试创建网格,与建模师合作或直接与制造商联系。   Velodyne 的网站上有HDL-32 的STEP文件。gazebo只能使用STL,OBJ或Collada文件,因此我们必须转换此文件,然后将其添加到模型中。  

二、准备网格模型

  1、在官网中找到并下载STEP模型   2、如果您使用的是Ubuntu,则可以使用以下命令安装freecad:sudo apt-get install freecad,windows下有很多方法,这里就不赘述了。用以下命令打开模型(cd到文件目录)  

freecad HDL32E_Outline_Model.STEP

  3、单击左侧面板Labels & Attributes中的“HDL32 OUTLINE MODEL”来选择Velodyne的底座。  
gazebo教程(四)改善Velodyne模型外观   4、通过File->Export,将模型导出到名为velodyne_base.dae的文件中。   5、我们需要在Blender中修改velodyne_base.dae文件 ,因为单位不正确,并且我们希望网格以原点为中心。  

<code class="prism language-powershell has-numbering">blender
</code>

  6、依次点击File->Import->Collada,导入velodyne_base.dae文件。  
gazebo教程(四)改善Velodyne模型外观   7、当前单位是毫米,而gazebo的单位是米。模型的坐标轴也不是我们希望的,我们需要其顶部朝向Z轴,即沿x轴旋转90°   8、拉出blender右选项卡(在渲染窗口右上角附近寻找加号)。在Dimensions 此标签下的部分下,将x,y,z分量除以1000。   9、在同一标签中,将模型绕X轴旋转90度。效果参见下图。  
gazebo教程(四)改善Velodyne模型外观   10、以此点击File->Export->Collada,导出我们的模型   11、对Velodyne的顶部模型重复此过程。在FreeCAD上,将“ HDL32E OUTLINE MODEL006”导出为velodyne_top.dae。还必须平移此网格文件,以使底部位于XY平面上。使用左上方的 Translate按钮(单击两次以在左下方打开对话框),将模型沿Z轴向下移动-0.06096。  
gazebo教程(四)改善Velodyne模型外观   此时,您应该有两个网格文件:velodyne_base.daevelodyne_top.dae。如果以上步骤实在有问题,这里我已经给大家准备好这两个文件了,大家直接复制全文,创建一个新的dae文件黏贴就OK了  

 

三、将网格模型添加到sdf文件中

  亭定义了一个模型目录结构,该结构支持独立模型,并能够通过在线模型数据库共享模型。Gazebo模型结构的另一个好处是,它可以方便地组织模型所需的资源,例如网格文件。在本节中,我们将创建Velodyne SDF模型,并在其中添加两个网格文件velodyne_base.daevelodyne_top.dae   1、命令行中输入以下命令创建目录。由于Gazebo知道模型路径,因此我们直接将目录放置在~/.gazebo/models中,这样就不用另外设置了,  

<code class="prism language-powershell has-numbering">mkdir ~<span class="token operator">/</span><span class="token punctuation">.</span>gazebo<span class="token operator">/</span>models<span class="token operator">/</span>velodyne_hdl32
</code>

  2、创建文件model.config。用于记录模型需要一些信息。包括引用的模型描述文件(xxx.sdf)  

<code class="prism language-powershell has-numbering">gedit ~<span class="token operator">/</span><span class="token punctuation">.</span>gazebo<span class="token operator">/</span>models<span class="token operator">/</span>velodyne_hdl32<span class="token operator">/</span>model<span class="token punctuation">.</span>config
</code>

  配置文件内容如下;  

<?xml version="1.0"?>

<model>
  <name>Velodyne HDL-32</name>
  <version>1.0</version>
  <sdf version="1.5">model.sdf</sdf>

  <author>
    <name>Optional: YOUR NAME</name>
    <email>Optional: YOUR EMAIL</email>
  </author>

  <description>
    A model of a Velodyne HDL-32 LiDAR sensor.
  </description>

</model>

  3、将上一篇velodyne.world 中的内容复制到model.sdf里面,只保留<?xml><sdf> 和 <model>这三个块, 去掉以下部分:  

  • <include>块,该块包含光线和地面两部分
  • <world>标签,注意是标签,不要删除里面内容

  4、启动gazebo选择Insert左侧的标签,然后向下滚动以找到 Velodyne HDL-32。 单击Velodyne HDL-32,然后在渲染窗口中单击鼠标左键以生成模型。   5、在velodyne_hdl32文件夹下创建meshes文件夹并将两个dae文件放入其中,接下来我们编辑sdf文件,在<visual>块中将原本的<cylinder>内容替换为<mesh>  

 <visual name="top_visual">
   <geometry>
     <!-- The mesh tag indicates that we will use a 3D mesh as
          a visual -->
     <mesh>
       <!-- The URI should refer to the 3D mesh. The "model:"
           URI scheme indicates that the we are referencing a Gazebo
           model. -->
       <uri>model://velodyne_hdl32/meshes/velodyne_top.dae</uri>
     </mesh>
   </geometry>
 </visual>

  重新加载模型后我们可以看到以下效果:  
gazebo教程(四)改善Velodyne模型外观   通过初始化位置来纠正摆放(<pose>标签)  

<visual name="top_visual">
  <!-- Lower the mesh by half the height, and rotate by 90 degrees -->
  <pose>0 0 -0.0376785 0 0 1.5707</pose>
  <geometry>
    <mesh>
      <uri>model://velodyne_hdl32/meshes/velodyne_top.dae</uri>
    </mesh>
  </geometry>
</visual>

 
gazebo教程(四)改善Velodyne模型外观   6、主体部分同样如此  

<visual name="base_visual">
  <!-- Offset the visual by have the base's height. We are not rotating
       mesh since symmetrical -->
  <pose>0 0 -0.029335 0 0 0</pose>
  <geometry>
    <mesh>
      <uri>model://velodyne_hdl32/meshes/velodyne_base.dae</uri>
    </mesh>
  </geometry>
</visual>

  最后我们得到了含真实样子的传感器模型了  
gazebo教程(四)改善Velodyne模型外观


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明gazebo教程(四)改善Velodyne模型外观
喜欢 (0)

您必须 登录 才能发表评论!

加载中……