目录
一、前言
二、何为Gazebo?
1)Gazebo 的典型用途包括:
2)Gazebo 的一些主要功能包括:
三、Gazebo的运行环境
四、如何实现编辑
4.1 进入基本界面
4.2 调色板(左面板)
五、创建车辆
5.1 机壳
5.2 前轮
5.3 脚轮
六、添加传感器
七、添加插件
八、保存您的模型
一、前言
欢迎来到初学者模块!一般的机器人开发顺序是:1)设计你的机器人、2)然后仿真;3)模块开发。然而如何设计机器人?gazebo就是工具。
本模块将引导您了解 Gazebo 的最基本功能。我们将构建一个简单的车辆来演示这些功能。 这些教程适用于 Gazebo 新手和/或没有编程或 Linux 经验的人。 每个教程都建立在上一个教程的基础上,因此我们建议您按顺序学习这些教程。
二、何为Gazebo?
Gazebo 是一款 3D 动态模拟器,能够准确有效地模拟复杂室内和室外环境中的机器人种群。虽然类似于游戏引擎,但 Gazebo 提供了更高保真度的物理模拟、一套传感器以及用于用户和程序的接口。
1)Gazebo 的典型用途包括:
测试机器人算法,设计机器人,使用真实场景执行回归测试2)Gazebo 的一些主要功能包括:
多个物理引擎,丰富的机器人模型和环境库,各种各样的传感器,方便的程序和图形界面三、Gazebo的运行环境
Gazebo 目前最好在 Ubuntu 上使用,这是一种 Linux 风格。您将需要一台具有以下功能的计算机:
专用GPU,Nvidia 显卡在 Ubuntu 中运行良好至少是 Intel I5 或同等处理器的 CPU,至少 500MB 的可用磁盘空间,安装了 Ubuntu Trusty 或更高版本。四、如何实现编辑
4.1 进入基本界面
键入gazebo后,进入界面;选择菜单中Editor-> model edit,进入如下编辑窗口
以上区域分别为:
工具栏 - 包含用于编辑模型的工具调色板 - 也称为左面板。有两个用于编辑模型的选项卡。插入选项卡 - 用于添加链接和嵌套模型的工具模型选项卡 - 允许编辑模型属性和内容
4.2 调色板(左面板)
【1】调色板
有两个选项卡。insert和model
1)插入:
插入选项卡是您将新部件(链接和模型)添加到模型编辑器的位置。共有三个部分。
简单形状:这些是可以插入以在模型中形成链接的原始几何形状。自定义形状:添加按钮允许您从模型中的链接导入自定义网格。它目前支持 COLLADA (.dae)、3D Systems (.stl)、Wavefront (.obj) 和 W3C SVG (.svg) 文件。(生成软件有Blender,Maya,SolidWork)模型数据库:有一个模型列表。这些可以像简单形状一样插入到模型编辑器中。插入后,它们被称为嵌套模型。2)模型:
模型选项卡允许您设置正在构建的模型的名称和基本参数。它显示模型中的链接、关节、嵌套模型和插件的列表。可以使用 Link Inspector 修改参数。可以使用这些方法中的任何一种打开它。
双击列表中的项目双击场景中的项目右键单击列表中的项目并选择打开链接检查器右键单击场景中的项目并选择打开链接检查器【2】工具栏
与模拟模式一样,模型编辑器中的主工具栏包括用于与场景中的对象交互的工具。可用的工具有选择、平移、缩放、旋转、撤消和重做、复制和粘贴、对齐、捕捉、视图调整和关节创建。
【3】限制
模型编辑器支持大多数可以通过编写 SDF 完成的基本模型构建任务。但是,有一些功能尚不可用:
编辑嵌套模型和嵌套模型中的链接。添加和编辑某些几何类型,包括平面和折线。支持高度地图。CAD 功能。五、创建车辆
本节提供有关在模型编辑器中创建简单车辆模型的分步说明。
5.1 机壳
1)首先,我们将创建车辆底盘。在左侧面板的 Insert 选项卡中,单击 Box 图标一次,将光标移动到场景中的任意位置,然后再次单击以释放框。
2) 接下来,调整框的大小,使其看起来更像汽车底盘的形状。我们可以通过选择位于顶部工具栏上的缩放工具来做到这一点。选择场景中的方框,方框上方应出现一个 RGB 色标记。红色标记代表 X 轴,绿色代表 Y,蓝色代表 Z。将鼠标移到红色标记上使其突出显示,然后单击并拖动以使机箱沿 X 轴更长。缩放机箱使其大约 2 米长。您可以通过查看地面上的 1x1 米网格来估计这一点。
3)现在使用 Scale 工具将机箱压平。单击并向下拖动蓝色标记,使机箱大约是其原始尺寸的一半。
我们希望将底盘降低到更靠近地面的位置。为了给出精确的测量值,我们将使用 Link Inspector。双击该框以调出 Inspector。向下滚动到 Link 选项卡的底部以找到 Pose 参数并将 Z 更改为 0.4m,然后在框外单击(不要按 Enter)。单击确定保存更改并关闭检查器。
5.2 前轮
1)让我们继续讨论前轮。首先从左侧面板的“插入”选项卡中插入一个圆柱体。
2)默认方向的圆柱体不会滚动得很好。让我们使用 Link Inspector 沿 X 轴旋转它。双击圆柱体,滚动到底部的 Pose 部分,将 Roll 更改为 1.5707 弧度(90 度)并在框外单击。暂时不要关闭 Inspector。
3)接下来,通过给它精确的尺寸来调整轮子的大小。转到视觉选项卡以查看此链接中的视觉对象列表。应该只有一个。通过单击可视文本标签旁边的小箭头展开可视项。向下滚动到几何部分并将半径更改为 0.3m,将长度更改为 0.25m。
4)你现在应该看到一个更大的圆柱体里面有一个更小的圆柱体。这是意料之中的,因为我们只改变了视觉几何而不是碰撞。 “视觉”是链接的图形表示,不影响物理模拟。另一方面,物理引擎使用“碰撞”进行碰撞检查。要同时更新车轮的碰撞,请转到 Collision 选项卡,展开唯一的碰撞项,然后输入相同的几何尺寸。半径:0.3m,长度:0.25m。单击确定以保存更改并关闭检查器。
5)现在我们已经创建了第一个轮子,我们将使用它作为模板并制作另一个。选择滚轮并单击顶部工具栏中的复制图标。
6)单击粘贴图标并将鼠标移回场景以插入副本。
现在让我们通过沿正 X 轴(场景中的红色标记)对齐底盘来确保车辆能够正确行驶。在下一步中添加车轮时,请确保它们位于沿正 X 轴延伸的车辆末端。
7)底盘和车轮目前是自由移动的车身。为了约束它们的运动,我们将在每个车轮和底盘之间添加关节。单击顶部工具栏中的关节图标以打开关节创建对话框。
8)“关节创建”对话框包含通常为关节指定的关节属性。在配置任何属性之前,系统会提示您选择关节的父链接和子链接。将鼠标移到场景中的底盘上以使其突出显示,然后单击它以将其设置为关节的父级。
9)将鼠标移动到左前轮;现在应该有一条线从机箱的原点延伸到鼠标的末端。单击轮子将其设置为关节的子项。一个新的关节被创建。默认情况下,它是一个旋转关节(如对话框中的关节类型部分所示),恰好是我们想要的关节类型。
注意:您可能会发现此时更改视角很有用。这可以在上部工具栏中完成;单击带有橙色边的立方体图标。
10)接下来,我们需要配置轮子的旋转轴。在 Joint Creation 对话框中,找到 Joint axis 部分并将轴更改为 Z (0, 0, 1)。注意车轮上的 RGB 关节视觉效果。您应该看到一个黄色环现在出现在关节视觉的蓝色箭头上,表明它是旋转轴。
11)要对齐底盘旁边的车轮,我们将使用“关节创建”对话框的“对齐链接”部分中的不同对齐选项。首先我们将在 X 轴上对齐,所以点击 X Align Max 选项来查看对齐的结果。圆柱体应突出显示以指示其姿势已更改。
12)在我们的示例中,我们希望将车轮与底盘齐平。要使车轮更靠近,请单击 Y Align Max 选项。然而,这还不是我们想要的。单击 Y 对齐选项旁边的反向选项,将车轮的最小值(最大值的反向)与底盘的最大值对齐。请注意,反向选项应用于子链接,因为下面的下拉列表中显示的默认对齐配置是子到父。如果设置了父到子配置,则反向选项将应用于父链接。按创建。
13)要将轮子定位在地面上方,请通过双击轮子打开链接检查器。我们可以使用对话框底部的 Pose 部分来移动滚轮。假设轮子的半径为 0.3m,继续将 Z 位置更改为 0.3m 以放置在地面上,然后按确定。
14)对另一个前轮重复关节创建过程和轴配置,确保 a) 底盘是关节的父级,车轮是子级,b) 旋转轴设置为 Z,c) 使用Y Align Min 选项将右轮与底盘的另一侧对齐。
5.3 脚轮
1)要为车辆制作脚轮,请单击左侧面板上的 Sphere 按钮并将其插入场景中。
2)通过以与前轮相同的方式为其提供精确尺寸来调整球体的大小。转到 Visual 选项卡以查看此链接中的视觉对象列表,展开唯一的视觉项目,向下滚动到几何部分并将半径更改为 0.2m。确保对碰撞选项卡中的碰撞也执行相同的操作。
3)要在脚轮和底盘之间创建接头,请通过单击顶部工具栏中的接头图标打开“接头创建”对话框。将鼠标移动到场景并选择底盘作为父链接,球体作为子链接。
4)与前轮接头不同,脚轮可向各个方向滚动,并且没有特定的旋转轴。在 Gazebo 中,这是使用球形接头进行模拟的。因此,在关节类型部分下,选择球关节选项。您应该会看到场景中的关节视觉效果会改变颜色,以指示已设置了不同的关节类型。
5)接下来,对齐脚轮,使其与底盘居中并位于后端。在 Align links 部分中,选择 Y Align Center 选项以使两个链接在 Y 轴上居中,然后选择 X Align Min 选项以移动脚轮,使其正好放置在车辆的后部。按创建按钮完成联合创建过程。
6)最后,定位脚轮,使其刚好位于地面上方。通过打开 Link Inspector 并将 Z 位置设置为 0.2m 来执行此操作。
六、添加传感器
我们将添加到汽车中的传感器是深度摄像头传感器,它将帮助我们检测汽车前方的物体。在本教程中,我们将从模型数据库中插入一个现有的传感器模型。
1)转到 Palette(左侧面板)并选择 Insert 选项卡以查看 Model Database 部分中可用的模型列表。
2)列表中的模型按它们所在的路径进行组织。如您所见,第一个列表包含本地计算机上可用的模型,如标题中的路径所示。如果您是第一次使用,您可能不会在列表中看到很多型号。当您从在线模型数据库下载它们时,会出现更多。找到路径为 http://gazebosim.org/models/ 的列表并展开它以查看在线模型数据库中可用的模型。
3)模型按字母顺序排列。在列表中找到深度相机并单击它以开始下载模型。这可能需要几秒钟,具体取决于网络连接。
4)下载完成后,您应该会看到深度相机模型出现在场景中。它看起来像一个小立方体。将鼠标移到场景上,然后单击汽车前面的空白区域以插入深度摄像头。
5)选择顶部工具栏中的平移工具并移动深度相机,使其位于车辆前部的底盘顶部并大致位于 Y 轴的中心。
6)接下来,将深度摄像头固定在底盘上。单击顶部工具栏中的关节图标以打开关节创建对话框。将鼠标移动到场景并选择底盘作为父链接,深度相机作为子链接。
7)在关节类型部分下的关节创建对话框中,选择固定关节选项,然后单击创建以完成关节的创建。
七、添加插件
到目前为止,我们制造的车辆已完成所有物理和传感器组件。然而,它并不会真正做太多,而是保持静止并在模拟中生成深度数据。插件是一种通过允许模型执行传感器数据处理、路径规划和控制等计算来增强模型自主性的好方法。为简单起见,本教程将使用我们车辆的现有插件。请注意,可以创建自己的插件,但需要编写代码。请参阅插件教程。
1)转到左侧面板并选择模型选项卡以查看构成您构建的汽车模型的部件。
2)在 Model Plugins 下,您应该会看到一个 Add 按钮。单击它会弹出一个模型插件检查器,让您可以将新插件添加到模型中。
3首先,为插件命名。在插件名称字段中输入关注者。插件名称在此模型中必须是唯一的。
4)我们将要使用的插件名为 libFollowerPlugin.so,因此请在 Filename 字段中输入它。文件名对应于存储在本地计算机上的插件库的实际文件名。它以动态链接的共享对象库的形式存在,因此命名约定和扩展名为 .so(在 Linux 上)。如果您在其他操作系统上使用 Gazebo,请不要担心,因为扩展会自动替换为正确的扩展。
5)Follower 插件不需要任何额外的参数,因此您可以将 Innerxml 字段留空。注意:这是一个用于演示目的的简单插件。插件通常具有相关的各种参数,例如差速驱动插件需要指定控制左右轮的关节名称,以便它可以使车辆朝正确的方向移动。在追随者插件的情况下,它会对其附加的模型类型做出许多假设,并尝试自动找到关节和传感器。
6)单击确定以添加插件。该插件现在应该出现在左侧面板的模型插件下。
八、保存您的模型
1)通过转到文件菜单并选择另存为来保存模型。输入模型的名称并单击保存。
2)通过转到文件并选择退出模型编辑器来退出模型编辑器。 Gazebo 现在应该切换回正常的模拟模式。点击播放按钮运行模拟。
3)要测试插件是否正常工作,请在汽车前面插入一个盒子,然后观察汽车缓慢地向它移动。
如果您想稍后再次编辑模型,只需右键单击它并在上下文菜单中选择编辑模型。
Gazebo手册:【2】如何建立建筑物模型_