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

本文档详细介绍了如何在ROS的Gazebo仿真环境中添加自定义3D模型,包括从3DWarehouse下载模型、使用SketchUp和Blender进行编辑、配置模型文件以及将模型导入Gazebo的步骤。教程涵盖了模型尺寸标注、.dae文件转换、Gazebo模型目录结构创建等关键环节。
摘要由CSDN通过智能技术生成

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

目录


前言

在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,找到自己的模型即可插入到环境中。

如果您在运行Gazebo 11时遇到了问题,可能是由于以下原因之一: 1. 您的ROS环境没有正确设置:确保您已经正确设置了ROS环境,并且已经运行了`source /opt/ros/<your_ros_version>/setup.bash`命令。 2. Gazebo 11没有正确安装:如果您在安装Gazebo 11时遇到了问题,可能会导致Gazebo无法运行。请重新安装Gazebo 11并确保安装过程中没有出现错误。 3. 您的系统缺少必要的依赖项:Gazebo 11需要一些系统库和依赖项才能正常运行。请确保您已经安装了所有必要的依赖项,这些依赖项包括但不限于:`libignition-math4 libignition-msgs1 libignition-transport9 libprotobuf-lite10 libprotobuf17 libprotoc17 libqwt-qt5-6 libsdformat9 libtinyxml2-6a libtinyxml2-dev libyaml-cpp0.6 libyaml-cpp-dev protobuf-compiler python3-defusedxml python3-gdcm python3-lxml python3-numpy python3-opencv python3-opencv-apps python3-opencv-python python3-opencv-python-headless python3-pil python3-pydicom python3-pyproj python3-six python3-tk python3-vtk7 python3-vtk7-dev python3-yaml`. 4. Gazebo 11的配置文件出现了问题:如果您手动编辑了Gazebo 11的配置文件,可能会导致Gazebo无法运行。请确保您没有手动编辑或删除任何Gazebo 11的配置文件。 如果您仍然无法解决问题,请尝试重新安装ROSGazebo 11,并确保您的系统满足所有必要的依赖项。如果问题仍然存在,请查看Gazebo 11的日志文件以获取更多信息,并尝试在ROS社区或Gazebo社区中寻求帮助。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想写代码的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值