一、仿真环境搭建:Ubuntu系统安装与配置、ROS2环境搭建、Autoware源码编译与安装、依赖包管理
说实话,做自动驾驶仿真这么多年,我见过太多人在环境搭建这一步就卡住了。有的编译到半夜报错,有的装完系统发现内核版本不对。嗯,今天我就把这一整套流程掰开揉碎了讲给你听。
1.1 Ubuntu系统安装与配置
Autoware官方推荐的是Ubuntu 22.04 LTS。为什么是这个版本?因为ROS2 Humble正好支持它。我刚开始用20.04配Galactic,后来发现好多新功能包都不支持,折腾了两周才换过来。
系统安装要点
- 磁盘分区:建议至少留出100GB空间。Autoware编译完大概占30GB,加上数据集和仿真工具,100GB是起步价。
- Swap分区:如果你的内存小于16GB,一定要设Swap。我遇到过编译到一半内存爆掉的情况,那叫一个崩溃。
- 显卡驱动:如果你用NVIDIA显卡,建议装470或525版本驱动。别问我为什么,问就是踩过坑。
个人习惯:我装完系统第一件事就是换国内源。清华源、阿里源都行,不然下载依赖包能等到你怀疑人生。
系统配置清单
| 配置项 | 推荐值 | 备注 |
|---|---|---|
| CPU | 8核以上 | 编译时多核并行 |
| 内存 | 16GB+ | 32GB更稳 |
| 磁盘 | 100GB+ | SSD优先 |
| 显卡 | NVIDIA GTX 1060+ | 用于仿真渲染 |
1.2 ROS2环境搭建
ROS2 Humble是Autoware官方指定的版本。为什么不用Foxy?因为Foxy的生命周期已经结束了。说白了,你不想用着用着发现某个包不维护了吧?
安装步骤
- 设置locale(确保UTF-8)
- 添加ROS2 apt源
- 安装ros-humble-desktop
- 安装rosdep并初始化
# 设置locale
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
# 添加ROS2源
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
# 安装ROS2 Humble
sudo apt update
sudo apt install ros-humble-desktop python3-colcon-common-extensions
避坑指南:我曾经在安装rosdep时卡了半小时,后来发现是网络问题。建议先配好代理,或者直接用国内镜像。
1.3 Autoware源码编译与安装
Autoware的编译方式有两种:一种是二进制安装,简单但功能受限;另一种是源码编译,灵活但耗时。我个人推荐源码编译,因为你可以随时修改代码,调试起来也方便。
源码编译流程
- 克隆Autoware仓库
- 安装依赖(这一步最坑)
- 使用colcon编译
# 克隆Autoware
mkdir -p ~/autoware_ws/src
cd ~/autoware_ws
git clone https://github.com/autowarefoundation/autoware.git src/autoware
# 安装依赖
cd ~/autoware_ws
./setup-dev-env.sh
# 编译(-j4表示4核并行,根据你的CPU调整)
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release -j4
注意:编译时间取决于你的机器配置。我见过有人用8核机器编译了40分钟,也有人用4核机器编译了2小时。建议编译时别干别的,不然内存不够会报错。
1.4 依赖包管理
依赖包管理是Autoware环境搭建中最容易出问题的环节。说白了,Autoware依赖了上百个第三方库,版本稍微不对就编译不过。
核心依赖包
| 依赖包 | 作用 | 版本要求 |
|---|---|---|
| Eigen3 | 线性代数计算 | 3.3.7+ |
| PCL | 点云处理 | 1.12+ |
| OpenCV | 图像处理 | 4.5+ |
| Ceres Solver | 非线性优化 | 2.0+ |
| CUDA | GPU加速 | 11.4+ |
依赖管理技巧
- 使用vcs工具:Autoware的依赖通过.repos文件管理,用vcs import可以一键拉取所有依赖。
- rosdep自动安装:rosdep可以自动识别并安装系统依赖,省去手动查找的麻烦。
- 版本锁定:我建议把依赖版本锁定在Autoware官方推荐的版本,不要随便升级。
# 使用vcs导入依赖
cd ~/autoware_ws
vcs import src < src/autoware/autoware.repos
# 使用rosdep安装系统依赖
rosdep install -y --from-paths src --ignore-src --rosdistro humble
我的经验:有一次我升级了CUDA版本,结果Ceres Solver编译不过。查了半天才发现是CUDA 12和Ceres 2.0不兼容。从那以后,我再也不敢随便升级依赖了。
1.5 知识体系总览
下面这张图是我自己整理的,把整个环境搭建的流程串起来了。你跟着这个图走,基本不会迷路。
嗯,整个流程就是这样。你可能会问:为什么一定要按这个顺序?因为底层系统没配好,上层编译一定会报错。我见过有人跳过系统配置直接编译Autoware,结果显卡驱动不对,仿真跑不起来。
最后提醒一句:环境搭建别着急,每一步都验证通过再往下走。比如装完ROS2,先跑个talker-listener测试一下,确认没问题再编译Autoware。