【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 拷贝模型文件
  1. 将压缩包移动到models文件夹下:
sudo mv /home/zhaoxu/Downloads/gazebo_models_master.zip /usr/share/gazebo-11/models
  1. 解压压缩包:转移到指定目录下,使用如下解压指令
sudo unzip gazebo_models_master.zip
  • 1.4 测试

\qquad打开gazebo,在INSERT面板中选择模型导入(需要增加对应路径),效果如下:

二、模型编辑器(以轮式车辆构造为例)

1. 用户界面介绍

  • 进入模型编辑器:
  1. 顶部菜单栏点击Edit,选择Model Editor
  2. 使用热键Ctrl + M

\qquad注意:进入模型编辑器后主界面仿真将会暂停,底部工具栏会隐藏,其余与主界面很相似,具体如下

① 工具栏:编辑模型的工具

\qquad工具包含与场景对象交互的工具,从左到右分别是:

平移、缩放、旋转、撤销与重做、复制和粘贴、对齐、捕捉、视图调整及联合创建

② 调色板:左面板

\qquad左面板具体包含INSERT选项卡和MODEL选项卡,具体介绍如下

\qquad (1)INSERT选项卡

  • 基本功能:将新零件(链接和模型)添加到模型编辑器,具体部分如下;
  1. 简单形状:基本几何形状,在模型中形成链接;
  2. 自定义形状:从模型链接中导入自定义网格,支持COLLADA(.dae),3D Systems(.stl),Wavefront(.obj)和W3C SVG(.svg)文件
  3. 模型数据库:模型列表,可按与简单形状相同方式插入;

\qquad (2)MODEL选项卡

  • 基本功能:设置模型名称和基本参数,显示模型中的链接、关节、模型约束和插件

\qquad 注意:修改参数使用Link Inspector,打开方式如下,具体内部界面在实例中解释:

  1. 双击模型列表中的项目;
  2. 右键单击列表中的项目,选择Open Link Inspector;
  3. 双击场景中的项目;
  4. 右键单击场景中的项目,选择Open Link Inspector;

③ 可视化建模的缺陷:需要通过SDF文件完成

  1. 无法编辑嵌套模型及其中的链接;
  2. 无法添加和编辑类似于“平面、折线”等几何图形;
  3. 不支持高度图、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 typesFixed即可,图示如下:

(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入门教程】第二讲 模型库导入与可视化机器人建模(模型编辑器)相关推荐

  1. 【Gazebo入门教程】第四讲 场景建模/建筑编辑器

    [Gazebo入门教程]第四讲 场景建模/建筑编辑器 文章目录 [Gazebo入门教程]第四讲 场景建模/建筑编辑器 一.场景编辑器 1.1 打开方式: 1.2 UI界面分析: 二.导入平面图 2.1 ...

  2. 【Gazebo入门教程】第六讲 控制器插件的编写与配置(下)

    [Gazebo入门教程]第六讲 控制器插件的编写与配置(下) \qquad 文章目录 [Gazebo入门教程]第六讲 控制器插件的编写与配置(下) 一.系统插件 二.Velodyne传感器插件 1. ...

  3. 【Gazebo入门教程】第一讲 Gazebo的安装、UI界面、SDF文件介绍

    [Gazebo入门教程]第一讲 Gazebo的安装.UI界面.SDF文件介绍 文章目录 [Gazebo入门教程]第一讲 Gazebo的安装.UI界面.SDF文件介绍 一.Gazebo的简介与安装 1. ...

  4. 生日祝福小程序_广告配音剪映零基础入门教程第二十六篇:如何给朋友制作生日祝福视频...

    经常听到小伙伴问到生日祝福视频怎么做,当然我想既然要为他人做生日祝福视频,那么这个人必定是自己身边比较重要的人,而生日又是每个人都是非常重要的,在这种充满意义的时刻,我们想给自己极其重要的人送上一份祝 ...

  5. 九宫怎么排列和使用_广告视频配音剪映零基础入门教程第二十三篇:剪辑之九宫格教程...

    朋友圈最火九宫格视频你们知道是怎样制作的吗?我们常常在玩朋友圈的时候想用九宫格照片,但是你们有没有遇到这种情况,想玩九宫格却发现找不到那么多能用的照片,那这时候怎么办呢?玩腻了平常图片的发法,今天我们 ...

  6. DirectX11入门教程——第二篇:DirectX11的基础知识

    本系列系作者原创,可随便转发但一定要注明出处 刚才明明说尽量不跳章的,为啥一进来就变成第二章,这里首先用几句话说明一下原因:因为第一章我想留给更基础更概念的GPU发展史和管线描述.在此对不起大家了.不 ...

  7. 【Gazebo入门教程】第三讲 SDF文件的静/动态编程建模

    [Gazebo入门教程]第三讲 SDF文件的静/动态编程建模 文章目录 [Gazebo入门教程]第三讲 SDF文件的静/动态编程建模 一.自定义模型并导入Gazebo 1. 基础操作准备 2. 建立模 ...

  8. 计算机速录教程,亚伟中文速录机培训教程-第二讲课件

    <亚伟中文速录机培训教程-第二讲课件>由会员分享,可在线阅读,更多相关<亚伟中文速录机培训教程-第二讲课件(13页珍藏版)>请在人人文库网上搜索. 1.第 二 讲,亚伟中文速录 ...

  9. db2导入发生错误显示不是绝对路径_AE入门教程: ae模板的导入与使用方法

    AE是一个灵活的基于层的2D和3D后期合成软件,包含了上百种特效及预置动画效果.很多想要自学AE的朋友都苦于没有详细的入门教程,今天本站就为大家带来AE入门教程: ae模板的导入与使用方法. Mac版 ...

最新文章

  1. Flask-admin 使用总结
  2. MAX2606调频发射芯片
  3. Server Core十大安装设置命令
  4. Lync常识之Lync客户端有哪些
  5. 深圳 | PMCAFF 产品经理第一课,面向3-5年产品经理,全面提升产品战略能力
  6. IIS错误与解决方法
  7. 网站服务器被别人绑定域名了怎么办(nginx)?
  8. Go语言、Docker 和新技术
  9. (C语言版)栈和队列(一)——实现链式栈和链式队列的基本操作以及遇到的问题
  10. php 查文件sha1 内存不足,SHA是否足以检查文件重复? (PHP中的sha1_file)
  11. 关于航模的几点总结积累
  12. 小米一加等手机如何正确的刷入PixelExperience_Plus系统-完整谷歌服务
  13. Sketch 51 for Mac(矢量绘图软件)汉化激活版
  14. python 四象限图_如何制作四象限气泡图表
  15. 中文拼音排序的两种方法
  16. C#串口通信——协议格式
  17. 微软新的邮件帐户域名 @live.com和@windowslive.com
  18. 科目三考试挂掉原因分析
  19. STM32 定时器的简单应用 1ms中断代码
  20. Android Settings 应用二 获取应用消耗的流量

热门文章

  1. 致电视巨头们:请放下战略,用心做好产品
  2. 关于LinearLayout属性android:layout_marginRight的错误
  3. 电气工程领域核心期刊大全
  4. 图像质量评价学习笔记01:IQA的基本概念及分类
  5. 深度相机分类及品牌型号调研
  6. OTA系列小问答:什么是汽车OTA?
  7. Hadoop个人心得笔记(一)
  8. 玩转华为ENSP模拟器系列 | 配置LDP本地会话的定时器
  9. lorenz系统simulink仿真_直驱永磁同步风机并网仿真(二)
  10. UCloud可用区的设计理念及功能图文详解