2、环境搭建:Ubuntu系统安装、ROS Noetic安装、Gazebo 11安装与验证

说实话,做机器人仿真这么多年,我见过太多人在环境搭建这一步就卡住了。有的装完系统发现显卡驱动不对,有的ROS装到一半源挂了,还有的Gazebo死活打不开。嗯,这些坑我都踩过。今天我就把一套经过反复验证的流程分享给你,照着来,基本不会出问题。

核心思路:先装系统 → 再装ROS → 最后装Gazebo。每一步都要验证,别急着往下走。

2.1 Ubuntu 20.04 系统安装

ROS Noetic 官方支持的 Ubuntu 版本是 20.04。我个人习惯用 LTS 版本,稳定,社区支持也久。你想想看,要是装了个非 LTS 版本,两年后就得重装系统,多麻烦。

硬件要求:

  • CPU:i5 或以上,建议 4 核以上
  • 内存:8GB 起步,16GB 更舒服
  • 硬盘:至少 50GB 空闲空间
  • 显卡:NVIDIA 显卡最好,后面跑仿真会用到 GPU 加速

安装步骤:

  1. 去 Ubuntu 官网下载 20.04.6 LTS 桌面版 ISO 镜像
  2. 用 Rufus 或 balenaEtcher 制作启动 U 盘
  3. BIOS 里设置 U 盘启动,进入安装界面
  4. 分区建议:/ 分 30GB,/home 分剩余空间,swap 分 8GB
  5. 安装过程中选择「最小安装」,省去不必要的软件包

我的经验:安装时记得断网。为什么?因为联网安装会下载更新,慢得要命。等系统装好了再换国内源,速度飞起。

2.2 ROS Noetic 安装

ROS 的安装其实就三步:添加源、装包、初始化。但这里有个坑——官方源在国内基本连不上。我曾经在客户现场演示时,因为源的问题卡了半小时,场面一度很尴尬。

换源操作:

# 备份原源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 替换为清华源
sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list

# 更新
sudo apt update

安装 ROS Noetic:

# 添加 ROS 源(清华镜像)
sudo sh -c 'echo "deb https://mirrors.tuna.tsinghua.edu.cn/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
sudo apt install ros-noetic-desktop-full

这里我建议装 desktop-full 版本,包含了 Gazebo、RViz、各种工具库。你要是装 desktop 版本,后面还得一个个补,麻烦。

初始化 rosdep:

sudo rosdep init
rosdep update

注意:如果 rosdep update 报网络错误,别慌。这是因为 rosdep 的源在国外。你可以手动下载 rosdistro 的 GitHub 仓库,然后配置本地路径。具体方法我放在课程资料里了。

设置环境变量:

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

验证安装:

roscore
# 如果看到 ROS Master 启动信息,说明安装成功

2.3 Gazebo 11 安装与验证

Gazebo 11 是 ROS Noetic 默认集成的版本。你装完 ros-noetic-desktop-full 后,Gazebo 其实已经在了。但为了保险,我们还是单独确认一下。

检查是否已安装:

gazebo --version
# 应该输出 Gazebo multi-robot simulator, version 11.x.x

如果没装,或者你想装最新版:

sudo apt install gazebo11 gazebo11-plugin-base libgazebo11-dev

启动测试:

gazebo

你会看到一个 3D 仿真窗口,里面有一个空的世界。嗯,到这里环境就搭好了。

我的经验:第一次启动 Gazebo 可能会比较慢,因为它要下载一些模型文件。你可以提前下载好常用模型库:

git clone https://github.com/osrf/gazebo_models.git ~/.gazebo/models

这样后面打开带物体的世界时,就不用等下载了。

2.4 常见问题与避坑

问题 原因 解决方法
Gazebo 启动后黑屏 显卡驱动问题 安装 NVIDIA 驱动:sudo apt install nvidia-driver-470
ROS 命令找不到 环境变量没设置 检查 ~/.bashrc 中是否有 source 命令
rosdep update 失败 网络问题 使用代理或手动下载 rosdistro 仓库
Gazebo 加载模型慢 模型文件未缓存 提前下载模型库到本地

我曾经踩过的坑:有一次我在虚拟机里装 Gazebo,结果怎么都打不开。折腾了半天才发现,虚拟机默认的 3D 加速是关闭的。你如果在虚拟机里跑,记得在 VM 设置里开启「3D 加速」,显存至少给 256MB。

2.5 知识体系总览

下面这张图帮你理清整个环境搭建的逻辑。说白了就是三层结构:底层是 Ubuntu 系统,中间是 ROS 框架,上层是 Gazebo 仿真器。每一层都依赖下一层,所以安装顺序不能乱。

环境搭建知识体系 Ubuntu 20.04 LTS 操作系统基础 · 显卡驱动 · 网络配置 · 软件源设置 ROS Noetic 通信框架 · 工具链 · 功能包管理 · rosdep 依赖 Gazebo 11 物理仿真 · 传感器模拟 · 模型加载 · 环境交互 依赖关系 →

你看,这个结构其实很清晰。Ubuntu 是地基,ROS 是骨架,Gazebo 是血肉。地基不稳,上面全白搭。所以我建议你每装完一层,都按我上面说的验证方法检查一下,别偷懒。

最终验证清单:

  • ✅ Ubuntu 能正常启动,网络通畅
  • ✅ roscore 能启动,无报错
  • ✅ gazebo 能打开,显示 3D 场景
  • ✅ rosrun gazebo_ros gazebo 能正常调用

全部通过?恭喜,你的仿真环境已经搭好了。后面我们就可以开始真正的仿真之旅了。

可可精品资料库