【Gazebo入门教程】第二讲 模型库导入与可视化机器人建模(模型编辑器)
【Gazebo入门教程】第二讲 模型库导入与可视化机器人建模(模型编辑器)
文章目录
- 【Gazebo入门教程】第二讲 模型库导入与可视化机器人建模(模型编辑器)
- 一、模型库导入
- 二、模型编辑器(以轮式车辆构造为例)
- 1. 用户界面介绍
- 2. 轮式车辆实例分析
- 总结
一、模型库导入
- 1.1 下载模型文件
此处的模型文件可以自行寻找下载,这里提供一个链接供大家参考,此文件包含许多常用模型,使用时下载为压缩包格式即可,Ubuntu下解压缩、移动文件的指令链接博客:Ubuntu常见指令 ,下载链接如下:
https://github.com/osrf/gazebo_models
- 1.2 创建models文件夹
\qquad指令如下:此处需要注意,gazebo文件夹为隐藏文件,需要Ctrl + H
解除隐藏
cd /usr/share/gazebo-11mkdir -p models
\qquad此处的gazebo文件夹路径常为/usr/share/gazebo-11等
- 1.3 拷贝模型文件
- 将压缩包移动到models文件夹下:
sudo mv /home/zhaoxu/Downloads/gazebo_models_master.zip /usr/share/gazebo-11/models
- 解压压缩包:转移到指定目录下,使用如下解压指令
sudo unzip 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需为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
总结
- 内容分析:本篇博客主要介绍了在Gazebo中如何导入已有的模型库,并根据一个轮式小车的详细实例对Gazebo中的模型编辑器进行了深入详细研究,通过图形化方式创建关节连杆,并通过设置关节等完成机器人连接,最后添加相应传感器和插件实现机器人的运动和其他功能,下节博客将会讲述如何使用SDF文件在Gazebo中建立机器人模型并完成仿真,敬请期待。
- 注意:本文参考了Gazebo官方网站以及古月居中的Gazebo有关教程,主要目的是方便自行查询知识,巩固学习经验,无任何商业用途
【Gazebo入门教程】第二讲 模型库导入与可视化机器人建模(模型编辑器)相关推荐
- 【Gazebo入门教程】第四讲 场景建模/建筑编辑器
[Gazebo入门教程]第四讲 场景建模/建筑编辑器 文章目录 [Gazebo入门教程]第四讲 场景建模/建筑编辑器 一.场景编辑器 1.1 打开方式: 1.2 UI界面分析: 二.导入平面图 2.1 ...
- 【Gazebo入门教程】第六讲 控制器插件的编写与配置(下)
[Gazebo入门教程]第六讲 控制器插件的编写与配置(下) \qquad 文章目录 [Gazebo入门教程]第六讲 控制器插件的编写与配置(下) 一.系统插件 二.Velodyne传感器插件 1. ...
- 【Gazebo入门教程】第一讲 Gazebo的安装、UI界面、SDF文件介绍
[Gazebo入门教程]第一讲 Gazebo的安装.UI界面.SDF文件介绍 文章目录 [Gazebo入门教程]第一讲 Gazebo的安装.UI界面.SDF文件介绍 一.Gazebo的简介与安装 1. ...
- 生日祝福小程序_广告配音剪映零基础入门教程第二十六篇:如何给朋友制作生日祝福视频...
经常听到小伙伴问到生日祝福视频怎么做,当然我想既然要为他人做生日祝福视频,那么这个人必定是自己身边比较重要的人,而生日又是每个人都是非常重要的,在这种充满意义的时刻,我们想给自己极其重要的人送上一份祝 ...
- 九宫怎么排列和使用_广告视频配音剪映零基础入门教程第二十三篇:剪辑之九宫格教程...
朋友圈最火九宫格视频你们知道是怎样制作的吗?我们常常在玩朋友圈的时候想用九宫格照片,但是你们有没有遇到这种情况,想玩九宫格却发现找不到那么多能用的照片,那这时候怎么办呢?玩腻了平常图片的发法,今天我们 ...
- DirectX11入门教程——第二篇:DirectX11的基础知识
本系列系作者原创,可随便转发但一定要注明出处 刚才明明说尽量不跳章的,为啥一进来就变成第二章,这里首先用几句话说明一下原因:因为第一章我想留给更基础更概念的GPU发展史和管线描述.在此对不起大家了.不 ...
- 【Gazebo入门教程】第三讲 SDF文件的静/动态编程建模
[Gazebo入门教程]第三讲 SDF文件的静/动态编程建模 文章目录 [Gazebo入门教程]第三讲 SDF文件的静/动态编程建模 一.自定义模型并导入Gazebo 1. 基础操作准备 2. 建立模 ...
- 计算机速录教程,亚伟中文速录机培训教程-第二讲课件
<亚伟中文速录机培训教程-第二讲课件>由会员分享,可在线阅读,更多相关<亚伟中文速录机培训教程-第二讲课件(13页珍藏版)>请在人人文库网上搜索. 1.第 二 讲,亚伟中文速录 ...
- db2导入发生错误显示不是绝对路径_AE入门教程: ae模板的导入与使用方法
AE是一个灵活的基于层的2D和3D后期合成软件,包含了上百种特效及预置动画效果.很多想要自学AE的朋友都苦于没有详细的入门教程,今天本站就为大家带来AE入门教程: ae模板的导入与使用方法. Mac版 ...
最新文章
- Flask-admin 使用总结
- MAX2606调频发射芯片
- Server Core十大安装设置命令
- Lync常识之Lync客户端有哪些
- 深圳 | PMCAFF 产品经理第一课,面向3-5年产品经理,全面提升产品战略能力
- IIS错误与解决方法
- 网站服务器被别人绑定域名了怎么办(nginx)?
- Go语言、Docker 和新技术
- (C语言版)栈和队列(一)——实现链式栈和链式队列的基本操作以及遇到的问题
- php 查文件sha1 内存不足,SHA是否足以检查文件重复? (PHP中的sha1_file)
- 关于航模的几点总结积累
- 小米一加等手机如何正确的刷入PixelExperience_Plus系统-完整谷歌服务
- Sketch 51 for Mac(矢量绘图软件)汉化激活版
- python 四象限图_如何制作四象限气泡图表
- 中文拼音排序的两种方法
- C#串口通信——协议格式
- 微软新的邮件帐户域名 @live.com和@windowslive.com
- 科目三考试挂掉原因分析
- STM32 定时器的简单应用 1ms中断代码
- Android Settings 应用二 获取应用消耗的流量