三 机器人仿真软件Gazebo介绍
ROS教程
这是小弟的学习笔记,有错求请拍,多指教,谢谢
三 机器人仿真软件Gazebo介绍
Gazebo功能
1.构建机器人运动仿真模型
在Gazebo里,提供了最基础的三个物体,球体,圆柱体,立方体,利用这三个物体以及它们的伸缩变换或者旋转变换,可以设计一个最简单的机器人三维仿真模型。更加地,Gazebo提供了CAD,Blender等各种2D,3D设计软件的接口,可以导入这些图纸让Gazebo的机器人模型更加真实,这些之后会详细介绍。同时,Gazebo提供了机器人的运动仿真,通过Model Editor下的plugin,来添加我们需要验证的算法文件,就可以在Gazebo里对机器人的运动进行仿真
2.构建现实世界各种场景的仿真模型
Gazebo可以建立一个用来测试机器人的仿真场景,通过添加物体库,放入垃圾箱,雪糕桶,甚至是人偶等物体来模仿现实世界,还可以通过Building Editor,添加2D的房屋设计图,在设计图基础上构建出3D的房屋
3.构建传感器仿真模型
Gazebo拥有一个很强大的传感器模型库,包括camera,depth camera,laser,imu等机器人常用的传感器,并且已经有模拟库,已经可以直接使用,也可以自己从0创建一个新的传感器,添加它的具体参数,甚至还可以添加传感器噪声模型,让传感器更加真实
4.为机器人模型添加现实世界的物理性质
Gazebo里有force,physics的选项,可以为机器人添加例如重力,阻力等,Gazebo有一个很接近真实的物理仿真引擎,要记得一般的地面是没有阻力的,和现实世界有区别
Gazebo安装
1.注意
如果是安装了full版本的ROS,是不需要再安装Gazebo的,检查自己是否安装了Gazebo的方法:
1)在搜索栏输入“Gazebo”查找;
2)通过命令行查找$ dpkg -l|grep gazebo
,可以查找Gazebo是否已经安装,并且查看版本号,建议安装最新版本
如果安装了旧版本的Gazebo,应该先卸载再安装新版本,现在最新版本是Gazebo8,可以通过Gazebo官网查看最新版本Gazebo8
卸载旧版本Gazebo的方法:
1)通过Ubuntu软件管理中心卸载
2)命令行方法
查找与Gazebo相关的软件包
$ dpkg --get-selections | grep gazebo
在不记得软件具体名称以及它的各个附带软件时,可以通过该命令来查找
卸载命令$ sudo apt-get remove gazebo7
但是要把与之相关的软件,附加项都卸载,比较麻烦,可以通过autoremove一次性卸载所有相关的软件
$ sudo apt-get autoremove gazebo7
2.安装Gazebo的方法
1)通过安装脚本来安装
从官网的教程来看,通过sh脚本来安装是最方便的,脚本是linux系统里一个比较方便的工具,就像ROS里的launch文件一样,sh文件启动后,会自动执行脚本设定好的工作,下边是官网推荐的通过脚本安装的具体步骤:
点击下载安装脚本 install.sh脚本下载地址
通常来说,下载的文件会放在文件目录~/home/下载/
下,通过命令行
$ cd 下载
进入文件夹目录
运行脚本文件$ sh gazebo8_install.sh
有时需要管理员权限,则加上sudo
即可
2)注意,不建议完全照搬官网的安装步骤,因为下载脚本文件的文件夹有区别
参考网址
Gazebo/tutorials/1
Gazebo界面与操作
1.界面
1)初始界面
2)创建模型界面
将鼠标移至左上角,会看到有Edit选项
点击Model Editor选项
模型界面
节点/关节创建界面
参考网址
Gazebo/tutorials/2
2.操作
鼠标操作方法,这里用了Gazebo官网的图,一般常用的就是“shift+鼠标左键”转换视角,“鼠标左键”平移视角,“滚轮”缩放大小
键盘的快捷键有很多,值得自己去发掘,但要谨记,在创建模型的时候,“ctrl+z”的撤回键是不能用的,所以每次操作完成之后,最好按以下“esc”键退出当前操作至选择物体模式,这样会避免误点
用Gazebo创建第一个机器人模型
1.机器人模型在Gazebo中需要的结构
我们可以在“Model Editor”界面下看到
一个模型的创建,主要包括里四个方面:
“Models”指的是从模型库添加的模型,是已经构建好的物体,具有一定功能和外观的,例如传感器,房屋,车体,车轮等
“Model Plugins”指的是关于目前正在创建的模型的一些功能描述信息
“Links”指当前通过球体/圆柱/立方体创建的物体
“Joints”指各个物体之间的连接关节
2.创建步骤
1)进入“Model Editor”模型编辑界面
2)创建车体
通过基础图形来创建一个简单的二轮差分运动模型
拖拽一个圆柱体到面板中,并双击圆柱体,打开“Link Inspector”编辑物体属性
点击“Visual”和“Collision”,修改Geometry,把半径和厚度改成自己需要的大小,本模型将厚度改成0.1m,保持半径大小不变
“Visual”是该物体的外观
“Collision”是物体的实际性质,在仿真引擎中调用的参数
因为作为车体底盘,所以尽量把第一块模型的x,y,z坐标调整至坐标轴上,方便以后对于其他物体的调整。在“Link”标签中,滑动到最低,会看到有一个“Pose”标签,这个就是调整物体的坐标还有偏转角度的
因为要配合车轮的位置,所以在这个时候应该根据车轮的半径,来确定底盘的z坐标。车轮拟定半径0.2m,所以底盘的z坐标也调整至0.2m,可以方便以后的工作
谨记,所有的长度,坐标,都是根据物体中心或中线来确定的
3)创建支柱
按照上边的步骤添加圆柱,并修改参数。半径为0.02m,厚度为0.4m
复制出4根支柱,暂时放在任意位置
4)创建顶层板
复制第二步创建的车体底盘,暂时放在任意位置
5)连接部件
点击顶部的“Joint”,打开节点编辑器,点击父物体,再点击子物体,即可创建一个节点。
父物体是带动子物体运动的,所以应该以底盘为父级,支柱为子级
6)调整节点属性
“Joint types”:一般常用的有Fixed,Revolute,Ball,分别是固定连接,可以旋转的,球体多方向转动(类似万向轮)。支柱属于固定连接,所以选择Fixed
“Align links”:使用“Align links”选项可以快速调整两个零件的位置关系,三个按钮分别是左贴合,归中,右贴合,“Reverse”是在贴合后更改内外关系的,调整子物体的哪个面与父物体接触,如果想支柱在底盘内,则不要勾选Reverse,勾选了的话支柱会在底盘外
留意黄色框,试一下改变每一个轴的Reverse选项
7)重复操作,按照关节类型为Fixed的方法,连接剩下的零件
注意,要把顶层板和四个支柱都连接在一起,其实Fixed的作用就相当于螺丝,把零件连接在一起,只有这样才能保证仿真的真实性
8)创建车轮
二轮差分模型有两个主动轮加上一到两个万向轮
车轮依然是简单的圆柱体,但这一次要把圆柱体转个90度,90度=1.5707 rad
更改半径,厚度
9)连接车轮和车体
黄色框是值得注意的地方,滚动的车轮要选择可选转的关节类型“Revolute”,并且调节可旋转的轴,物体将绕着有小黄圆圈标记的轴旋转
重复该步骤创建另一边的车轮,留意车轮是否着地。通过目测是十分困难的,最好是写下每个零件的半径,厚度等参数,通过计算得出车轮是否着地
10)创建万向轮
在简易模型里,我们可以直接用球体来代替万向轮, 其实在现实生活中,万向轮大多也是球体
尝试一下计算,看看球体万向轮的半径要多大,才能让球体紧贴地面,并且着地时高度不超过底盘?
答案是 :底盘的Z坐标/2
一定要注意,“VIsual”和“Collision”都要更改
11)连接万向轮
有时使用“Align links”不能让万向轮着地,这个时候可以再调整它与父物体的相关位置
不建议一开始就使用Pose来调整,调整物体位置时“Align links”会更加直观方便
重复建立一个万向轮模型
3.添加传感器
1)寻找合适的库
http://gazebosim.org/models/是官方的模型库,打开并找到深度摄像头“Depth camera”,拖拽到面板中。最好直接拖拽到红色的轴线上
2)安装传感器
在安装传感器到车体上的时候并不能用Align links快速调整位置的方法,需要自己手动移动,望大神指导如何准确移动。这个时候要很小心,因为容易误点了其他零件导致不必要的移动
把深度摄像头移动到车顶,然后用Fixed类型的节点让车体与摄像头连接
3)配置Plugin
参考了Gazebo官网的教程,我们在Model标签下,找到Plugin的add按钮,打开并填写
“Plugin name”一定是独立的,不能出现重复,这个可以自己定义
“Filename”是链接文件的名称,一般是链接一些动态库,有关动态库的笔记之后学到了再写
因为libFollowerPlugin.so动态库并没有要求输入什么参数,所以“Innerxml”不需要填写
4.保存并退出
将鼠标移动到左上角,点击“FIle”,进行保存和退出操作
5.在World界面进行仿真
在机器人前边放置一个立方体,然后点击下方的开始按键,看到机器人朝着方块运动,证明模型创建成功
参考网址
Gazebo/tutorials/3
三 机器人仿真软件Gazebo介绍相关推荐
- 使用机器人操作系统ROS 2和仿真软件Gazebo 9搭建机器人教程(一)
参考链接:https://github.com/bunchofcoders/basic_bocbot 本文为使用ROS 2和Gazebo9搭建仿真机器人详细指南. 确保已按如下说明安装ROS和Gaze ...
- 【ROS仿真实战】获取机器人在gazebo位置真值的三种方法(三)
文章目录 前言 一. 使用ROS tf库 二. 使用Gazebo Model Plugin 三. 使用libgazebo_ros_p3d插件 四.总结 前言 在ROS和Gazebo中,获取机器人的位置 ...
- 机器人三星云顶之弈_云顶之弈机器人玩法介绍
云顶之弈机器人玩法介绍,机器人作为一位强力的控制往往会在意想不到的时候左右战局,许多玩家还不知道机器人该怎么用,下面就让小编给大家解读一下机器人的用法. 云顶之弈机器人玩法介绍: 小技巧: 在云顶之弈 ...
- V-rep机器人仿真软件使用的学习笔记
本博客同时发布于个人主页:www.doctorsrn.cn 本博客续:V-rep机器人仿真软件使用的学习笔记-续 相关博客:V-rep中机械臂惯性参数的获取方法 前言 这篇博客主要是记录自己学习和使用 ...
- 强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例
强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例 1. 引言 在这个部分补充之前马尔科夫决策和动态规划部分的代码.在以后的内容我会把相关代码都附到相关内容的后面.本部 ...
- UR机器人装箱姿态_关于人机协作机器人UR的介绍
原标题:关于人机协作机器人UR的介绍 在这几年,各大工业机器人制造商,目前都热衷与人机协作,ABB的"玉米",FANUC的"绿手臂",KUKA的"伊娃 ...
- ROS中阶笔记(四):机器人仿真—Gazebo物理仿真环境搭建(重点)
ROS中阶笔记(四):机器人仿真-Gazebo物理仿真环境搭建(重点) 文章目录 1 ros_control 1.1 ros_control安装 2 Gazebo仿真步骤(重点) 2.1 配置物理仿真 ...
- 法拉克机器人自动怎么调_FANUC机器人程序自动启动介绍汇总.ppt
FANUC机器人程序自动启动介绍汇总 程序启动条件及时序介绍 上海发那科机器人有限公司 2012.9.20 自动运行方式的定义 第一部分 程序启动类型 所需启动的机器人程序可以使用外部控制设备如PLC ...
- 小米机器人虚拟墙设置_扫地机器人虚拟墙介绍及怎样设置
原标题:扫地机器人虚拟墙介绍及怎样设置 现在高端的智能吸尘器产品都配备了虚拟墙功能,能够有效正确指挥扫地机工作.那么,对于我们在日常使用中该如何使用虚拟墙呢? 什么是虚拟墙? 很多人购买产品的时候对虚 ...
- 部分仿真软件对比介绍
本文转载在我的微信公众号:古德曼汽车工业.公众号文章都会知识星球.知乎进行转载,请有兴趣的朋友可以关注我的微信公众号 原文地址:部分仿真软件对比介绍 首先来说下为什么会有这个体裁,由于思想在长期的工作 ...
最新文章
- 【视频】vue组件之slot插槽
- 最简单的 ABAP XSLT 程序的一个例子
- c 语言开发一个四则运算器,C++实现四则运算器(无括号)
- Bootstrap--导航栏样式编辑
- 为什么薄膜干涉的厚度要很小_薄膜干涉的膜为什么不能太厚?
- 基于JAVA+SpringMVC+Mybatis+MYSQL的学生考勤管理系统
- bzoj 4289 TAX —— 点边转化
- git 版本控制库的用法及其介绍
- Bootstrap FileInput.js + springmvc uploadFile
- spss无法连接到本地计算机,通过远程连接打开SPSS产品时,收到许可证错误信息。从本地打开同一产品时没有错误。...
- arm-linux 交叉编译toolchain
- 图层php,ps图层怎么用
- 蒙圣光:2018年IT行业的八大趋势
- Python 构建 Random Forest 和 XGBoost
- Java开发-日期与时间戳转换封装工具类
- android wifi传图片,「教程」将Mac电脑上的照片无线传到安卓手机上
- 节能降耗 | AIRIOT智慧电力综合管理解决方案
- NETDMIS5.0三个面基准建立坐标系2023
- 计算机应用基础差错解释,计算机应用基础名词解释:差错
- cannot bind non-const lvalue reference of type ‘xxx‘ to an rvalue of type ‘xxx‘
热门文章
- [全新大碟]周杰倫 - 魔杰座
- js网页特效动画(筋斗云案例)
- ES6.x版本单机三节点配置discovery.zen.ping.unicast.hosts 错误
- 悼念王选:伟大发明家和失意企业家间的孤独者
- SD卡无法识别的问题解决 ”mmc0: error -110 whilst initialising SD card”
- Docker存储驱动之Btrfs简介
- 算法系列:Reservoir Sampling
- hello ,酷狗音乐产品体验报告
- FTP显示文件的修改时间与实际时间不一致
- zbbz cnk2