2、Gazebo基础操作:从零开始搭建你的仿真世界
各位同学,欢迎来到Gazebo实操环节。说实话,很多初学者一打开Gazebo就被密密麻麻的界面吓到了。别慌,我当年第一次看到这个界面时,也愣了好一会儿。今天我们就把它拆开揉碎,一点点讲清楚。
2.1 Gazebo界面:你该关注哪几个区域?
Gazebo的界面其实就三大块。你记住这三块,基本就掌握了80%。
- 3D场景窗口(主视图):这就是你的仿真世界。所有模型、机器人、传感器都在这里显示。你可以用鼠标拖拽旋转视角,滚轮缩放。
- 左侧面板(World / Insert):左边这个侧边栏,
World标签显示当前世界中的所有模型列表,Insert标签用来添加新模型。我个人习惯把常用模型拖到Insert里,用起来快很多。 - 顶部工具栏:播放/暂停仿真、重置世界、选择/移动/旋转/缩放物体。这几个按钮你天天都会用到。
Ctrl + Shift 再拖拽鼠标,可以平移视角。这个快捷键我用了三年才发现,别走我的弯路。
2.2 创建简单世界:从空白文件开始
我们不需要每次都从零敲代码。Gazebo支持图形化创建世界,但说实话,我更推荐你直接写一个简单的.world文件。为什么呢?因为可重复性高,改参数也方便。
来,我们创建一个最简单的世界——只有地面和光照。
<?xml version="1.0"?>
<sdf version="1.6">
<world name="my_first_world">
<include>
<uri>model://sun</uri>
</include>
<include>
<uri>model://ground_plane</uri>
</include>
</world>
</sdf>
把这个文件保存为my_world.world。然后在终端运行:
gazebo my_world.world
看到了吗?一个带光照和地面的空世界就出来了。嗯,这里要注意:model://是Gazebo内置模型的路径,你不需要下载任何东西。
2.3 添加静态物体:让世界丰富起来
空荡荡的世界没意思。我们来加几个物体。在Gazebo里,物体分两种:静态物体和动态物体。静态物体不会动,比如墙壁、柱子、桌子。动态物体会受重力影响,比如掉落的箱子。
添加静态物体的方法很简单:
- 点击顶部工具栏的 Insert 标签
- 在左侧面板找到你想添加的模型(比如
cinder block或bookshelf) - 拖拽到场景中
- 右键点击物体 → Edit Model → 勾选 Static
为什么要勾选Static?我在项目中遇到过一个问题:有一次仿真时,一个书架模型没设静态,结果机器人轻轻一碰,书架就倒了,还把传感器砸坏了。所以,凡是固定不动的物体,一定要设为静态。
2.4 保存与加载世界文件:别让你的工作白费
你辛辛苦苦摆好了场景,结果忘了保存?我曾经干过这种事,摆了一下午的货架和障碍物,一个断电全没了。从那以后,我养成了随时保存的习惯。
保存世界的方法:
- 菜单栏 → File → Save World As
- 或者直接按
Ctrl + S - 保存为
.world文件
加载世界的方法:
- 启动时:
gazebo your_world.world - 运行时:菜单栏 → File → Open World
保存后的.world文件长什么样?我们打开看看:
<?xml version="1.0"?>
<sdf version="1.6">
<world name="my_world">
<include>
<uri>model://sun</uri>
</include>
<include>
<uri>model://ground_plane</uri>
</include>
<model name="cinder_block">
<static>true</static>
<pose>1.0 0.5 0.0 0 0 0</pose>
<link name="link">
<collision name="collision">
<geometry>
<box>
<size>0.5 0.5 0.5</size>
</box>
</geometry>
</collision>
<visual name="visual">
<geometry>
<box>
<size>0.5 0.5 0.5</size>
</box>
</geometry>
</visual>
</link>
</model>
</world>
</sdf>
你看,<static>true</static> 就是刚才我们勾选的静态属性。<pose> 是物体的位置和朝向。你完全可以手动修改这些数值,比在图形界面里拖拽精确得多。
2.5 本章知识体系:一张图看懂
下面这张图总结了Gazebo基础操作的核心逻辑。你照着这个流程走,不会出错。
核心要点回顾:
- Gazebo界面三大区域:3D场景、左侧面板、顶部工具栏
- 创建世界:写一个
.world文件,包含光照和地面 - 添加静态物体:拖拽模型 → 右键设为Static
- 保存世界:
Ctrl+S或菜单保存,加载用命令行或菜单 - 手动编辑
.world文件可以精确控制物体位置和属性
好了,这一章的内容就到这里。你可以在Gazebo里试着摆几个物体,保存一下,再加载回来看看效果。实际操作一遍,比看十遍教程都管用。
可可精品资料库