2、认识Gazebo界面:启动Gazebo、主窗口布局、菜单栏详解、工具栏功能、世界面板与模型面板
好,咱们正式开始动手了。这一章我带你把Gazebo的界面摸个透。说实话,我第一次打开Gazebo时,看着满屏的英文和按钮,心里是有点懵的。但别怕,这东西就像你新买的车——方向盘、油门、刹车,位置搞清楚,剩下的就是熟练工。
2.1 启动Gazebo
启动方式很简单。打开终端,敲一行命令:
gazebo
嗯,就这么简单。但如果你像我一样,喜欢在ROS环境下工作,建议用:
roslaunch gazebo_ros empty_world.launch
为什么推荐后者?因为这样启动的Gazebo会自动和ROS的通信节点连上。我早期做项目时,直接敲gazebo启动,结果后面想用ROS控制机器人,发现话题接不上,折腾了半天。说白了,roslaunch方式帮你把“网线”提前插好了。
小提示:第一次启动可能会慢一些,因为Gazebo要加载一堆模型库。耐心等,别急着关。
2.2 主窗口布局
启动后,你会看到一个大窗口。我把它分成几个区域,你记一下:
- 3D场景区:中间最大的那块,是你机器人跑动的地方。说白了,这就是你的“虚拟试验场”。
- 左侧面板:默认显示“世界面板”和“模型面板”。这里管着场景里的所有东西。
- 顶部菜单栏:文件、编辑、视图……标准的软件菜单。
- 工具栏:一排小图标,用来添加物体、移动视角、运行仿真。
- 底部状态栏:显示仿真时间、实时因子等信息。我一般不看它,除非仿真卡了。
你想想看,这个布局是不是很像一个3D建模软件?没错,Gazebo本质上就是一个带物理引擎的3D编辑器。
2.3 菜单栏详解
菜单栏我挑几个常用的讲,其他的你以后慢慢摸索。
| 菜单 | 常用功能 | 我的经验 |
|---|---|---|
| File | Open World, Save World, Exit | 保存世界文件时,我习惯用.world后缀,方便后续加载 |
| Edit | Undo, Redo, Preferences | Preferences里可以调渲染质量,电脑配置低的话,把阴影关掉 |
| View | Toolbars, Grid, Origin | 我经常关掉网格,看着清爽一些 |
| Window | Topic Visualization, Log | 调试时打开Topic Visualization,能看到所有话题数据 |
| Help | About, Tutorials | 遇到问题先看Tutorials,比百度靠谱 |
重点:Save World这个功能,我建议你每调整一次场景就保存一次。我曾经调了半小时的灯光和模型位置,结果忘了保存,一关全没了。那种感觉,嗯,你懂的。
2.4 工具栏功能
工具栏在菜单栏下面,一排小图标。我把它们从左到右列出来:
- 选择模式(Select):默认状态,用来点击和选中模型。
- 平移模式(Translate):选中模型后,用这个可以移动它的位置。
- 旋转模式(Rotate):调整模型的朝向。
- 缩放模式(Scale):改变模型大小。注意,这个会改变物理属性,慎用。
- 撤销/重做(Undo/Redo):和编辑菜单一样。
- 添加模型(Add Model):点开后会弹出模型库,你可以拖拽模型到场景里。
- 添加灯光(Add Light):给场景加光源。
- 添加摄像头(Add Camera):固定视角的摄像头。
- 播放/暂停(Play/Pause):控制仿真时间的流动。
- 重置(Reset):把仿真时间归零,模型回到初始位置。
我个人习惯,把“选择模式”和“平移模式”用快捷键切换。默认快捷键是Esc选选择,G选平移。你试试,比用鼠标点图标快多了。
2.5 世界面板与模型面板
左侧这两个面板,是管理场景的核心。
世界面板(World)
这里管的是整个仿真环境的“大背景”。比如:
- Physics:重力、摩擦力、时间步长。我一般不改,除非做特殊仿真。
- Scene:背景颜色、阴影、网格。调成自己喜欢的颜色就行。
- Atmosphere:大气参数,比如气压、温度。做无人机仿真时可能会用到。
模型面板(Models)
这里列出了场景里所有的模型。每个模型展开后,可以看到它的:
- Links:刚体部件,比如机器人的轮子、机身。
- Joints:关节,连接两个Link的东西。
- Plugins:插件,用来给模型添加自定义功能,比如传感器数据输出。
注意:在模型面板里,你可以右键点击模型,选择“Delete”删除它。但如果你误删了,别慌,用Ctrl+Z撤销。不过有些版本不支持撤销删除,所以删之前想清楚。
2.6 本章知识结构图
下面这张图,帮你把本章的知识点串起来。我画的是Gazebo界面的核心逻辑:
这张图你看懂了吗?说白了,Gazebo的界面就三个层次:菜单栏管全局设置,工具栏管即时操作,面板管场景内容。你把这个逻辑记住,以后用任何仿真软件都能快速上手。
我的习惯:每次打开Gazebo,我第一件事是检查左侧面板的Physics参数,确保重力是9.8。有一次我忘了检查,结果机器人飘在天上,我还以为代码写错了,折腾了半小时才发现是重力被改成了0。嗯,从那以后,我养成了这个习惯。