环境搭建(上):Ubuntu系统安装、ROS2 Humble安装、基础依赖库配置
说实话,做自动驾驶仿真这么多年,我踩过最多的坑就是环境搭建。很多同学一上来就急着跑代码,结果卡在安装配置上,一卡就是好几天。我个人习惯是,先把地基打牢,后面才能跑得快。这一章咱们就把Ubuntu、ROS2 Humble和基础依赖库一次性搞定。
本章核心目标:搭建一个稳定、可复现的联合仿真开发环境,确保SUMO和CARLA能顺畅通信。
1. Ubuntu 22.04 LTS 系统安装
为什么选22.04?说白了,ROS2 Humble官方推荐的就是这个版本。我试过20.04硬装Humble,折腾了两天,最后还是乖乖重装了系统。你想想看,何必跟自己过不去呢?
1.1 系统要求
| 硬件 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 4核 | 8核及以上 |
| 内存 | 8GB | 16GB+ |
| 显卡 | GTX 1050 | RTX 3060+ |
| 硬盘 | 50GB | 100GB SSD |
注意:如果你用虚拟机,记得给显卡直通。我曾经在VirtualBox里跑CARLA,画面卡成PPT,后来才发现是没开3D加速。
1.2 安装步骤
- 下载镜像:去Ubuntu官网下载22.04 LTS桌面版
- 制作启动盘:用Rufus(Windows)或dd命令(Linux/Mac)
- 分区建议:
- /boot:1GB
- /:50GB
- /home:剩余空间
- swap:跟内存大小一致
- 安装后更新:
sudo apt update && sudo apt upgrade -y
sudo apt install build-essential git cmake -y
小技巧:安装时选「最小安装」,省掉LibreOffice那些用不上的软件。我每次装机都这么干,干净利落。
2. ROS2 Humble 安装
ROS2 Humble是2022年的LTS版本,支持到2027年。做联合仿真,ROS2就是那个粘合剂——SUMO发消息,CARLA收消息,全靠它。
2.1 设置软件源
# 添加ROS2 GPG key
sudo apt install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
# 添加仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update
2.2 安装ROS2 Humble
这里我建议装桌面版,包含Rviz2等可视化工具。调试的时候你就知道有多香了。
sudo apt install ros-humble-desktop -y
嗯,这一步大概要下载1.5GB,网速慢的话可以去泡杯咖啡。我记得第一次装的时候等了快半小时,结果发现忘了换国内镜像源……
2.3 配置环境变量
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
验证安装:打开新终端,输入 ros2 --version,如果显示 ros-humble 相关信息,说明安装成功。
3. 基础依赖库配置
这些库是SUMO和CARLA的「翻译官」。没有它们,两个软件各说各话,根本没法协同工作。
3.1 Python环境
我个人习惯用Python 3.10,Ubuntu 22.04自带的就是这个版本。别手贱去装Python 3.11,有些库还没适配。
sudo apt install python3-pip python3-venv -y
pip3 install --upgrade pip
3.2 关键Python库
| 库名 | 用途 | 安装命令 |
|---|---|---|
| numpy | 数值计算 | pip3 install numpy |
| pyproj | 坐标转换 | pip3 install pyproj |
| lxml | XML解析 | pip3 install lxml |
| shapely | 几何操作 | pip3 install shapely |
避坑指南:我曾经在虚拟环境里装shapely,结果忘了激活环境,装到了系统Python里。后面跑代码各种报错,排查了一下午才发现。记住:先激活虚拟环境,再装依赖。
3.3 ROS2依赖包
sudo apt install ros-humble-cv-bridge ros-humble-image-transport -y
sudo apt install ros-humble-tf2-geometry-msgs ros-humble-nav-msgs -y
这些包负责图像传输和坐标变换。做联合仿真时,CARLA的相机数据要通过cv_bridge转成ROS2的消息格式,才能被其他节点消费。
4. 知识体系总览
下面这张图是我自己整理的,把这一章的核心逻辑串起来了。你保存下来,以后忘了哪个步骤可以回来看看。
5. 验证环境
装完别急着走,跑个简单的测试,确保所有组件都能正常工作。
# 测试ROS2
ros2 run demo_nodes_cpp talker
# 另开终端
ros2 run demo_nodes_py listener
如果能看到「I heard: Hello World」之类的输出,说明ROS2环境没问题。接下来就可以放心地进入下一阶段了。
我的习惯:每次装完环境,我都会写一个checklist脚本,一键验证所有依赖。后面换机器或者重装系统,直接跑一遍脚本,省心省力。
好了,环境搭建的上半部分就到这儿。这一章的内容虽然基础,但真的很重要。我见过太多人因为环境问题浪费好几天,最后发现只是少装了一个库。稳扎稳打,后面才能跑得快。