【Gazebo入门教程】第四讲 场景建模/建筑编辑器
文章目录
前言:在先前的博客中,我们分别使用了Gazebo的模型编辑器(可视化方法)和SDF文件实现了对于机器人模型的建模,并简单添加了传感器进行仿真分析,想要进一步地进行实际仿真,就需要对于场景进行建模,创造出机器人所在的环境,本文从场景编辑器出发,介绍如何创建机器人的活动空间。
一、场景编辑器
1.1 打开方式:
(1)启动Gazebo,选择
Edit
,Building Editor
;
(2)启动Gazebo,快捷键Ctrl+B
;
1.2 UI界面分析:
\qquad 1. 调色板
左边绿色的是调色板,可以选择建筑物的特征和材质
\qquad 2. 2D视图
右上黄色的是2D视角,可以导入要描出的楼层平面图(可选),并插入墙,窗,门和台阶
\qquad 3. 3D视图
右下红色的是3D视角,可以预览你的建筑物,你也可以在这里为建筑的不同部分分配颜色和纹理
二、导入平面图
2.1 导入图片
- 场景建造:创建建筑有两种方法,即通过现有的图像作为模板进行设计,或者完全从零开始手动创建建筑场景,注意:此处的模板图像应尽量为激光扫描等清晰图像,此处以前者为例,图片如下:
- 导入图像:
- 点击调色板下方的
Import
按钮。然后将会弹出Import Image
对话框;- 选择平面图所在路径,然后单击
Next
;
2.2 设置分辨率
- 设置分辨率:
【目的:确保图像上的墙以正确比例显示,用像素/米设置图像分辨率,自行计算分辨率的方法如下;】
- 选择一段你知道真实世界长度的线,比如顶壁红框的距离为7.5米;
- 鼠标在墙的一端单击,水平移动鼠标至另一端,再点击一次(显示橙色线);
- 设置
Distance
为真实世界距离,输入对话框,自动重新计算分辨率;- 单击
OK
完成设置
三、添加特征
1. 创建墙壁
- 绘制步骤:
- 在调色板上单击
Wall
;- 在2D视图上,在任意墙角
单击
开始绘制墙体,随鼠标移动,墙的长度会自动显示;- 再次单击取消绘制,进入相邻墙体绘制,使用
Esc/双左击/右击
完成取消绘制
- 注意事项:
- 门窗会在后续步骤中添加,故墙壁绘制可以相对随意,还会进行细致的编辑处理;
- 默认情况下,墙体会以15°和0.25 m递增,并且还会捕捉到现有墙的端点。如果不希望自动补抓,可在绘图时按住Shift进行自由绘画。
- 没有使用调色板内特征时,可以点击2D视图内的特征并拖动进行微调;
- 选中某堵墙,2D视图中会橘黄色高亮该墙壁,继续左键双击,可以打开墙壁检查器Wall Inspector,对数据进行准确操作(修改墙的厚度、长、高等数据)
2. 创建楼层
- 前提:继续添加高层楼层的前提是前一层的墙壁必须创建完毕,通过
+
添加楼层,并在2D视图中选中view
指定楼层,其中当前选中楼层会在3D视图中呈半透明状,低层不透明,高层隐藏,效果如下;
- 注意事项:
- 创建流程:在2D视图的顶部,单击
+
添加一个级别。或者,右键单击2D视图,然后选择Add a level
- 添加新层后,将自动插入地板。如果下面的台阶上有楼梯,则在保存建筑物时,将从地面上挖一个台阶
- 建立新层时复制上一层的所有墙体,并且使用默认材质。没有其他特征被复制。可以手动删除不需要的墙。
3. 添加门窗和台阶
(1)门窗
- 绘制步骤:
- 在调色板上,点击
Window
或Door
;- 在2D视图中移动鼠标时,要插入的特征会随之移动,在3D视图中其对应物也会随之移动
- 单击所需位置以放置特征。
- 注意事项:
- 目前,门窗视为墙上的简单孔/洞;
- 将鼠标悬停在门上时,门窗会自动与墙壁对齐。移动时会显示到墙的末端的距离。
- 在墙壁上添加了相关特征之后,可能很难看到其在平面图中的位置。为了简化操作,可以在2D视图的顶部选择查看或隐藏当前级别的平面图或特征。还可以使用热键来切换可见性,F对应floor和G对应特征;
(2)楼梯
- 绘制步骤:
- 在调色面板上,单击
Stairs
;- 在2D视图中移动鼠标时,要插入的特征会随之移动,在3D视图中其对应物也会随之移动
- 单击所需位置以放置特征,在2D视图内放置后,双击打开台阶检查器
Stairs Inspector
可以更改属性。
4. 添加颜色和质地
- 添加方法:两种方法,分别如下:
1. 从Wall Inspector、Stairs Inspector
和Level Inspector
分别为墙壁,楼梯和地板添加颜色和纹理,随后打开检查器,选择材料,然后选择Apply
完成
2. 从调色板中选择颜色和纹理,点击调色板内的任一特征,鼠标会变成对应特征,再移动鼠标至3D视图内进行编辑既可。添加完成之后,鼠标右键可以退出当前特征的选中:
- 单击调色板中的颜色或纹理
- 在3D视图中移动鼠标时,悬停的功能将突出显示,显示所选材质的预览
- 单击突出显示的功能会为其分配选定的材料,根据需要单击任意数量的功能
- 完成所选材质的操作后,右键单击3D视图,或在任何要素外部单击以退出材质模式
【注意:在高版本的Gazebo中可以通过点击调色板内的More可完成自定义颜色,但要注意目前不支持自定义材质,每个特征只能有一种颜色,和一种材质】
四、编辑与保存建筑
1. 编辑建筑
- 楼层:
- 变更楼层:通过2D视图顶部的下拉列表选择对应楼层
- 编辑楼层:双击2D视图以打开带有层配置选项的检查器。或者,右键单击并选择
Open Level Inspector
- 删除楼层:按2D视图顶部的-按钮删除当前层,或右键单击并选择
Delete Level
- 墙体(门窗操作类似):
- 选中墙体:在2D视图中,单击要编辑的墙;
- 平移和旋转:通过将墙拖动到新位置来平移墙,通过拖动墙的端点之一来调整墙的大小或旋转墙;
- 编辑墙体:在2D视图中双击墙以打开带有配置选项的检查器。或者,右键单击并选择
Open Wall Inspector
。编辑你想要修改的内容,然后按Apply
预览更改- 删除墙体:选中你想要删除的墙体,按下
Delete
键,或在2D视图中右键单击墙体,选择Delete
。
2. 保存建筑
- 修改模型名称:在左上方的
Model Name
中 - 保存步骤:
- 顶部工具栏点击
File -> Save As
(或者Ctrl + S
)- 保存时,会新建一个目录,该目录下存有
.sdf
和配置文件- 在
Advanced Options
里,可以添加名称和描述
- 后续操作:退出建筑编辑器后,进入模型编辑器,
File ->Exit Building Editor
,可以通过Insert
标签中找到该场景并添加完成仿真;
总结
- 内容分析:本篇博客主要介绍了在Gazebo中如何进行场景的建模,通过使用建筑编辑器,导入外部图像文件并手动创建墙体、门窗、楼层等结构,通过对建筑的编辑和创建完成机器人工作环境的设立,采用图文并盛的方式进行细致讲解,完成了创建机器人仿真环境的完整过程。
- 注意:本文参考了Gazebo官方网站以及古月居中的Gazebo有关教程,主要目的是方便自行查询知识,巩固学习经验,无任何商业用途。