2. 开发环境搭建:Ubuntu + ROS2 + Autoware源码编译、依赖安装与工作空间配置

说实话,环境搭建这一步,劝退了很多人。

我见过不少同学,Autoware代码都下好了,结果卡在编译上,一卡就是两三天。我自己刚入坑的时候也踩过不少坑,尤其是ROS2和Autoware版本匹配的问题,折腾得我差点想换行。嗯,今天咱们就把这事彻底捋清楚。

2.1 系统选择:为什么我推荐Ubuntu 22.04

Autoware目前对Ubuntu的支持最成熟。我个人习惯用Ubuntu 22.04 LTS,原因很简单:ROS2 Humble官方支持的就是22.04,而Autoware最新版也是基于Humble开发的。你想想看,如果系统版本不对,后面全是坑。

Ubuntu版本 对应ROS2版本 Autoware兼容性 我的建议
20.04 LTS Foxy / Galactic 部分支持(需旧版) 不推荐,依赖太老
22.04 LTS Humble 完全支持 ✅ 首选
24.04 LTS Rolling 实验性支持 ❌ 别碰,会哭
⚠️ 避坑提醒: 我曾经在Ubuntu 24.04上硬着头皮装Autoware,结果TensorRT死活不认显卡驱动,折腾了两天最后重装了系统。所以,老老实实用22.04吧。

2.2 ROS2 Humble 安装

ROS2的安装其实不复杂,但有几个细节要注意。说白了,就是加源、更新、安装三步走。

# 1. 设置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

# 2. 添加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
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

# 3. 安装ROS2 Humble桌面版(包含可视化工具)
sudo apt update
sudo apt install ros-humble-desktop

# 4. 安装开发工具
sudo apt install ros-dev-tools
💡 小技巧: 安装完成后,记得把source命令加到.bashrc里,不然每次开终端都要手动source一遍。我个人习惯这样写:echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

2.3 Autoware源码下载

Autoware的代码量很大,直接git clone会等很久。我建议用--depth 1参数,只拉取最新版本,省时间也省硬盘。

# 创建工作空间
mkdir -p ~/autoware_ws/src
cd ~/autoware_ws

# 下载Autoware源码(带子模块)
git clone --depth 1 https://github.com/autowarefoundation/autoware.git src/autoware

# 初始化子模块
cd src/autoware
git submodule update --init --recursive

这里有个坑——子模块下载特别慢,尤其是有些依赖在GitHub上,网络不好的时候会卡住。我曾经在公司网络下等了40分钟还没下完,后来换了手机热点才搞定。

🔑 关键点: 如果子模块下载失败,可以单独手动下载,放到对应的目录下。别死等,浪费时间。

2.4 依赖安装:一个脚本搞定大部分

Autoware官方提供了一个依赖安装脚本,但说实话,它不一定能一次跑通。我建议分两步走:先装系统依赖,再装Python依赖。

# 进入Autoware目录
cd ~/autoware_ws/src/autoware

# 运行官方依赖安装脚本
./setup-dev-env.sh

# 安装Python依赖
pip3 install -r requirements.txt

为什么会这样?因为有些依赖是系统级的,比如CUDA、TensorRT,这些需要手动配置。脚本只能装那些apt能搞定的包。

依赖类型 安装方式 常见问题
系统依赖(apt) setup-dev-env.sh 网络超时,换源可解决
Python依赖(pip) requirements.txt 版本冲突,建议用虚拟环境
CUDA / TensorRT 手动安装 版本必须匹配Autoware要求
⚠️ 特别注意: CUDA版本一定要和Autoware要求的对应。我记得有一次我装了CUDA 12.0,结果Autoware只支持11.8,编译时报了一堆莫名其妙的错误。查了半天才发现是CUDA版本问题。

2.5 工作空间配置与编译

依赖装好之后,就可以编译了。Autoware用的是colcon编译工具,和ROS2的编译方式一样。

# 回到工作空间根目录
cd ~/autoware_ws

# 编译(第一次编译会很慢,大概30分钟到1小时)
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

# 如果只想编译某个包,可以指定
colcon build --packages-select autoware_planning

嗯,这里要注意,第一次编译时,colcon会下载很多第三方依赖,比如Boost、Eigen、PCL这些。如果网络不好,建议先手动把这些库装好。

💡 我的经验: 编译时加上--symlink-install参数,这样修改Python代码后不需要重新编译,直接就能生效。调试的时候特别方便。

2.6 验证环境是否搭建成功

编译完成后,别急着跑。先验证一下环境是否正常。

# 1. 检查ROS2环境
ros2 --version

# 2. 检查Autoware是否编译成功
source install/setup.bash
ros2 launch autoware_launch logging_simulator.launch.xml

# 3. 如果能看到Rviz界面,说明环境搭建成功

如果启动时提示找不到某个包,别慌。大概率是source没执行,或者编译时某个包失败了。可以用colcon build --packages-skip跳过有问题的包,先跑通核心功能。

2.7 知识体系总览

下面这张图,是我自己整理的环境搭建核心流程。你跟着走,基本不会出大问题。

Autoware开发环境搭建核心流程 Ubuntu 22.04 LTS ROS2 Humble Autoware源码下载 依赖安装 colcon编译 ✅ 环境就绪 常见坑点 • 系统版本不匹配 • ROS2 source未配置 • 子模块下载失败 • CUDA版本不对 • 网络超时 • 编译内存不足 • Python包冲突 • 缺少系统依赖 • 工作空间路径错误 • 权限问题

这张图把整个流程串起来了。你跟着走,每一步都验证一下,基本不会出大问题。如果卡住了,回头看看是不是哪一步跳过了。

📌 总结一下: 环境搭建说白了就是「系统→ROS2→源码→依赖→编译」这五步。每一步都有坑,但只要你细心,都能过去。我当初也是这么一步步走过来的,别怕。

可可精品资料库