原文链接:http://gazebosim.org/tutorials?cat=guided_b&tut=guided_b3
文章目录
- 模型编辑器(Model Editor)用户界面
- 选项板/左面板(Palette)
- 工具栏 Toolbar
- 模型编辑器的局限性
- 简单小车的构造
-
- 保存你的模型
现在我们将构建我们的简单机器人。 我们将制造一辆轮式车辆,并添加一个传感器,使机器人能够跟随一个斑点(人)。
模型编辑器允许我们在图形用户界面(GUI)中构建简单的模型。 对于更复杂的模型,您需要学习如何编写SDF文件,并查看有关构建机器人的教程。 但是现在,我们现在可以在Gazebo GUI中做一切的事情!
模型编辑器(Model Editor)用户界面
要进入Model Editor,请单击菜单栏中的Edit
并选择Model Editor
。 或者使用热键Ctrl+M。当你在模型编辑器中时,仿真将立即暂停。
模型编辑器界面看起来类似于主Gazebo UI,但有一些细微的不同。 左侧面板和顶部工具栏现在仅包含用于编辑和创建模型各部分的小部件。 由于现在暂停了仿真,因此显示仿真数据的底部工具栏处于隐藏状态。
- Toolbar 工具栏-包含用于编辑模型的工具;
- Palette 面板-也称为左侧面板。 有两个用于编辑模型的选项卡;
- Insert tab 插入选项卡-用于添加链接和嵌套模型的工具;
- Model tab 模型选项卡-允许编辑模型属性和内容。
选项板/左面板(Palette)
左面板有两个选项卡。
工具栏 Toolbar
与在模拟模式中一样,模型编辑器中的主工具栏包括用于与场景中的对象交互的工具(请参见用户界面教程)。
可用的工具包括选择、平移、缩放、旋转、撤消和重做、复制和粘贴、对齐、捕捉、视图调整和关节创建。
模型编辑器的局限性
模型编辑器支持通过编写SDF可以完成的大多数基本模型构建任务。 但是,有几个功能尚未提供:
- 编辑嵌套模型和嵌套模型中的链接;
- 添加和编辑某些几何类型,包括平面和折线;
- 支持高度图;
- CAD 功能。
简单小车的构造
创建一个小车
本节提供有关在模型编辑器中创建简单车辆模型的分步说明。
底盘
- 首先,我们将创建车辆底盘。 在左侧面板的Insert选项卡中,单击一次长方体图标,将光标移动到场景中的任意位置,然后再次单击以释放长方体。
- 接下来,调整长方体的大小,使其看起来更像汽车底盘的形状。 我们可以通过选择位于顶部工具栏上的缩放工具来完成此操作。 选择场景中的长方体,长方体上方应该会出现一个RGB颜色的标记。 红色标记表示X轴,绿色表示Y,蓝色表示Z。将鼠标移到红色标记上以高亮显示它,然后单击并拖动以使机箱沿X轴加长。 对机箱进行缩放,使其大约有2米长。 您可以通过查看地面上的1x1米栅格来估计这一点。
- 现在使用缩放工具展平机箱。 单击并向下拖动蓝色标记,使机箱大约是其原始大小的一半。
- 我们想把底盘降低到离地面更近的地方。 为了提供精确的测量,我们将使用链接检查器
Link Inspector
。 双击该底盘以调出Inspector。 向下滚动到链接选项卡的底部以找到姿势Pose
参数,并将Z
更改为0.4m,然后在框外单击(不要按Enter键)。 单击OK
保存更改并关闭检查器。
前轮
-
让我们继续讨论前轮。 首先从左侧面板上的Insert(插入)选项卡插入一个圆柱体。
-
处于默认方向的圆柱体是不能滚动的。 让我们使用链接检查器Link Inspector
沿X轴旋转它。 双击圆柱体,打开链接检查器 Link Inspector滚动到底部的姿势部分,将侧滚Roll
更改为1.5707弧度(90度),然后在框外单击。 暂时不要关闭链接检查器 Link Inspector。
-
接下来,通过给出精确的尺寸来调整轮子的大小。转到“视觉“Visual
选项卡查看此链接中的视觉对象列表。应该只有一个。通过单击可视文本标签旁边的小箭头展开可视项。向下滚动到“几何体” Geometry
部分,将“半径”Radius
更改为0.3m,将“长度”Length
更改为0.25m。
-
现在,您应该看到一个较大的圆柱体内部有一个较小的圆柱体。 这是意料之中的,因为我们只更改了视觉几何体,而没有更改碰撞 collision。 “视觉”是链接的图形表示,不影响物理仿真。 另一方面,物理引擎使用“冲突” 'collision’进行冲突检查。 若要同时更新控制盘的碰撞 ‘collision’,请转到碰撞选项卡 collision
,展开唯一的碰撞项,然后输入相同的几何尺寸。 半径Radius
:0.3m,长度Length
:0.25m。 单击OK保存更改并关闭Inspector。
-
现在我们已经创建了第一个轮子,我们将使用它作为模板并制作另一个轮子。 选择控制盘并单击顶部工具栏中的复制图标
-
单击粘贴图标并将鼠标移回场景以插入副本。
现在,让我们通过沿X轴正方向(场景中的红色标记)对齐底盘来确保车辆正确行驶。在下一步中添加车轮时,请确保车轮位于沿X轴正方向延伸的车辆末端。
-
底盘和车轮目前都是自由移动的车身。 为了约束它们的运动,我们将在每个轮子和底盘之间添加关节。 单击顶部工具栏中的关节Joint
图标以打开关节创建对话框。
-
”关节创建“'Joint Creation'
对话框包含通常为关节指定的关节属性。 在配置任何属性之前,系统会提示您选择关节的父链接和子链接。 将鼠标移动到场景中的底盘上,看到它突出显示,然后单击它,将其设置为关节的父节点。
-
将鼠标移到左前轮;现在应该会有一条线从机箱的起点延伸到鼠标的末端。 单击控制盘以将其设置为关节的子项。 将创建一个新运动类型。 默认情况下,它是旋转运动类型(如对话框中的运动类型 Joint Types
部分所示),恰好是我们需要的运动类型。
注意:此时更改视角可能会很有用。这可以在上面的工具栏中完成;单击带有橙色边的立方体图标。
-
接下来,我们需要配置车轮的旋转轴。 在关节创建对话框中,找到关节轴 Joint axis
部分,并将轴更改为Z
(0,0,1)。 注意轮子上的RGB关节视觉。 您应该会看到,现在关节视觉的蓝色箭头上方会出现一个黄色的圆环,表示它是旋转轴。
-
为了使车轮与底盘对齐,我们将在关节创建对话框的对齐关节 Align links
部分使用不同的对齐选项。 首先,我们将在 X
轴对齐,所以单击 X 最大对齐X Align Max
选项,以查看对齐的结果。 圆柱体应该突出显示,以表明其姿态已经改变。
-
在我们的示例中,我们希望将车轮与底盘平齐放置。若要拉近车轮,请单击“Y向最大对齐”Y Align Max
选项。然而,这还不是我们想要的。单击Y对齐选项旁边的反转Reverse
选项,将车轮的最小值(最大值的反转)与底盘的最大值对齐。请注意,“反转”Reverse
选项将应用于子链接,因为下面下拉列表中显示的默认对齐配置是从子到父Child to Parent
的。如果设置了父到子Parent to Child
的配置,则反向Reverse
选项将应用于父链接。点击创建Create
。
-
若要将车轮放置在地面上,请双击车轮以打开“链接检查器”。我们可以使用对话框底部的Pose
部分来移动车轮。假设车轮的半径为0.3米,继续将Z
位置更改为0.3米以放置在地面上,然后按“确定”OK
。
-
对另一个前轮重复关节创建过程和轴配置,确保 a)底盘是关节的父级,车轮是子级,b)旋转轴设置为Z,以及 c)使用Y Align Min选项将右车轮与底盘另一侧对齐。
后轮
- 要为车辆制作后轮,请单击左侧面板上的球体按钮并将其插入到场景中。
- 通过以与前轮相同的方式为球体指定精确尺寸来调整球体大小。 转到
Visual
选项卡以查看此链接中的可视对象列表,展开唯一的可视项目,向下滚动到Geometry
部分,并将Radius
更改为0.2m。 确保也对冲突collision
选项卡中的冲突执行相同的操作。
- 要在后轮和底盘之间创建关节,请通过单击顶部工具栏中的关节图标来调出关节创建对话框。 将鼠标移至场景,并选择车体作为父链接,选择球体作为子链接。
- 与前轮关节不同,脚轮向所有方向滚动,没有特定的旋转轴。 在Gazebo中,这是使用滚珠关节模拟的。 因此,在“关节类型”
Joint types
区域下,选择“滚珠Ball
运动类型”选项。 您应该在场景中看到关节视觉更改颜色,以指示已设置不同的关节类型。
- 接下来,将后轮对齐,使其与车体居中,并位于后端。 在对齐链接区域中,选择Y对齐中心
Y Align Center
选项以使两个链接在Y
轴上居中,并选择X对齐最小 X Align Min
选项以移动后轮,使其放置在车辆后方的右侧。 按创建 Create
按钮以完成关节创建过程。
- 最后,调整后轮的位置,使其位于地面上方。 通过打开链接检查器并将
Z
位置设置为0.2m来执行此操作。
添加传感器
我们要加到车里的传感器是一个深度相机传感器,它将帮助我们探测车前的物体。 在本教程中,我们将从模型数据库中插入现有的传感器模型。
- 转到选项板(左侧面板)并选择
Insert
选项卡,以查看Model Database
部分中可用的模型列表。
- 列表中的模型按它们所在的路径进行组织。 如您所见,第一个列表包含本地计算机上可用的型号,如标题中的路径所示。你可以从在线模型数据库下载一些普遍的模型。模型的网站为https://bitbucket.org/osrf/gazebo_models/src/default/,这些模型是按字母顺序排列的。 在列表中可以看到深度相机 Depth Camera。可以使用以下命令单独下载这个模型:
hg clone https://bitbucket.org/osrf/gazebo_models/depth_camera
建议下载到Model Database
的第一个路径下。
然后单击它开始下载模型。如果网速太慢clone不了,可以尝试自己新建/depth_camera
的文件夹和model.config
及mode.sdf
文件,将网站中文件的内容复制进去。需要重启Gazebo后才能在原路径下显示新建的深度相机模型,重启前一定要保存小车模型,请跳到最后一步查看如何保存模型。 - 重启Gazebo后,在“插入”面板找到刚才保存的模型,在模型上右键,选择编辑模型,重新进入编辑模式。这时我们将深度相机加入场景。它看起来像一个小立方体。 将鼠标移到场景上,然后单击汽车前面的空白区域以插入深度摄影机。
- 选择顶部工具栏中的平移工具,然后移动深度摄影机,使其位于车辆前面的底盘顶部,并大致居中于
Y
轴。
5. 接下来,将深度相机固定到车体上。 单击顶部工具栏中的关节Joint
图标以打开关节创建对话框。 将鼠标移至场景,并选择车体作为父链接,选择深度摄影机作为子链接。
- 在关节创建对话框中的关节类型
Joint Types
部分下,选择固定关节 Fixed
选项,然后单击创建 Create
以完成关节的创建。
添加插件
到目前为止,我们创建的车辆已经配备了所有的物理和传感器组件。 但是,它不会真正起到什么作用,只是静止不动,并在模拟中生成深度数据。 通过允许模型执行传感器数据处理、路径规划和控制等计算,插件是增强模型自主性的好方法。 为简单起见,本教程将使用我们车辆的现有插件。 请注意,您可以创建自己的插件,但这需要编写代码。 请参阅插件教程。
-
转到左侧面板并选择Model
选项卡,以查看构成您构建的汽车模型的部件。
-
在Model Plugins
下面,您应该看到一个Add
按钮。 点击它可以打开一个Model plugin Inspector
,它允许您向模型中添加一个新的插件。
-
首先,给插件命名。 在Plugin Name
字段中输入‘follower’。 插件名称在此模型中必须是唯一的。
-
我们将要使用的插件名为libFollowerPlugin.so
, 请在Filename
字段中输入此插件名。 文件名对应于存储在本地计算机上的插件库的实际文件名。 它以动态链接的共享对象库的形式存在,因此有命名约定和扩展名.so
(在Linux上)。 如果您在其他操作系统上使用 Gazebo,请不要担心,因为扩展会自动替换为正确的扩展。
-
follower
插件不需要任何附加参数,因此可以将Innerxml
字段留空。注意:这是一个用于演示的简单插件。插件通常具有各种相关参数,例如,差速驱动插件需要指定控制左右车轮的接头名称,以便能够将车辆移动到正确的方向。在follower
插件的情况下,它对它所连接的模型类型进行了许多假设,并尝试自动查找关节和传感器
-
单击OK
以添加插件。 该插件现在应该出现在左面板中的Model Plugins
下。
保存你的模型
- 通过转到
File
菜单并选择另存为Save As
来保存模型。 输入模型的名称,然后单击保存 Save
。
- 通过转到
File
并选择Exit Model Editor
退出Model Editor
。 Gazebo 现在应该切换回正常模拟模式。 点击Play
按钮以运行模拟。
- 要测试插件是否正常工作,请在汽车前面插入一个框,然后看到汽车慢慢地朝它移动。
如果您想稍后再次编辑该模型,只需在其上单击鼠标右键,然后在上下文菜单中选择Edit Model
。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)