< >
Home » ROS2与Gazebo11入门教程 » ROS2与Gazebo11入门教程-导入3D网格

ROS2与Gazebo11入门教程-导入3D网格

说明:

  • 介绍如何向Gazebo中导入3D网格

准备网格

  • Gazebo使用右手坐标系,其中Z轴正方向向上(垂直),X轴正方向向前(进入屏幕),而Y轴正方向朝向左侧。

  • 降低复杂度,许多网格可能过于复杂。为了提高效率,应该要将具有成千上万个三角形的网格减少三角形或者将其拆分成多个单独的网格。请参阅您使用的3D网格编辑软件的文档,以获取有关减少三角形数量或拆分网格方法的详细信息。

  • 将网格居中,第一步是将网格中心放置在原点(0,0,0)处,并沿x轴定向网格正面(这可以是主观上的正面)。

  • 缩放网格,Gazebo的尺寸使用国际公制(米制)单位。而许多网格(尤其是3D仓库中的网格)则都使用英制单位。请使用您喜欢的3D编辑软件将网格缩放到公制尺寸。

导出网格

  • 一旦网格正确地准备就绪,就可以将其导出为Collada文件。这种文件格式会包含所有的3D信息和材质。

测试网格

  • 测试一个网格的最简单方法就是创建一个简单的世界文件my_mesh.world,这个世界文件会加载该网格。
  • 将该世界文件中网格uri元素的属性值my_mesh.dae替换为您的网格实际文件名即可。
<?xml version="1.0"?>

<sdf version="1.4">

<world name="default">

<include>

<uri>model://ground_plane</uri>

</include>

<include>

<uri>model://sun</uri>

</include>

<model name="my_mesh">

<pose>0 0 0 0 0 0</pose>

<static>true</static>

<link name="body">

<visual name="visual">

<geometry>

<mesh><uri>file://my_mesh.dae</uri></mesh>

</geometry>

</visual>

</link>

</model>

</world>

</sdf>
  • 然后在该世界文件所在目录中启动Gazebo,命令为:
gazebo my_mesh.world

试验网格

  • 可以使用这些duck.dae和duck.png网格文件。
  • 将它们放到与世界文件相同的目录中。
  • 由于鸭子网格的y轴定义为向上,因此要将sdf文件中其视觉元素的位姿进行90°旋转以使其竖直显示
  • 如下所示:
<visual name="visual">

<pose>0 0 0 1.5708 0 0</pose>

<geometry>

<mesh><uri>file://duck.dae</uri></mesh>

</geometry>

</visual>

请输入图片描述

参考:

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros2与gazebo11入门教程