此处的模型文件可以自行寻找下载,这里提供一个链接供大家参考,此文件包含许多常用模型,使用时下载为压缩包格式即可,Ubuntu下解压缩、移动文件的指令链接博客:Ubuntu常见指令 ,下载链接如下:
https://github.com/osrf/gazebo_models
\qquad 指令如下:此处需要注意,gazebo文件夹为隐藏文件,需要Ctrl + H
解除隐藏
cd /usr/share/gazebo-11
mkdir -p models
\qquad 此处的gazebo文件夹路径常为/usr/share/gazebo-11等
- 将压缩包移动到models文件夹下:
sudo mv /home/zhaoxu/Downloads/gazebo_models_master.zip /usr/share/gazebo-11/models
- 解压压缩包:转移到指定目录下,使用如下解压指令
sudo unzip gazebo_models_master.zip
\qquad 打开gazebo,在INSERT面板中选择模型导入(需要增加对应路径),效果如下:
- 顶部菜单栏点击Edit,选择Model Editor
- 使用热键Ctrl + M
\qquad 注意:进入模型编辑器后主界面仿真将会暂停,底部工具栏会隐藏,其余与主界面很相似,具体如下
① 工具栏:编辑模型的工具
\qquad 工具包含与场景对象交互的工具,从左到右分别是:
平移、缩放、旋转、撤销与重做、复制和粘贴、对齐、捕捉、视图调整及联合创建
② 调色板:左面板
\qquad 左面板具体包含INSERT选项卡和MODEL选项卡,具体介绍如下
\qquad (1)INSERT选项卡
- 简单形状:基本几何形状,在模型中形成链接;
- 自定义形状:从模型链接中导入自定义网格,支持COLLADA(.dae),3D Systems(.stl),Wavefront(.obj)和W3C SVG(.svg)文件
- 模型数据库:模型列表,可按与简单形状相同方式插入;
\qquad (2)MODEL选项卡
\qquad 注意:修改参数使用Link Inspector,打开方式如下,具体内部界面在实例中解释:
- 双击模型列表中的项目;
- 右键单击列表中的项目,选择Open Link Inspector;
- 双击场景中的项目;
- 右键单击场景中的项目,选择Open Link Inspector;
③ 可视化建模的缺陷:需要通过SDF文件完成
- 无法编辑嵌套模型及其中的链接;
- 无法添加和编辑类似于“平面、折线”等几何图形;
- 不支持高度图、CAD等功能;
(1)底盘
\qquad ① 创建底盘(INSERT)
\qquad 左侧面板的INSERT选项卡,单击box图标,拖动移到场景中的目标位置,单击释放:
\qquad ② 调整底盘尺寸(工具栏缩放)
\qquad 首先选中缩放工具,然后在主界面选中底盘,出现RGB标记,红色标记代表X轴,绿色代表Y,蓝色代表Z,单击拖动对应标记缩放底盘,目标2m长(地面网格单位1m),高度为原本一半;
\qquad ③ 修改底盘位置(Link Inspector)
\qquad 打开底盘对应的关节检查器,其中Link负责设置质量惯性密度等特性,Visual负责设置形状尺寸,Collision负责设置碰撞边界,此处需要修改Link选项卡中的Pose参数,修改Z = 0.4m,然后选择OK保存更改并退出
(2)前轮
\qquad ① 插入并修改轮子(INSERT&Link Inspector)
\qquad 首先从INSERT选项卡中插入圆柱体(最左侧简单形状),紧接着使用Link Inspector进行修改,将Pose中的Roll角调整为1.5707rad即90°,然后打开Visual栏,展开可视项,将Geometry中的Radius和Length分别调整为0.3m和0.25m,同样打开Collision栏,重复Visual中的操作,保存并关闭
注意:第一步是为了旋转圆柱,第二步是为了调整视觉尺寸,第三步是调整碰撞模拟尺寸
\qquad (如果visual和collision有差别,会出现圆柱内套圆柱即穿模的情况)
\qquad ② 复制轮子并构建关节联系(Create Joint)
\qquad 首先,选中轮子后,选中工具栏中的复制图标,然后单击粘贴图标在场景中插入复制轮:
\qquad 给车轮和底盘间添加关节,单击工具栏上的Joint图标,进入Create Joint框:单击底盘将其设置为父代,单击轮子设置为子代,Joint Types选择为Revolute(旋转关节)
\qquad 配置旋转轴:将Joint axis修改为Z(0,0,1);对齐车轮与底盘:使用Joint Creation中的Align links,单击X Align Max(x栏的第三个),单击Y Align Max(Y栏的第三个),并选中右侧Reverse,将轮子的最小值(最大值的反方向)与底盘的最大值对齐,完成后将另一个轮子重复操作(此时Y Align Max应选第一个)
注意:为位置标准化,可将底盘位置设置为(2.0,0.787,0.332),设置好关节后将两个前轮高度设为0.3m
(3)万向轮
\qquad 首先插入一个球体,设置球体半径为0.2m,紧接着创建关节,注意:Joint types需为Ball,x轴最小对齐,y轴居中对齐,最后将小球的Z调整为0.2m即可(可从model栏中选中小球)
(4)传感器
\qquad 在INSERT中Model Database找到已有库,添加深度相机(Depth Camera),平移放置在大概y轴中间、小车上方,紧接着创建固定关节,令Joint types为Fixed即可,图示如下:
(5)插件(增强模型)
\qquad 在左侧栏中MODEL选项卡,在Model Plugins下单击Add按钮,进入Model Plugin Inspector界面,按照下图所示添加插件并保存即可:
注意:Filename对应于本地计算机上存储的插件库的实际文件名。它以动态链接的共享库的形式存在,因此具有命名约定和扩展名.so(在Linux上),且由于Innerxml字段留空,在使用follower插件的情况下,它会对其附加的模型类型做出许多假设,并尝试自动找到关节和传感器
(6)保存模型
\qquad File菜单中选择Save As来保存模型,保存后再次进入 File菜单中选择Exit Model Editor退出模型编辑器回归仿真界面,可以通过插入其他物体开启播放观察汽车移动,编辑模型则需要右键单击小车并选择Edit Model