第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(跨平台)。
安装时,有几点你一定要注意:
- 分区方案:我建议 / 分区 30GB,/home 分区剩下的全给。swap 分区设成跟内存一样大就行。
- 软件源:安装完第一件事,换国内源。阿里云、清华、中科大,选一个离你近的。
- 显卡驱动:如果你用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 装,版本别乱改
- 装完一定要验证,别留隐患
环境搭好了,后面咱们就能专心搞点云标注了。说实话,这一步虽然枯燥,但基础打牢了,后面会顺很多。