< >
Home » ROS2与Gazebo11入门教程 » ROS2与Gazebo11入门教程-为机器人贴上网格

ROS2与Gazebo11入门教程-为机器人贴上网格

说明:

  • 介绍如何为机器人贴上网格

概述

  • 前提条件:已经完成了“制作移动机器人”教程中的任务。

  • 网格可以在视觉上和传感器上为模型增加真实感。

  • 本节教程将展示用户如何使用自定义网格来定义其模型在仿真中的显示方式。

将网格作为视觉贴到模型上

  • 网格最常见的用例是用来创建逼真的外观。

  • 进入到my_robot目录中

cd ~/.gazebo/models/my_robot
  • 打开model.sdf文件
gedit ~/.gazebo/models/my_robot/model.sdf
  • 下面将会向移动机器人底盘的视觉元素添加网格。
  • 用visual name=’visual’找到视觉元素,如下所示:
<visual name='visual'>

<geometry>

<box>

<size>.4 .2 .1</size>

</box>

</geometry>

</visual>
  • 网格可以来自磁盘上的文件,也可以来自其他模型。
  • 本示例将使用来自pioneer2dx模型中的网格。
  • 将视觉元素更改为以下内容(但保持该文件的其余部分不变):
<visual name='visual'>

<geometry>

<mesh>

<uri>model://pioneer2dx/meshes/chassis.dae</uri>

</mesh>

</geometry>

</visual>
  • 查看您本地缓存的模型数据库,以查看是否具有上面块所引用的pioneer2dx模型:
ls -l ~/.gazebo/models/pioneer2dx/meshes/chassis.dae
  • 如果该网格文件不存在,则通过在Gazebo中至少生成一个Pioneer 2DX模型(在“插入”选项卡下-> http://gazebosim.org/models中),以便让Gazebo从模型数据库中下载该模型。

  • 或者手动将该模型文件下载到本地缓存中:

cd ~/.gazebo/models

wget -q -R *index.html*,*.tar.gz --no-parent -r -x -nH http://models.gazebosim.org/pioneer2dx/
  • 在Gazebo中,将My Robot模型拖拽到仿真世界中。
  • 这样移动机器人的底盘视觉会看起来像一个pioneer2dx,如下图所示:

请输入图片描述

  • 对于我们的机器人来说,该底盘显然太大了,因此需要对视觉进行缩放。

  • 修改视觉以使其具有一个缩放比例。

  • 不要复制以下这些行。这些行只是用于参考目的。

<visual name='visual'>

<geometry>

<mesh>

<uri>model://pioneer2dx/meshes/chassis.dae</uri>

<scale>0.9 0.5 0.5</scale>
  • 不要复制以下这些行。这些行只是用于参考目的。
</mesh>

</geometry>

</visual>

请输入图片描述

  • 该视觉还是太低了(z轴方向上)。可以通过指定视觉位姿来将其抬高一些:

  • 不要复制此行。此行只是用于参考目的。

<visual name='visual'>

<pose>0 0 0.05 0 0 0</pose>
  • 不要复制以下这些行。这些行只是用于参考目的。
<geometry>

<mesh>

<uri>model://pioneer2dx/meshes/chassis.dae</uri>

<scale>0.9 0.5 0.5</scale>

</mesh>

</geometry>

</visual>

请输入图片描述

  • 请注意,此时我们只修改了机器人的元素,因此该机器人在GUI中对于基于GPU的传感器(如相机、深度相机和GPU激光器等)来说看起来像是Pioneer 2DX模型的缩小版。
  • 由于没有修改此模型中的元素,因此该盒子几何体仍会被物理引擎用于碰撞动力学并且被基于CPU的射线传感器所使用。

参考:

 - 资料来源 

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

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


标签: ros2与gazebo11入门教程