第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+ |
1.1.2 安装步骤
- 下载镜像:去Ubuntu官网下载20.04.6 LTS桌面版。
- 制作启动盘:用Rufus(Windows)或balenaEtcher(macOS)写入U盘。
- 分区建议:
/boot:1GB/:40GB/home:剩余全部swap:8GB(如果你内存够大,可以不要)
- 安装过程:选择「清除整个磁盘并安装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 -
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
第一次编译会生成build和devel两个文件夹。别问为什么,这是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:设置参考坐标系,一般设为
map或odom - 保存配置:调好界面后,保存为
.rviz文件,下次直接加载
1.4.2 Gazebo——仿真环境搭建
Gazebo可以模拟机器人、传感器、物理碰撞。没有真激光雷达?没关系,Gazebo给你造一个。
启动方式:
gazebo
常用操作:
- Insert:添加模型(机器人、障碍物、地面)
- World:管理仿真环境
- Plugins:给模型添加传感器(激光雷达、IMU、相机)
1.5 本章知识体系
下面这张图,帮你理清这一章的核心逻辑:
这一章的内容,说白了就是给你搭一个「能跑SLAM」的电脑环境。Ubuntu是操作系统,ROS是通信框架,工作空间是项目容器,Rviz和Gazebo是调试工具。四者缺一不可。
公众号:蓝海资料掘金营,微信deep3321