第1章:环境搭建——Ubuntu系统安装与配置、ROS Noetic安装、Gazebo 11安装与验证
各位同学,欢迎来到《从零上手Gazebo仿真环境搭建》的第一课。
说实话,做机器人仿真这件事,最让人头疼的往往不是仿真本身,而是环境搭建。我见过太多人卡在这一步,装了一整天,最后连Gazebo的界面都没看到。所以这一章,我会把每一步拆开揉碎了讲,把我这些年踩过的坑、总结的经验,全都告诉你。
1.1 为什么选择Ubuntu 20.04 + ROS Noetic + Gazebo 11?
先说说版本选择的问题。ROS和Gazebo的版本绑定关系非常严格,选错了就是灾难。
我个人习惯用Ubuntu 20.04 LTS,搭配ROS Noetic和Gazebo 11。为什么是这个组合?
- Ubuntu 20.04:长期支持版,稳定到2025年,社区资源丰富
- ROS Noetic:最后一个支持Python 2的ROS版本,但同时也完美支持Python 3
- Gazebo 11:与ROS Noetic官方绑定的版本,兼容性最好
你可能会问:「用更新的版本不行吗?」我在项目中试过Ubuntu 22.04配ROS 2,但很多经典教程和第三方包还是基于Noetic的。对于初学者来说,跟着主流走,能少走很多弯路。
核心结论:Ubuntu 20.04 + ROS Noetic + Gazebo 11 是目前最成熟、资料最全的组合,没有之一。
1.2 Ubuntu 20.04 系统安装与配置
1.2.1 系统安装要点
安装Ubuntu 20.04其实不难,但有几个细节要注意。
- 下载镜像:去Ubuntu官网下载20.04.6 LTS桌面版,别下成服务器版
- 制作启动盘:用Rufus(Windows)或balenaEtcher(macOS)写入U盘
- 分区建议:至少给Ubuntu留50GB空间,我建议100GB以上
小技巧:安装时选择「最小安装」,可以省掉很多用不上的办公软件,节省磁盘空间。
1.2.2 系统基础配置
装好系统后,第一件事是换源。为什么?因为默认的国外源下载速度太慢了,你想想看,一个ros-desktop-full包要下载1GB多,用默认源能等到你怀疑人生。
换源操作很简单,打开终端,执行:
sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
sudo apt update
嗯,这里要注意:如果你在校园网或者公司内网,可能用清华源或中科大源更快。我个人习惯用阿里源,稳定且速度快。
1.3 ROS Noetic 安装
1.3.1 添加ROS软件源
ROS的安装流程其实很固定,但每一步都不能跳。我曾经帮一个学生排查问题,发现他漏了添加密钥这一步,结果装到一半报错,折腾了两小时。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
1.3.2 安装ROS Noetic
这里我建议直接安装完整桌面版,省得后面缺包再补。
sudo apt install ros-noetic-desktop-full
这个命令会安装ROS核心、可视化工具、仿真工具等所有常用组件。下载时间取决于你的网速,一般10-30分钟。
1.3.3 初始化rosdep
rosdep是用来解决依赖关系的工具,很多新手会忽略这一步。我记得有一次在项目里,就是因为rosdep没初始化,导致编译自定义包时各种报错。
sudo rosdep init
rosdep update
注意:如果rosdep init报错,通常是网络问题。可以尝试挂代理,或者手动下载rosdep配置文件。
1.3.4 设置环境变量
每次打开终端都要手动source ROS的环境变量,太麻烦了。我们把它写进bashrc里:
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
验证是否安装成功:
roscore
如果看到ROS master启动的信息,恭喜你,ROS Noetic装好了。
1.4 Gazebo 11 安装与验证
1.4.1 安装Gazebo 11
Gazebo 11可以直接用apt安装,非常简单:
sudo apt install gazebo11 gazebo11-common gazebo11-plugin-base libgazebo11-dev
这里我多说一句:libgazebo11-dev这个开发库一定要装,后面写自定义插件、做传感器仿真都离不开它。
1.4.2 安装ROS与Gazebo的接口包
ROS和Gazebo之间通信,需要专门的接口包:
sudo apt install ros-noetic-gazebo-ros-pkgs ros-noetic-gazebo-ros-control
这两个包的作用是什么?说白了,就是让ROS能控制Gazebo里的机器人,让Gazebo能把仿真数据发回给ROS。
1.4.3 验证Gazebo 11
打开终端,输入:
gazebo
如果看到Gazebo的图形界面加载出来,并且没有报错,那就说明安装成功了。
验证小技巧:在Gazebo界面里点击「Insert」标签,添加一个简单的模型(比如一个立方体),看看能不能正常显示和操作。能拖动、旋转,就说明GPU渲染和物理引擎都正常工作。
1.5 本章知识体系
下面这张图,是我自己总结的环境搭建整体流程,你可以对照着检查自己装到哪一步了:
1.6 常见问题与避坑指南
最后,分享几个我实际遇到过的问题:
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| apt update报错「无法解析域名」 | DNS配置问题 | 修改/etc/resolv.conf,添加nameserver 8.8.8.8 |
| rosdep update超时 | 网络被墙 | 使用rosdepc替代,或配置代理 |
| Gazebo启动黑屏 | 显卡驱动问题 | 安装NVIDIA驱动,或使用软件渲染 |
| roscore找不到命令 | 环境变量未设置 | 检查~/.bashrc中是否有source语句 |
曾经踩过的坑:有一次我在项目里装Gazebo 9,结果发现和ROS Noetic不兼容,所有插件都加载失败。后来查文档才知道,Noetic官方只支持Gazebo 11。所以版本匹配真的很重要,别自己乱搭。
好了,环境搭建这部分就讲到这里。你按照上面的步骤一步步来,应该半小时内就能搞定。如果遇到问题,先看看表格里的常见问题,大部分都能解决。
可可精品资料库