第1章:环境搭建——Ubuntu系统安装、ROS Noetic安装、工作空间创建、必备工具介绍

说实话,做SLAM这几年,我见过太多人在环境搭建这一步就卡住了。有的装错ROS版本,有的分区没分好,后面磁盘不够用。嗯,这一章咱们就把地基打牢。

我个人习惯是:先规划,再动手。你想想看,如果后面跑着跑着发现磁盘满了,或者ROS版本不兼容,那得多闹心。所以这一章,我会把每一步的坑都提前告诉你。

1.1 Ubuntu系统安装——选对版本很重要

ROS Noetic 官方支持的是 Ubuntu 20.04 LTS。别问我为什么不用18.04或者22.04,Noetic就是为20.04量身定做的。我刚开始学的时候也试过在22.04上硬装,结果各种依赖冲突,折腾了两天最后还是乖乖换回20.04。

1.1.1 系统要求

项目 最低配置 推荐配置
CPU 双核 2GHz 四核 3GHz+
内存 4GB 8GB+
硬盘 40GB 120GB SSD
显卡 集成显卡 NVIDIA GTX 1050+
注意:如果你打算用Gazebo仿真,建议硬盘至少留80GB。我曾经因为只分了60GB,跑了两周仿真就满了,还得重新分区,数据全丢了。

1.1.2 安装步骤

  1. 下载镜像:去Ubuntu官网下载20.04.6 LTS桌面版。
  2. 制作启动盘:用Rufus(Windows)或balenaEtcher(macOS)写入U盘。
  3. 分区建议
    • /boot:1GB
    • /:40GB
    • /home:剩余全部
    • swap:8GB(如果你内存够大,可以不要)
  4. 安装过程:选择「清除整个磁盘并安装Ubuntu」——别怕,这是虚拟机或者新硬盘的操作。
小技巧:安装时记得断网,这样安装速度会快很多。联网的话它会下载更新,反而拖慢进度。

1.2 ROS Noetic安装——一条命令搞定?没那么简单

网上很多教程说「一行命令装ROS」,其实那是理想情况。我遇到过网络问题、源的问题、依赖冲突……所以咱们还是老老实实一步步来。

1.2.1 添加软件源

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

1.2.2 添加密钥

sudo apt install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
注意:如果这一步报错说密钥过期,别慌。去ROS官网找最新的密钥更新命令就行。我遇到过两次,都是因为时间久了密钥更新了。

1.2.3 安装ROS Noetic

sudo apt update
sudo apt install ros-noetic-desktop-full

这个包大概1.5GB,包含Rviz、Gazebo、各种SLAM库。如果你磁盘紧张,可以装ros-noetic-desktop(不含Gazebo),但我建议一步到位。

1.2.4 初始化rosdep

sudo rosdep init
rosdep update

这一步经常卡住。如果rosdep init报错,多半是网络问题。我当时的解决办法是:换个网络,或者用手机热点试试。

1.2.5 设置环境变量

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

验证一下:

roscore

如果看到ROS master启动的信息,恭喜你,装好了。

1.3 工作空间创建——你的代码仓库

工作空间(workspace)说白了就是你的项目文件夹。ROS里所有代码、包都放在这里。我习惯用catkin_ws这个名字。

1.3.1 创建并编译

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make

第一次编译会生成builddevel两个文件夹。别问为什么,这是ROS的编译机制。

1.3.2 设置工作空间环境

echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
检查:运行echo $ROS_PACKAGE_PATH,如果看到你的工作空间路径,说明设置成功。

1.4 必备工具介绍——Rviz和Gazebo

这两个工具,你后面几乎天天用。Rviz负责看数据,Gazebo负责造数据。

1.4.1 Rviz——数据可视化利器

Rviz可以显示激光雷达点云、机器人模型、路径、地图……说白了,就是把你算法里的数据变成图像。

启动方式:

rviz

常用功能:

  • Displays面板:添加各种可视化插件
  • Fixed Frame:设置参考坐标系,一般设为mapodom
  • 保存配置:调好界面后,保存为.rviz文件,下次直接加载
避坑指南:我曾经在调试时,Rviz一直不显示点云,折腾了半天才发现是Fixed Frame设错了。记住:Fixed Frame必须和你的数据坐标系一致

1.4.2 Gazebo——仿真环境搭建

Gazebo可以模拟机器人、传感器、物理碰撞。没有真激光雷达?没关系,Gazebo给你造一个。

启动方式:

gazebo

常用操作:

  • Insert:添加模型(机器人、障碍物、地面)
  • World:管理仿真环境
  • Plugins:给模型添加传感器(激光雷达、IMU、相机)
注意:Gazebo很吃显卡。如果你用虚拟机,建议开启3D加速。否则打开Gazebo会卡成PPT。我当年用笔记本集显跑Gazebo,帧率不到10fps,后来换了台式机才流畅。

1.5 本章知识体系

下面这张图,帮你理清这一章的核心逻辑:

第1章:环境搭建知识体系 SLAM开发环境 Ubuntu 20.04 LTS ROS Noetic catkin工作空间 Rviz可视化 Gazebo仿真 系统安装/分区 安装/配置/验证 创建/编译/环境 点云/地图/路径 传感器/物理/模型 打好基础,后面SLAM建图与定位才能跑得顺

这一章的内容,说白了就是给你搭一个「能跑SLAM」的电脑环境。Ubuntu是操作系统,ROS是通信框架,工作空间是项目容器,Rviz和Gazebo是调试工具。四者缺一不可。

最后说一句:环境搭建是最枯燥的,但也是最关键的。我见过太多人因为环境没配好,后面跑demo跑不出来,还以为是代码问题。所以,耐心点,一步步来。

公众号:蓝海资料掘金营,微信deep3321