第3章:环境搭建:Ubuntu系统安装、ROS Noetic安装、Python3与依赖库

说实话,环境搭建这事儿,看着简单,但坑是真不少。我见过太多同学,代码写得挺溜,结果卡在环境配置上,一卡就是好几天。咱们这节课,就把这些坑一个个填平。

3.1 为什么选Ubuntu 20.04?

你可能要问:为什么非得是Ubuntu 20.04?我用18.04或者22.04不行吗?

嗯,这里要注意。ROS Noetic官方只支持Ubuntu 20.04(Focal Fossa)。我当年刚入行时,图新鲜装了22.04,结果折腾了两天,ROS死活装不上。后来老老实实换回20.04,半小时搞定。说白了,做工程,稳定比版本新更重要。

核心要求:

  • 操作系统:Ubuntu 20.04.6 LTS(64位)
  • 内核版本:5.4.0 系列
  • 磁盘空间:至少留出 40GB(建议 80GB+)
  • 内存:8GB 起步,16GB 更舒服

3.2 Ubuntu 20.04 安装要点

我个人习惯用U盘做启动盘。工具推荐 Rufus(Windows)或者 balenaEtcher(跨平台)。

安装时,有几点你一定要注意:

  1. 分区方案:我建议 / 分区 30GB,/home 分区剩下的全给。swap 分区设成跟内存一样大就行。
  2. 软件源:安装完第一件事,换国内源。阿里云、清华、中科大,选一个离你近的。
  3. 显卡驱动:如果你用NVIDIA显卡,记得在「软件与更新」里勾选专有驱动。我曾经因为没装驱动,点云可视化卡成PPT。

小技巧:安装时断网,可以跳过下载更新,安装速度会快很多。装完再换源更新也不迟。

3.3 ROS Noetic 安装实战

ROS Noetic 是 ROS1 的最后一个长期支持版本。为什么选它?因为目前大部分激光雷达的驱动和算法包,还是基于 ROS1 开发的。你想想看,如果选 ROS2,很多现成的工具包都用不了,那得多麻烦。

安装步骤其实就几条命令:

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

# 2. 添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

# 3. 更新并安装完整桌面版
sudo apt update
sudo apt install ros-noetic-desktop-full

# 4. 初始化 rosdep
sudo rosdep init
rosdep update

# 5. 设置环境变量
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

# 6. 安装构建工具
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

避坑指南:我曾经在 rosdep init 这一步卡了半小时。如果你遇到网络问题,可以试试:

sudo apt install python3-rosdep2
sudo rosdep init --rosdistro noetic
rosdep update

如果还是不行,大概率是网络问题。换个时间段,或者挂个代理试试。

3.4 Python3 与依赖库

ROS Noetic 默认就是 Python3,这点比 Melodic 舒服多了。不过,系统自带的 Python3 版本是 3.8,够用。

咱们做点云处理,核心依赖就三个:

库名 版本要求 用途
numpy ≥1.19.5 点云数据矩阵运算
open3d ≥0.13.0 点云可视化、IO、处理
pandas ≥1.3.0 标注数据表格管理

安装命令很简单:

# 先升级 pip
python3 -m pip install --upgrade pip

# 安装核心库
pip3 install numpy==1.21.0
pip3 install open3d==0.15.2
pip3 install pandas==1.3.5

# 验证安装
python3 -c "import numpy; print(numpy.__version__)"
python3 -c "import open3d; print(open3d.__version__)"
python3 -c "import pandas; print(pandas.__version__)"

个人经验:我建议用虚拟环境。虽然 ROS 的 Python 环境比较特殊,但我们可以用 venv 来隔离项目依赖:

sudo apt install python3-venv
python3 -m venv lidar_env
source lidar_env/bin/activate
pip3 install numpy open3d pandas

这样就算装坏了,删掉重来就行,不影响系统环境。

3.5 验证你的环境

装完别急着走。咱们跑个简单的测试,确保所有东西都正常:

# 测试 ROS
roscore &
rosnode list
# 应该输出 /rosout

# 测试 Open3D
python3 -c "
import open3d as o3d
import numpy as np

# 生成随机点云
points = np.random.rand(100, 3)
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(points)
print('点云点数:', len(pcd.points))
print('环境搭建成功!')
"

如果看到「环境搭建成功!」,恭喜你,基础环境已经就绪。

总结一下:

  • Ubuntu 20.04 是基石,别贪新
  • ROS Noetic 安装就那几步,耐心点
  • Python3 依赖库用 pip 装,版本别乱改
  • 装完一定要验证,别留隐患

环境搭好了,后面咱们就能专心搞点云标注了。说实话,这一步虽然枯燥,但基础打牢了,后面会顺很多。


专注资料整理