【ROS Gazebo专题】二、Gazebo的使用上

2023-05-16

跳的比较快,别人光介绍基础以及ros的基本操作就写了十几二十篇,我一下就跳到了Gazebo这,可怕有没有。

其实原因很简单,如果你将ros官网的基础篇章练习完了,在最后一篇 where Next?中告诉我们进阶应该做什么,第一步就讲到使用模拟器Gazebo,所以如果基础内容大家实在是看不懂英文,你们可以看看csdn很多博主翻译过来的基础篇,写的都很不错,我就不做无用功了,写博客也挺花时间的。就像第一篇 ros基础一句话总结 一样,我写了二十天,因为工作,生活的缘故,所以进度不是很快,希望理解。


另外,我也将默认大家是有基础的朋友,如果没有基础,推荐先进行基础学习,然后再进行交流。


1、Gazebo是什么?

Gazebo是一个仿真环境(平台),可以进行三维机器人动力学仿真等,够模拟复杂和现实的环境中关节型机器人。很强大。


2、Gazebo官网在哪里?

http://gazebosim.org/,打不开对吧?被墙了,自己挂个代理就进去了。


3、了解一下Gazebo的版本

官网中明确的提示了版本,并且将新版本的开发计划及发布时间公布了出来,如图:


官方除了已经把2020年的版本都想好了,还将各个版本的最后更新支持时间列了出来,就那个EOL(End of Life)时间。

如果你还注意到了那个版本后面的标签,Ubuntu P Q V T之类的,这个应该是Ubuntu对应的版本号的开头大写字母,就像Android 和 Ios一样,除了数字版本,每一代都有名字。

另外一个标签,ROS I、ROS H、ROS J 应该就是对应了ROS 的Indigo Hydro Jade三个版本了吧。注意到ROS I 的版本是2.2,等会儿验证(我装的就是Indigo版本)。



4、Gazebo最新版本如何安装?在ROS下Gazebo又是如何安装?

首先要明白Gazebo目前只支持Ubuntu系统,windows和mac os都在开发计划中,目前还没有推出。

实质上如果你想在Widows下面使用,是有方法的,但是要照步骤一步一步来编译,很麻烦,不能直接下载文件安装,坚决说无法使用的,只能说他没仔细在官网找,链接如下:http://gazebosim.org/tutorials?tut=install_on_windows&cat=install


最新的Gazebo请去官网下载,你可以找到最新版本,点击下载。

如果你想在ros中使用,请跳过a)小节。


a)如图,最新版本,点这个(要记得,官网下载需要翻墙)

然后就下载到一个gazebo7_install.sh的文件对吧?

使用终端,为这个文件添加权限(假设你的文件在你的/home/user/下载   这个文件夹下面)

在终端里进入这个文件夹路径:

cd /home/user/下载

终端里赋予权限:

chmod +x gazebo7_install.sh

终端里运行:

./gazebo7_install.sh

然后就可以了,如果提示却库了,根据提示,缺什么你就去找什么,自己补充一下就可以了。



        b)ROS下的Gazebo安装

如果你当初安装ROS是使用的full全部安装模式,那么恭喜你,你不需要在安装了。

如果不是,只装了部分,请使用这个命令(注意啊,如果是indigo版本的ros,用这个,其它版本把对应版本的名字替换掉indigo部分就可以了,注意多使用tab键,有的版本后缀的模拟器名字不同的)

sudo apt-get install ros-indigo-simulators


在终端中启动Gazebo:

gazebo

如图为启动后的窗口界面:


看一下我的Gazebo版本,如图:


看见了吗?2.2.3,前面ROS I的标签支持的是2.2,这说明我可能猜对了,如果不对的话,请指正,Ros Jade和Ros Hydro版本的我就不测了,装了这两个版本的朋友可以告知下。


5、Gazebo简单认识

使用ros命令打开的一个empty world 的gazebo 和我直接用gazebo命令打开的软件是没有区别的,因为都是空的内容里面。

但是实际使用是有区别的,使用roslaunch命令 打开的gazebo实际上是包含了一个ros通讯节点,这样就可以使用其他的ros指令将gazebo和你自己编写的文件联系起来。

着急学习的朋友建议直接上官网,里面有详细教程。

a)界面认识

这个空的世界中,只有一个大地模型和光源效果。

b)添加一些东西上去


如图,添加了两个球体和一个圆柱以及一个正方体。

c)基本工具介绍

移动工具



旋转工具


缩放工具


或者使用ctrl+B来进行地图编辑



6、接下来按照ROS的教程走

a)写一个urdf的模型文件

使用终端,建立并编辑urdf文件,我推荐gedit方便

gedit object.urdf

写入代码:

<robot name="simple_box">
  <link name="my_box">
    <inertial>
      <origin xyz="2 0 0" />
      <mass value="1.0" />
      <inertia  ixx="1.0" ixy="0.0"  ixz="0.0"  iyy="100.0"  iyz="0.0"  izz="1.0" />
    </inertial>
    <visual>
      <origin xyz="2 0 1"/>
      <geometry>
        <box size="1 1 2" />
      </geometry>
    </visual>
    <collision>
      <origin xyz="2 0 1"/>
      <geometry>
        <box size="1 1 2" />
      </geometry>
    </collision>
  </link>
  <gazebo reference="my_box">
    <material>Gazebo/Blue</material>
  </gazebo>
</robot>
保存关闭文本编辑器。

其中:

原文解释在这:

Here the origins of the inertial center, visual and collision geometry centers are offset in +x by 2m relative to the model origin. The box geometry primitive is used here for visual and collision geometry, and has sizes 1m wide, 1m deep and 2m tall. Note that visual and collision geometries do not always have to be the same, sometimes you want to use a simpler collision geometry to save collision detection time when running a dynamic simulation. The box inertia is defined as 1kg mass and principal moments of inertia ixx=izz=1 kg*m2 and iyy=100 kg*m2.

大意就是表达上面的urdf文件,构建了一个长1m宽1m高2m的盒子对应box size = 1 1 2,并且最后给予了惯性要求,对应ixx = 1 iyy = 100,其他的标签意思有空再去查一下,看翻译虽然有个大概理解,但是具体的区别大家自己尝试一下吧,但注意一下,gezebo reference = my_box 这个标签,对应的是导入gazebo中的模型名称。

接下来我们打开终端,使用命令行将这个文件导入到gazebo。


首先使用终端打开gazebo,这次使用roslaunch命令打开,因为要开一个节点:

roslaunch gazebo_ros empty_world.launch


接下来使用rosrun命令将前面写的urdf文件放进去(记得先用终端cd到你放置urdf文件的路径下):

rosrun gazebo_ros spawn_model -file 'pwd'/object.urdf -urdf -z 1 -model my_object


运行结束之后,会发现你的gazebo多了一个蓝色的物体,如图:


今天先写到这,下班回家了。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【ROS Gazebo专题】二、Gazebo的使用上 的相关文章

  • 使用WTGAHRS2(JY-GPSIMU)在ROS中读取数据并发布话题

    目录 IMU简介 驱动程序 IMU串口通信协议 程序 效果 IMU简介 十轴惯性导航传感器WTGAHRS2传感器集成高精度的陀螺仪 加速度计 地磁场传感器 GPS 模块 采用高性能的微处理器和先进的动力学解算与卡尔曼动态滤波算法 能够快速求
  • ROS之QtCreator开发环境搭建

    文章目录 系统环境 官方教程 安装 卸载 使用 导入工作空间 构建与运行 编写测试程序 系统环境 操作系统 Ubuntu20 04 ROS版本 Noetic 官方教程 按照官方教程或者下面笔记中的内容均能进行环境搭建 笔记中另外做了部分补充
  • ROS与navigation教程——ACML参数配置

  • ROS诸多调试工具总结1

    ROS有许多调试工具来为ROS调试你的工具 1 rosnode 参数 用法 作用 list rosnode list 查看当前运行了哪些节点 info rosnode info node name 查看该节点发布 接受哪些话题以及服务 ki
  • 无人驾驶论坛

    1 百度Apollo论坛 http www 51apollo com 2 人工智能中文资讯网 http www ailab cn
  • V-REP安装

    小知识 是当前目录 是父级目录 是根目录 1 下载V REP 官网地址 http www v rep eu downloads html 我用ubuntu16 04下载V REP PRO EDU V3 5 0 Linux tar 2 解压安
  • ModuleNotFoundError: No module named ‘rosbag‘

    1 ModuleNotFoundError No module named rosbag File opt ros kinetic lib python2 7 dist packages roslib launcher py line 42
  • 清华大学开源软件镜像站网址

    清华大学 TUNA 协会原名清华大学学生网管会 注册名清华大学学生网络与开源软件协会 是由清华大学网络技术和开源软件爱好者 技术宅组成的团体 现阶段向校内外提供开源软件镜像等服务 清华大学 TUNA 协会清华大学 TUNA 协会原名清华大学
  • Ubuntu18.04配置Seetaface6

    目录 一 下载安装Qt软件 1 安装包下载 2 安装Qt 3 配置 二 下载源码 三 编译工具 四 编译 1 编译OpenRoleZoo 2 编译SeetaAuthorize 3 编译TenniS 五 运行 1 修改lib路径 2 buil
  • 在Ubuntu 14.04.2 LTS上安装Qt

    Qt是一个跨平台的应用程序框架 广泛用于开发具有GUI界面的应用软件以及命令行工具 几乎所有操作系统都可以使用Qt 如Windows Mac OS X Android等 用于开发Qt应用程序的主要编程语言是C 但是可以使用诸如Python
  • Ubuntu安装ROS

    原文链接 https blog csdn net qq 44830040 article details 106049992 这也是我在ubuntu里面安装ROS的第N次 以前每次安装过程都忘记总结了 导致每次安装ROS都浪费了很多的时间用
  • Ubuntu16.04及ROS Kinetic环境下安装使用RealSense SR300

    Ubuntu16 04及ROS Kinetic环境下安装使用RealSense SR300 1 准备条件 需要安装Ubuntu16 04及ROS Kinetic 2 安装驱动 安装realsense的驱动流程可以根据Github上的官方推荐
  • 可视化点云

    我在找到的视差图像上有来自 gpu reprojectImageTo3D 的 3D 点 我现在想显示这个点云 如何将找到的点云转换为OpenCV to sensor msgs PointCloud2 我不需要发布点云 这仅用于调试可视化 是
  • 错误状态:平台不允许不安全的 HTTP:http://0.0.0.0:9090

    我正在尝试从我的 flutter 应用程序连接到 ws local host 9090 使用 rosbridge 运行 的 Ros WebSocket 服务 但我在 Flutter 中收到以下错误 错误状态 平台不允许不安全的 HTTP h
  • 在 ROS - Python 中使用来自多个主题的数据

    我能够显示来自两个主题的数据 但无法在 ROS 中实时使用和计算这两个主题的数据 用 Python 代码编写 您有想法存储这些数据并实时计算吗 谢谢 usr bin env python import rospy import string
  • ROS 从 python 节点发布数组

    我是 ros python 的新手 我正在尝试从 python ros 节点发布一个一维数组 我使用 Int32MultiArray 但我无法理解多数组中布局的概念 谁能给我解释一下吗 或者还有其他方式发布数组吗 Thanks usr bi
  • 可以在catkin工作区之外创建ROS节点吗?

    我想在catkin工作区之外创建一个ROS发布者节点 可以创建吗 当然可以 像对待任何其他 cpp 库或 python 包一样对待 ROS 在Python中你必须保留PYTHONPATH环境变量指向ros包 opt ros kinetic
  • 如何订阅“/scan”主题、修改消息并发布到新主题?

    我想通过订阅message ranges来改进turtlebot3的LDS 01传感器 通过应用一些算法修改messange ranges并将其发布到新主题 如下所示 但是当我运行编码时出现错误 错误是 遇到溢出的情况 错误是 运行时警告
  • ROS 问题:libQt5Core.so.5:无法打开共享对象文件:没有这样的文件或目录

    当我跑步时 rosrun turtlesim turtlesim node 在 Ubuntu 上 我收到以下消息 opt ros noetic lib turtlesim turtlesim node 加载共享库时出错 libQt5Core
  • ROS中spin和rate.sleep的区别

    我是 ROS 新手 正在尝试了解这个强大的工具 我很困惑spin and rate sleep功能 谁能帮助我了解这两个功能之间的区别以及何时使用每个功能 ros spin and ros spinOnce 负责处理通信事件 例如到达的消息

随机推荐

  • Libev源码解析

    最近在看libev源码 xff0c 算是对libev的源码有个比较清晰的了解 总共分3部分来介绍libev 1 Libev是什么 Libev是基于Reactor模式的一个高性能 xff0c 支持高并发的事件库 它本身不仅支持IO xff0c
  • Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面 .相机.录影机....

    Android开发之Intent跳转到系统应用中的拨号界面 联系人界面 短信界面 现在开发中的功能需要直接跳转到拨号 联系人 短信界面等等 xff0c 查找了很多资料 xff0c 自己整理了一下 安装已经存在的apk String file
  • C++ STL中判断list为空,size()==0和empty()有什么区别

    关于两个的区别 xff0c 首先size 61 61 0为bool表达式 xff0c empty 为函数调用 xff0c 这一点很明显 查看源代码 xff0c bool empty const return M node gt M next
  • docker port

    一 码云 https gitee com login 用户名 xff1a cakin24 二 为什么要端口映射 在启动容器时 xff0c 如果不配置宿主机器与容器的端口映射 xff0c 外部程序是无法访问容器的 xff0c 因为没有端口 三
  • 安装和删除Ubuntu双系统

    一 制作系统硬盘 1 在官网下载镜像文件 xff1a ubuntu 18 04 6 desktop amd64 iso 地址 xff1a 下载Ubuntu桌面系统 Ubuntu 注 xff1a 这里的LTS Long Term Suppor
  • 安装Intellij,编译第一个android程序出错

    今天安装了最新的Intellij社区最新版 xff0c 安装完成后 xff0c 发现编译第一个android程序 xff0c 出现如下编译错误 Cannot run program 34 D Android platform tools a
  • Bootstrap的select组件动态添加的数据不显示

    bootstrap中的select属性 xff0c 如果是动态添加的元素 xff0c 会出现页面不显示的问题 lt select class 61 34 form control form control lg 34 id 61 39 my
  • VScode 自定义主题颜色

    vscode其实已经有很多完善且好看的主题了 xff0c 但我总觉得每一个主题对我来说 xff0c 都有那么一点点不够完美 xff0c 比如亮色的主题 xff0c 颜色就没有深色主题那么好看 xff0c 对比度高 好不容易看到一个好看的主题
  • IIC详解,包括原理、过程,最后一步步教你实现IIC

    IIC详解 1 I2C总线具有两根双向 信号线 xff0c 一根是数据线SDA xff0c 另一根是时钟线SCL 2 IIC总线上可以挂很多设备 xff1a 多个主设备 xff0c 多个从设备 xff08 外围 设备 xff09 上图中主设
  • 飞控板不用看得高大上,本质就是STM32加那几个传感器,和平衡车板子差不多,是完全可以自己画的,甚至不用画,买个STM32核心板+十轴模块

    你自己画一块板子 xff0c 然后真正飞成了 xff0c 我觉得你会非常开心的 xff0c 这种感觉不一样的我觉得 xff0c 你说是不是 飞控我们不用看得高大上 xff0c 本质还是STM32加传感器 xff0c 可能和平衡车的差不多 x
  • 搜刮来的PID进阶

    PID 原理普及 1 对自动控制系统的基本要求 xff1a 稳 准 快 xff1a 稳定性 xff08 P和I降低系统稳定性 xff0c D提高系统稳定性 xff09 xff1a 在平衡状态下 xff0c 系统受到某个干扰后 xff0c 经
  • C语言中<>和“”引用头文件的区别

    区别如下 xff1a 1 lt gt 先去系统目录中找头文件 xff0c 如果没有再到当前目录下找 所以像标准的头文件 stdio h和 stdlib h等用这个方法 2 34 34 首先在当前目录下寻找 xff0c 如果找不到 xff0c
  • ACfly中的Parameters.c参数部分

    typedef enum MAV PARAM TYPE MAV PARAM TYPE UINT8 61 1 8 bit unsigned integer MAV PARAM TYPE INT8 61 2 8 bit signed integ
  • C++Primer第五版 习题答案 目录

    C 43 43 Primer第五版 习题答案 本文当作我学习C 43 43 的一个记录 xff0c 这里的习题答案并不是标准答案 xff0c 仅仅是我的理解 xff0c 如有错误 xff0c 请大家指出 xff0c 谢谢 xff01 参考的
  • C++Primer第五版 习题答案 第六章 函数(Functions)

    练习6 1 实参和形参的区别的什么 xff1f 形参在函数的定义中声明 xff1b 实参是形参的初始值 练习6 2 请指出下列函数哪个有错误 xff0c 为什么 xff1f 应该如何修改这些错误呢 xff1f span class toke
  • Dockerfile的CMD指令

    一 Docker的CMD指令 The main purpose of a CMD is to provide defaults for an executing container CMD在容器运行的时候提供一些命令及参数 xff0c 用法
  • usb供电相关

    1 针对集线器端口上的电涌警告 xff1a 在 设备管理器 gt 通用串行总线控制器 xff0d USB Root Hub gt 电源 中可以看到 xff0c 正在使用的USB设备的耗 由于频繁的插拔USB设备 xff0c 或在USB设备传
  • PHP四种设计模式

    1php常见开发模式 xff1a 1 单列模式 2 工厂模式 3 观察者模式 4 策略模式 2设计模式实例 1 单例模式 单例模式顾名思义 xff0c 就是只有一个实例 作为对象的创建模式 xff0c 单例模式确保某一个类只有一个实例 xf
  • CAN总线基础知识(一)

    1 xff0e CAN总线是什么 xff1f CAN xff08 Controller Area Network xff09 是ISO国际标准化的串行通信协议 广泛应用于汽车 船舶等 具有已经被大家认可的高性能和可靠性 CAN控制器通过组成
  • 【ROS Gazebo专题】二、Gazebo的使用上

    跳的比较快 xff0c 别人光介绍基础以及ros的基本操作就写了十几二十篇 xff0c 我一下就跳到了Gazebo这 xff0c 可怕有没有 其实原因很简单 xff0c 如果你将ros官网的基础篇章练习完了 xff0c 在最后一篇 wher