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

本文介绍了Gazebo仿真平台的基本概念、官方网站及其版本信息。重点讲解了Gazebo在Ubuntu系统上的安装方法,包括最新版本的下载与安装过程,并提供了在ROS环境下安装Gazebo的具体步骤。此外,还通过实例演示了如何使用ROS命令导入URDF模型文件到Gazebo中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

跳的比较快,别人光介绍基础以及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多了一个蓝色的物体,如图:


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


### Gazebo 使用教程 #### 安装指南 对于希望安装特定版本的用户来说,访问官方文档是非常重要的。进入 Gazebo 官方网站的安装指导页面[^1],在右上角选择所需安装的具体版本号,在此案例中选择了Version: 8.0。遵循网页上的逐步说明完成整个安装流程。 为了验证安装成功与否,可以在终端执行相应命令来尝试启动Gazebo窗口: ```bash gazebo ``` 如果一切正常,将会弹出一个新的图形化界面表示环境已经准备好被使用了。 #### 创建工作空间 当准备利用 ROSGazebo 进行开发时,创建一个合适的工作区是必要的第一步。这一步骤涉及到设置目录结构以及初始化 catkin 工作空间以便后续可以顺利编译自定义包和其他资源[^2]。 #### 编辑模型(Model Editor) 通过 Model Editor 用户可以直接操作现有的物体或是构建全新的实体用于模拟实验。具体交互方法包括但不限于双击列表项编辑属性、双击场景内对象调整姿态参数;另外还可以借助鼠标右键菜单选项进一步探索链接检测等功能特性[^3]。 #### 坐标系管理(TF Tree Management) 确保所有传感器数据能在 RViz 中正确呈现的关键在于维护好一致性的坐标框架体系。一旦各个组件间缺乏共同参照点,则可能出现部分视图缺失的现象。因此建议开发者仔细检查各子系统的 frame_id 设置情况,并确认它们都归属于同一个 TF 树形结构之下[^4]。 #### 启动配置(Launch Configuration) 针对复杂项目的快速部署需求,编写 launch 文件能够极大简化多节点协同工作的过程。下面是一个简单的例子展示了如何组合多个硬件驱动程序以实现同步运行的效果: ```xml <launch> <include file="$(find ros_arduino_python)/launch/arduino.launch"/> <include file="$(find usb_cam)/launch/usb_cam-test.launch"/> <include file="$(find rplidar_ros)/launch/rplidar.launch"/> </launch> ``` 上述 XML 片段描述了一个包含 Arduino 控制器、USB 摄像头和 RPLIDAR 激光测距仪在内的综合启动脚本。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值