第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其实不难,但有几个细节要注意。

  1. 下载镜像:去Ubuntu官网下载20.04.6 LTS桌面版,别下成服务器版
  2. 制作启动盘:用Rufus(Windows)或balenaEtcher(macOS)写入U盘
  3. 分区建议:至少给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 本章知识体系

下面这张图,是我自己总结的环境搭建整体流程,你可以对照着检查自己装到哪一步了:

环境搭建核心流程 Ubuntu 20.04 系统安装与配置 ROS Noetic 机器人操作系统 Gazebo 11 仿真环境 Ubuntu配置要点 • 换国内源 • 更新系统 • 安装基础工具 • 配置网络 • 设置中文输入法 ROS安装步骤 • 添加软件源 • 添加密钥 • 安装desktop-full • rosdep初始化 • 设置环境变量 Gazebo验证 • 启动gazebo命令 • 检查图形界面 • 添加测试模型 • 验证物理引擎 • 测试ROS接口 三步走:装系统 → 装ROS → 装Gazebo,缺一不可

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。所以版本匹配真的很重要,别自己乱搭。

好了,环境搭建这部分就讲到这里。你按照上面的步骤一步步来,应该半小时内就能搞定。如果遇到问题,先看看表格里的常见问题,大部分都能解决。

可可精品资料库