ROS学习记录——Gazebo 里添加自己的物体模型

2023-05-16

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、下载3D模型

二、编辑三维模型

1.使用sketch up

2.使用blender编辑

三、将三维模型导入Gazebo

1.配置模型文件

2.插入到Gazebo环境


前言

在ROS仿真过程中,要根据项目需求在Gazebo中添加相应的物体模型,本文记录一下学习过程。

学习教程:3D模型下载与添加到Gazebo_哔哩哔哩_bilibili

教程用到的三维模型编辑软件有:sketchup、blender


一、下载3D模型

登录3D Warehouse:3D Warehouse (sketchup.com)  ,搜索模型并下载,下载的模型格式为.skp格式,需要用sketchup打开。

 

二、编辑三维模型

1.使用sketch up

使用擦除工具删掉不需要的部分,使用 工具——尺寸 标注模型的长、宽、高,并记录下来,后续用于计算ixx、iyy、izz。

编辑完成后既可导出.dae文件以便使用blender的后续编辑(我导出.dae后导入blender显示不出模型,所以导的.stl文件) 

ps:如果电脑上安装了3D查看器,可以直接打开.stl文件,有的Windows自带了,没有可以去微软应用商店下一个,搜索:3d viewer即可。

2.使用blender编辑

(1) 打开blender,点击文件——导入,选择刚才导出的.dae或.stl文件,如果导入后显示不出模型,可能是模型太大,超出了视野范围,可以将模型缩小或调大视距。缩放时X,Y,Z比例要一致。

(2)设置模型原点,选择质心。

(3)设置完成后导出.dae文件。

 

三、将三维模型导入Gazebo

1.配置模型文件

 (1)开启Gazebo,点击左侧栏上方的insert,查看gazebo 模型存储的地址,在该地址下新建一个文件夹(本文为aircraft)。

cd /usr/share/gazebo-11/models
mkdir aircraft

(2)在aircraft下新建文件夹meshes,并将之前导出的.dae文件复制进去。

(3)回到aircraft目录,新建model.config和model.sdf文件,至此,新模型aircraft的框架完成,如图所示:

 编辑model.config:

<?xml version="1.0"?>

<model>
  <name>aircraft</name>
  <version>1.0</version>
  <sdf version="1.5">model.sdf</sdf>

  <author>
    <name>xxxxx</name>
    <email>xxxxxx@qq.com</email>
  </author>

  <description>
    A model of a aircraft.
  </description>
</model>

编辑 model.sdf:

此处要计算ixx、iyy、izz,要用到二、1中标注的尺寸。

mass单位为kg,我大概写了一个数,x,y,z单位为米。

计算公式:

ixx = 0.083 * mass * (y*y + z*z)

iyy = 0.083 * mass * (x*x + z*z)

izz = 0.083 * mass * (x*x + y*y)

<?xml version="1.0" ?>
<sdf version="1.5">
  <model name="aircraft">
    <static>true</static>
    <link name="link">
      <inertial>
        <pose>0.0 0.0 0.0 0.0 0.0 0.0</pose>
        <mass>100</mass>
        <inertia>
          <ixx>181.3363976980</ixx>  <!-- for a box: ixx = 0.083 * mass * (y*y + z*z)-->
          <ixy>0.0</ixy>
          <ixz>0.0</ixz>
          <iyy>291.7459136972</iyy>  <!-- for a box: iyy = 0.083 * mass * (x*x + z*z)-->
          <iyz>0.0</iyz>
          <izz>437.8439854366</izz>  <!-- for a box: izz = 0.083 * mass * (x*x + y*y)-->          
        </inertia>
      </inertial>
      <collision name="collision">
        <geometry>
          <mesh>
            <uri>model://aircraft/meshes/aircraft.dae</uri>   <!--.dae文件地址-->
          </mesh>
        </geometry>        
      </collision>
      <visual name="visual">       
        <geometry>
          <mesh>
            <uri>model://aircraft/meshes/aircraft.dae</uri>  <!--.dae文件地址-->
          </mesh>
        </geometry>        
      </visual>
    </link>
  </model>
</sdf>

2.插入到Gazebo环境

运行Gazebo,点击insert,找到自己的模型即可插入到环境中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS学习记录——Gazebo 里添加自己的物体模型 的相关文章

随机推荐