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

2023-05-16

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

在这里插入图片描述

文章目录

  • 【Gazebo入门教程】第一讲 Gazebo的安装、UI界面、SDF文件介绍
    • 一、Gazebo的简介与安装
      • 1. 基本介绍
      • 2. 性能要求与安装
    • 二、GUI界面详解
      • 1. 场景(Scene)
      • 2. 左右面板(Panels)简介、
      • 3. 上下工具栏(Toolbars)与菜单栏(menu)
      • 4. 鼠标(Mouse Controls)
    • 三、URDF与SDF文件
      • 1. URDF介绍
      • 2. SDF介绍
      • 3. 相互转换
  • 总结


一、Gazebo的简介与安装

1. 基本介绍

  • 概念:Gazebo是一款3D动态模拟器,能够在复杂的室内和室外环境中准确有效地模拟机器人群。与游戏引擎提供高保真度的视觉模拟类似,Gazebo提供高保真度的物理模拟,其提供一整套传感器模型,以及对用户和程序非常友好的交互方式。

  • 基本应用:

  1. 测试机器人算法
  2. 设计机器人
  3. 用显示场景进行回归测试
  • 基本特点:
  1. 包含多个物理引擎
  2. 包含丰富的机器人模型和环境库
  3. 包含多样的传感器
  4. 程序设计便捷,图形界面UI合理

2. 性能要求与安装

  • 操作系统要求:Ubuntu或者其他Linux发行版
  • 其余要求:
  1. GPU:Nvidia显卡配置,当然在场景简单时,可以只使用CPU;
  2. CPU:至少是intel I5及以上的产品;
  3. 内存:至少500MB的磁盘空间,这里建议尽量大,8G+即可;
  • 安装流程:
  1. 添加源
sudo sh -c 'echo "deb  http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
  1. 安装
sudo apt-get update
sudo apt-get install gazebo11
sudo apt-get install libgazebo11-dev

二、GUI界面详解

  • 启动Gazebo:alt + F2,后输入gazebo即可;当然也可以通过图形化标签搜索找到并固定到任务栏,基本界面如下

在这里插入图片描述

1. 场景(Scene)

在这里插入图片描述

  • 介绍:场景是模拟器的主要部分,用于显示仿真模型,操作仿真对象与环境进行交互

2. 左右面板(Panels)简介、

在这里插入图片描述

  • 介绍:
  1. 左面板:
    \qquad 1)WORLD:“世界”选项卡,显示当前在场景中的模型,并允许你查看和修改模型参数,例如它们的姿势。你还可以通过展开“GUI”选项并调整相机姿势来更改摄像机视角。
    \qquad 2)INSERT:“插入”选项卡,向模拟添加新对象(模型)。要查看模型列表,您可能需要单击箭头以展开文件夹。在要插入的模型上单击(和释放),然后在场景中再次单击以添加它。
    \qquad 3)LAYERS:“图层”选项卡可组织和显示模拟中可用的不同可视化组(如果有)。图层可以包含一个或多个模型。打开或关闭图层将显示或隐藏该图层中的模型。大多数情况下都是空的,现在可以无视掉
  2. 右面板:
    \qquad 默认情况下Gazeb界面隐藏右侧面板。单击并拖动栏以将其打开。右侧面板可用于与所选模型(joint)的移动部件进行交互。如果未在场景中选择任何模型,则面板不会显示任何信息。

3. 上下工具栏(Toolbars)与菜单栏(menu)


在这里插入图片描述

  • 顶部工具栏:包含与模拟器交互时的选项,具体介绍如下
  1. 选择模型(Select mode):在场景中做标注;
  2. 转换模式(Translate mode):选择要移动的模型,可以沿x轴,y轴,z轴,或任意方向移动模型;
  3. 旋转模式(Rotate mode):选择要旋转的模型,可以沿x轴,y轴,z轴进行旋转模型;
  4. 缩放模式(Scale mode):选择要缩放的模型,可以沿x轴,y轴,z轴进行缩小或放大模型;
  5. 撤消/重做(Undo/Redo):撤消/重做场景中的操作;
  6. 简单物体(Simple shapes):放置一个长方体/球体/圆柱体
  7. 灯光(Lights):将灯光添加到场景,点光源 (球状点光源)/聚光灯 (从上而下,金字塔状向下照射)/方向性光源 (平行光);
  8. 复制/粘贴(Copy/Paste):复制/粘贴场景中的模型;
  9. 对齐(Align):将模型彼此对齐;
  10. 捕捉(Snap):将一个模型捕捉到另一个模型;
  11. 更改视图(Change view):从不同角度查看场景。

在这里插入图片描述

  • 底部工具栏:显示仿真有关数据,具体如下
  1. 播放/暂停:根据你的程序,运行仿真或暂停
  2. 以步长播放:按照规定的时长,一步一步运行仿真,默认步长1ms
  3. 实时因子:模拟时间与真实时间的比率,1代表实时模拟
  4. 仿真时间(Simulation time):当仿真运行时,时间在仿真环境中过得有多快。仿真可以比真实时间慢或快,具体取决于运行仿真所需的计算量;
  5. 真实时间(Real time):在仿真环境中运行时实际经过的时间。仿真时间和真实时间的比率称为实时因子。
  6. 迭代次数:世界状态每迭代一次就更新一次。您可以在底部工具栏的右侧看到迭代次数。每次迭代都会将仿真推进一个固定的秒数,称为步长。

在这里插入图片描述

  • 菜单栏:像大多数应用程序一样,gazebo顶部有一个应用程序菜单。某些菜单选项会显示工具栏中。在场景中,右键单击上下文菜单选项,可查看各种菜单。注意:有些Linux桌面会隐藏应用程序菜单。如果看不到菜单,请将光标移到应用程序窗口的顶部,菜单就会出现。

4. 鼠标(Mouse Controls)

在这里插入图片描述

  • 介绍:具体使用方法上图已有详述,包含在场景中导航和更改视角的基本鼠标操作。右键单击模型将打开一个包含各种选项的上下文菜单。

三、URDF与SDF文件

1. URDF介绍

  • URDF文件:统一机器人描述格式(urdf)是ROS用于描述机器人的所有元素的XML文件格式,具体研究可见博客URDF文件建立运动学模型教程

  • 存在的缺点:

  1. 在gazebo中使用urdf文件,必须添加一些特定用于仿真的标签才能与gazebo一起正常使用;
  2. 缺少许多功能,并且尚未进行更新以应对机器人技术的不断发展的需求。urdf只能单独指定单个机器人的运动学和动力学特性,无法指定世界中机器人本身的姿势;
  3. 不是通用的描述格式,因为它不能指定关节环(平行连接),并且缺乏摩擦和其他特性;
  4. 不能指定非机器人,例如灯光,高度图等;
  5. 语法大量使用XML属性破坏了正确的格式设置,这反过来又使urdf更加不灵活。

2. SDF介绍

  • SDF文件:仿真描述格式(sdf),是从世界级到机器人级的所有内容的完整描述,能够描述机器人、静态和动态物体、照明、地形甚至物理学的各方面的信息。

  • 优点/对URDF的优化:

  1. 可以精确描述机器人的各类性质,除了传统的运动学特性之外,还可以为机器人定义传感器、表面属性、纹理、关节摩擦等;
  2. 提供了定义各种环境的方法。包括环境光照、地形等;
  3. 使用XML格式进行描述,能够更好的描述真实的模拟条件;
  • 选用要求:
  1. 必须使用URDF文件:
    \qquad 1)要使用rviz进行可视化操作、要尽快做出仿真用以演示效果;
    \qquad 2)使用Solidworks建模,想方便地导出ROS三维模型。
  2. 必须使用SDF文件:
    \qquad 1)研究并联机器人,或机器人中存在封闭链结构;
    \qquad 2)想深入研究ROS-gazebo仿真,使仿真的动力学特性更加真实;想开发自己专用的Gazebo仿真插件。

3. 相互转换

注意:此处的转换方式存在一定固有问题,最好还是直接安装格式书写,避免发生转换;

  • URDF转为SDF:
  1. 常规方法:将URDF加载到Gazebo,另存为一个单独的world文件,sdf格式的模型就完整地保存在*.world文件的元素下;
  2. 命令行方法:在URDF文件目录下开启终端,输入命令
	gz sdf -p my_model.urdf > my_model.sdf
  • SDF转为URDF:pysdf功能包(非官方开发工具)
  1. 下载功能包,置于工作空间src目录下,链接:https://link.zhihu.com/?target=https%3A//github.com/chenjm1109/pysdf
  2. 编译工作空间:
$ cd ~/catkin_ws/
$ catkin_make
  1. 在模型文件目录下打开终端:
$ rosrun pysdf sdf2urdf.py my_model.sdf result_model.urdf

注意:此方法是相关大佬自行研发而得,存在一定限制性,解决办法如下:

  1. sdf2urdf.py是python可执行文件,如果报错[rosrun] Couldn’t find executable named sdf2urdf below…,就需要先通过chmod +x *指令为其赋予可执行权限,这是使用所有ROS-python可执行文件时都要注意的事情。
  2. sdf文件中不要有插件,也不要有ball关节等urdf无法识别的关节类型。
  3. 转换完成后可使用check_urdf工具检查urdf的合法性,命令如下:
   $ sudo apt-get install liburdfdom-tools$ check_urdf result_model.rudf

总结

  • 内容分析:本篇博客主要介绍了Gazebo仿真软件的基本功能、应用方法,并分别详细地讲述了Gazebo的安装方法、GUI界面详解,最后对URDF文件和SDF文件进行了对比介绍,并给出了相互转换的方法,下篇博客将会以模型编辑器为主,介绍如何使用Gazebo的图形化界面生成机器人模型并进行仿真,敬请期待。

在这里插入图片描述

  • 注意:本文参考了Gazebo官方网站以及古月居中的Gazebo有关教程,主要目的是方便自行查询知识,巩固学习经验
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 【系统分析师之路】嵌入式系统章节错题集锦

    系统分析师之路 嵌入式系统章节错题集锦 系分章节错题集第01题 xff1a 红色 01 雷达设计人员在设计数字信号处理单元时 xff0c 其处理器普遍采用DSP芯片 xff08 比如 xff1a TI公司的TMS320C63xx xff09
  • 【软工】程序编码

    目录 前言正文 程序设计语言 分类 选择原则 程序编码总原则 好程序的标准 结构化程序设计 主要内容 主要原则 程序设计风格 源程序文档化 数据说明 语句结构 输入输出方法 程序设计质量评价 正确性结构清晰性易修改性 易读性 简单性 程序复
  • TPM1.2到TPM 2.0的变化

    原文地址 xff1a http www vonwei com mod 61 pad amp act 61 view amp id 61 11 TPM 1 2规范主要面向PC平台 xff0c 其103版本在2009年被接受为ISO标准 xff
  • 关于Cmake与CmakeLists(一)--背景,须知,示例

    一 背景及须知 1 背景 xff1a VS2019与VS2010在编写程序时都是创建了一个工程 xff0c 然后直接打开 sln即可 但是vscode仅仅是一个编辑器 xff0c 打开之后只有 c或者 cpp文件 xff0c 故需要手动编译
  • webgl(three.js)实现室内定位,楼宇bim、实时定位三维可视化解决方案——第五课

    webgl three js 实现室内定位 楼宇bim 实时定位三维可视化解决方案 第五课 参考文章 xff1a xff08 1 xff09 webgl three js 实现室内定位 楼宇bim 实时定位三维可视化解决方案 第五课 xff
  • Linux虚拟机在线扩容lvm类型root分区

    目录 Linux虚拟机在线扩容lvm类型root分区写在前面正文写在后面 Linux虚拟机在线扩容lvm类型root分区 写在前面 这是我在CSDN上的第一篇文章 作为一个半江湖的IT人 xff0c 这些年来也在CSDN受益很多 今天是20
  • 无vCenter创建vSAN集群

    无vCenter创建vSAN集群 最近仍有朋友在问题 xff0c vCenter如果 挂了 xff0c vSAN还能正常运行吗 xff1f 这个小文通过手动创建vSAN集群的方式来解答下这个问题吧 xff08 生产环境慎用 xff01 xf
  • 记一次mdadm软raid1升级容量

    MDRaid 2块4TB做了软RAID1 xff0c 需要升级成2块8TB盘 查看磁盘信息 xff0c SerialNumber等会儿会用到 xff0c 防止换错盘 span class token function sudo span h
  • [简洁版]youtube-dl下载命令

    简介 YouTube dl是python上的pip模块 xff08 开源 xff09 xff0c 可以用来下载YouTube Bilibili等多个平台的视频 音频文件 xff0c 可谓是居家旅行必备小工具 本文主要介绍一些常用的youtu
  • [简版]VMware强大的管理工具-PowerCLI

    一 PowerCLI介绍 什么是 PowerCLI PowerCLI 是一个命令行工具 xff0c 可以用于自动化vSphere管理 xff0c 包括网络 存储 虚拟机以及其他很多功能 PowerCLI包含超过700个命令 要安装Power
  • [简版]使用PowerCLI自定义vSphere ISO安装镜像

    一 什么情况下要自定义ISO镜像 一般来说 xff0c 对于DELL Lenovo HPE这类主流的服务器厂商 xff0c VMware官方vSphere ISO镜像或者官网的第三方客制镜像 xff08 由服务器厂商提供的封装镜像 xff0
  • [简版] 关于vSphere漏洞-OpenSLP

    一 前言 近期vSphere OpenSLP漏洞在野利用的新闻频频被爆出来 xff0c 大伙儿非常关注 由于vSphere虚拟化客户之广泛 xff0c 很多朋友都表达了自己的焦虑 xff0c 同时也会担心自己管理的vSphere虚拟化平台是
  • [简版] Linux搭建SAMBA文件共享服务

    SMB服务搭建 更多参数含义参考链接 常用配置 安装samba span class token comment Ubuntu span span class token function sudo span span class toke
  • STM32 HAL库详解

    STM32 HAL库整体总结 STM32 之二 HAL库详解 及 手动移植 本篇博客是对以上参考资源的一个二次总结与整理 1 HAL库文件结构 对于开发人员而言 xff0c 首先要清楚 HAL 库的文件结构 根据文件类型可认为以下两大类 x
  • STM32 HAL库学习(四):DMA之串口空闲中断

    STM32CubeMX 配置实现参考这里 1 串口空闲中断 1 1 UART DMA方式接收数据 STM32串口使用DMA方式接收数据可以减小CPU的开销 对于接收定长数据 xff0c 可以将DMA接收缓冲区的长度设定为待接收数据的长度 x
  • Android Studio 启动模拟器出现“Timed out after 300seconds waiting for emulator to come online“解决方案

    Android Studio 启动模拟器出现 34 Timed out after 300seconds waiting for emulator to come online 34 解决方案 参考文章 xff1a xff08 1 xff0
  • 结构体中的位定义

    1 结构体位定义 在工作中 xff0c 经常遇到按位 xff08 bit xff09 定义结构体 的情况 由于一个字节有8个位 xff0c 这时 xff0c 程序员往往对bit的位置产生困惑 现在给出2个例子 xff0c 来说明位的定义次序
  • 蓝牙基础(三):蓝牙协议栈总体认知

    蓝牙基础 xff08 三 xff09 xff1a 蓝牙协议栈总体认知 0 前言 初入门经典蓝牙学习 xff0c 网上资料参差不齐 xff0c 本博客旨在整理自己的一些总结内容 xff0c 建立整体功能认识 xff0c 以便后续深入学习 1
  • FreeRTOS学习(四)任务调度与切换

    文章目录 1 任务调度2 任务切换2 1 SVC 和 PendSV2 2 上下文2 3 切换场景2 4 PendSV Handler 3 总结 1 任务调度 在建立完任务后紧接着调用任务调度函数 xff0c 便会使系统运行起来 span c
  • FreeRTOS学习(五)队列与信号量

    文章目录 1 队列1 1 队列特性1 2 队列创建1 2 1 接口函数1 2 2 内存占用1 2 3 创建过程分析 1 3 入队与出队1 3 1 队列项入队1 3 1 队列项出队 2 信号量2 1 二值信号量2 2 计数型信号量2 3 互斥

随机推荐

  • FreeRTOS学习(六)时间管理

    文章目录 1 延时函数1 1 vTaskDelay 1 2 vTaskDelayUntil 1 3 系统时钟节拍 2 软件定时器2 1 定时器概述2 2 定时器 API 3 总结 1 延时函数 当任务需要调用延时函数延时时 xff0c 任务
  • C语言 sscanf库函数

    目录 1 函数描述2 函数应用2 1 基础应用2 2 高级应用 1 函数描述 xff08 1 xff09 函数功能 xff1a 通常被用来解析并转换字符串 xff0c 从str指定的字符串读取数据 xff0c 并根据参数format字符串来
  • C语言 文件读写

    目录 1 文件打开与关闭1 1 打开文件 fopen 1 2 关闭文件 fclose 2 读取文件2 1 fgetc 2 2 fgets 2 3 fscanf 3 写入文件3 1 fputc 3 2 fputs 3 3 fprintf 1
  • C语言 条件编译

    目录 1 if elif else endif 2 ifdef else endif 3 ifndef else endif 4 三者区别 根据不同情况编译不同代码 产生不同目标文件的机制 xff0c 称为条件编译 条件编译是预处理程序的功
  • yolo 学习系列(三):训练参数与网络参数

    yolo 学习系列 xff08 三 xff09 xff1a 训练参数与网络参数 手把手教你做目标检测 xff08 YOLO SSD xff09 视频链接 1 训练参数 博主在使用 yolov2 tiny voc 训练 人 这一类目标物体时
  • Caffe 学习系列(七):MobileNet-YOLO 安装与训练

    Caffe 学习系列 xff08 七 xff09 xff1a MobileNet YOLO 安装与训练 基于darknet实现mobilenet 基于darknet框架实现DepthwiseConvolutional层 深度学习 xff08
  • 完美解决api-ms-win-crt-runtime-l1-1-0.dll 丢失问题

    完美解决api ms win crt runtime l1 1 0 dll 丢失问题 参考文章 xff1a xff08 1 xff09 完美解决api ms win crt runtime l1 1 0 dll 丢失问题 xff08 2 x
  • Moveit!入门——古月居机械臂开发笔记(一)

    Moveit 入门 古月居机械臂开发笔记 xff08 一 xff09 引言Moveit xff01 与机械臂控制1 创作机械臂模型2 生成配置文件3 如何使用Moveit xff01 实现机械臂仿真 xff08 gazebo xff09 完
  • 数据处理:Excel读取txt文本

    数据处理 xff08 一 xff09 xff1a Excel读取txt文本 1 1 任务需求 txt 文本为四列数据 xff0c 以空格为分隔符号 xff0c 现导入 Excel 中 1 2 实现步骤 新建 excel 文件点击 数据 来自
  • Raspberrypi 3 系统备份还原, 基于最小系统镜像实现

    Raspberrypi 3 备份还原系统 一 为什么要备份系统 xff1f 1 经常在树莓派上调试程序 xff0c 安装各种软件 xff0c 越来越多的库和程序的安装带来的系统更改几乎是不可逆的 xff0c 一旦某个程序或者驱动出现问题 x
  • linux 内核链表

    linux内核中大量使用如下数据结构实现双向链表 xff1a struct list head struct list head next prev 如果需要有某种数据结构的双向队列 xff0c 就在这种结构内部放一个list head数据
  • FreeRTOS任务基础知识总结

    1 单任务系统 前后台系统 xff1a 中断服务函数为前台程序 xff0c 大循环while 1 作为后台程序 前后台系统的实时性差 xff0c 但是前后台系统简单 xff0c 资源消耗少 2 FreeRTOS是一种抢占式的实时多任务系统
  • 第一章面试题整理

    一 C 43 43 域操作符的使用 include 34 stdio h 34 include 34 windows h 34 int value 61 0 初始化全局变量 void printvalue printf 34 value 6
  • 第十三届蓝桥杯JAVAB组国赛部分思路及代码

    JAVA B组参考代码 文章目录 JAVA B组参考代码 试题 A 重合次数 答案 494 试题 B 数数 答案 25606 试题 C 左移右移 思路 xff1a 对于操作从后向前记录 xff0c 最后操作的肯定是在两端 xff0c 并对该
  • MicroStrategy的面经(from bbs.byr..

    搜了一下论坛 xff0c 发现基本上没有MicroStrategy的面经 xff0c 既然有幸参加了他们的面试 xff0c 这里把面试过程给大家描述一下 xff0c 希望对后来的人有点帮助吧 1 公司介绍 xff1a 中文叫凌策软件 xff
  • 4G工业路由器的透传好处与安全因素

    透传 xff0c 通俗了说就是 透明传输 需要在保证质量的前提下 xff0c 将数据传送到目的节点 xff0c 并且不对数据做任何处理 透传一般都是用来读取远程的串口数据 例如火车站都需要刷身份证信息才能进入 xff0c 但身份证信息数据库
  • 程序员迷茫:30岁以上的“大龄程码农”出路在哪?java码农该怎么办?

    程序员生存 成功 制胜的法则源自IT精英的职业发展秘诀热爱工作 xff0c 享受生活 为什么程序员过了30就不行了 xff1f 我们被固定在 敲代码 的坑里 xff0c 一干就是10年 xff0c 再干别的早已不会 敲代码已经成了一项流水线
  • 【ROS进阶篇】第八讲(上) URDF文件的语法详解

    ROS进阶篇 第八讲 xff08 上 xff09 URDF文件的语法详解 文章目录 ROS进阶篇 第八讲 xff08 上 xff09 URDF文件的语法详解前言一 URDF的基本概念二 link标签1 标签作用2 子标签 三 joint标签
  • push to origin/master was rejected错误解决方案(IDEA)

    push to origin master was rejected错误解决方案 IDEA 参考文章 xff1a xff08 1 xff09 push to origin master was rejected错误解决方案 IDEA xff
  • 【Gazebo入门教程】第一讲 Gazebo的安装、UI界面、SDF文件介绍

    Gazebo入门教程 第一讲 Gazebo的安装 UI界面 SDF文件介绍 文章目录 Gazebo入门教程 第一讲 Gazebo的安装 UI界面 SDF文件介绍一 Gazebo的简介与安装1 基本介绍2 性能要求与安装 二 GUI界面详解1