【Gazebo入门教程】第二讲 模型库导入与可视化机器人建模(模型编辑器)
文章目录
一、模型库导入
- 1.1 下载模型文件
此处的模型文件可以自行寻找下载,这里提供一个链接供大家参考,此文件包含许多常用模型,使用时下载为压缩包格式即可,Ubuntu下解压缩、移动文件的指令链接博客:Ubuntu常见指令 ,下载链接如下:
https://github.com/osrf/gazebo_models
1.2 创建models文件夹
\qquad
指令如下:此处需要注意,gazebo文件夹为隐藏文件,需要
Ctrl + H
解除隐藏
cd /usr/share/gazebo-11
mkdir -p models
\qquad
**此处的gazebo文件夹路径常为/usr/share/gazebo-11等**
- 1.3 拷贝模型文件
- 将压缩包移动到models文件夹下:
sudomv /home/zhaoxu/Downloads/gazebo_models_master.zip /usr/share/gazebo-11/models
- 解压压缩包:转移到指定目录下,使用如下解压指令
sudounzip gazebo_models_master.zip
1.4 测试
\qquad
打开gazebo,在INSERT面板中选择模型导入(需要增加对应路径),效果如下:
二、模型编辑器(以轮式车辆构造为例)
1. 用户界面介绍
- 进入模型编辑器:
- 顶部菜单栏点击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等功能;
2. 轮式车辆实例分析
(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需为**Bal**l,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
总结
- 内容分析:本篇博客主要介绍了在Gazebo中如何导入已有的模型库,并根据一个轮式小车的详细实例对Gazebo中的模型编辑器进行了深入详细研究,通过图形化方式创建关节连杆,并通过设置关节等完成机器人连接,最后添加相应传感器和插件实现机器人的运动和其他功能,下节博客将会讲述如何使用SDF文件在Gazebo中建立机器人模型并完成仿真,敬请期待。
- 注意:本文参考了Gazebo官方网站以及古月居中的Gazebo有关教程,主要目的是方便自行查询知识,巩固学习经验,无任何商业用途
版权归原作者 生如昭诩 所有, 如有侵权,请联系我们删除。