一、仿真环境搭建: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的生命周期已经结束了。说白了,你不想用着用着发现某个包不维护了吧?

安装步骤

  1. 设置locale(确保UTF-8)
  2. 添加ROS2 apt源
  3. 安装ros-humble-desktop
  4. 安装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的编译方式有两种:一种是二进制安装,简单但功能受限;另一种是源码编译,灵活但耗时。我个人推荐源码编译,因为你可以随时修改代码,调试起来也方便。

源码编译流程

  1. 克隆Autoware仓库
  2. 安装依赖(这一步最坑)
  3. 使用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仿真环境搭建知识体系 1. Ubuntu系统安装与配置 磁盘分区 | Swap配置 | 显卡驱动 | 国内源设置 2. ROS2环境搭建 Humble版本 | locale设置 | apt源配置 | rosdep初始化 3. Autoware源码编译与安装 仓库克隆 | 依赖安装 | colcon编译 | 编译优化 4. 依赖包管理 Eigen3 | PCL | OpenCV | Ceres | CUDA | vcs工具 | rosdep 从底层到上层,逐层搭建

嗯,整个流程就是这样。你可能会问:为什么一定要按这个顺序?因为底层系统没配好,上层编译一定会报错。我见过有人跳过系统配置直接编译Autoware,结果显卡驱动不对,仿真跑不起来。

最后提醒一句:环境搭建别着急,每一步都验证通过再往下走。比如装完ROS2,先跑个talker-listener测试一下,确认没问题再编译Autoware。

可可精品资料库