1. Autoware概述与环境搭建
各位同学好,我是你们这门课的主讲。今天咱们聊聊Autoware的来龙去脉,以及怎么把它的开发环境搭起来。
说实话,我第一次接触Autoware是在2018年。那时候它还是个刚起步的开源项目,文档少得可怜。现在再看,已经成了自动驾驶领域绕不开的标杆。嗯,这中间的变化,我算是亲眼见证了。
1.1 Autoware发展史
Autoware最早是日本名古屋大学的加藤教授团队搞出来的。2015年首次开源,那时候还叫"Autoware.ai"。说白了,就是想把自动驾驶的门槛降下来,让更多开发者能参与。
我给大家梳理几个关键节点:
- 2015年:Autoware 1.0发布,基于ROS1,主要做感知和规划
- 2018年:加入Autoware Foundation,开始规范化发展
- 2020年:Autoware.Auto发布,转向ROS2架构
- 2022年:Autoware Universe成为主流版本,功能模块化更清晰
你想想看,从最初只能跑个demo,到现在能支撑完整的L4级自动驾驶系统,这进步速度确实惊人。
核心变化:从ROS1迁移到ROS2,解决了实时性和安全性两大痛点。我在项目中遇到过ROS1节点崩溃导致整个系统挂掉的情况,换成ROS2后,这种问题基本没再出现过。
1.2 核心功能模块介绍
Autoware的功能模块,我习惯把它分成三大块:感知、规划、控制。咱们用一张图来看清楚:
这张图我画了好几次才满意。你注意看箭头方向,数据是从左往右流的。传感器数据先进感知模块,处理完交给规划模块,最后控制模块去执行。逻辑很清晰。
1.3 Ubuntu + ROS2环境搭建
我个人习惯用Ubuntu 22.04 + ROS2 Humble这个组合。为什么?因为稳定。我在2023年用Ubuntu 20.04搭过一次,折腾了两天才搞定依赖问题。换成22.04后,半小时就搞定了。
具体步骤:
- 安装Ubuntu 22.04 - 建议用双系统,别用虚拟机。虚拟机跑Autoware会卡到你怀疑人生。
- 配置系统源 - 换成国内镜像源,不然下载速度会让你崩溃。
- 安装ROS2 Humble - 官方教程很详细,照着来就行。
- 安装依赖包 - 包括Eigen3、PCL、OpenCV这些。
小技巧:安装ROS2时,记得把ros-humble-desktop和ros-humble-dev都装上。前者是运行环境,后者是开发环境。我刚开始只装了desktop,结果编译代码时各种报错,折腾了半天才发现少了dev包。
安装ROS2的命令很简单:
# 设置源
sudo apt update && 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
# 安装ROS2 Humble
sudo apt update
sudo apt install ros-humble-desktop ros-humble-dev
1.4 Autoware源码编译与安装
Autoware的编译,我建议用源码编译。虽然官方提供了Docker镜像,但源码编译能让你更清楚整个系统的结构。出了问题也知道去哪找。
编译前要确认几件事:
- 硬盘空间至少留50GB - 编译产物很占地方
- 内存建议16GB以上 - 我8GB的笔记本编译到一半直接OOM了
- 网络要稳定 - 下载依赖包时断网会非常痛苦
注意:千万不要在root用户下编译Autoware!我曾经图省事用root编译,结果权限混乱,最后只能重装系统。血的教训。
编译步骤:
# 创建工作空间
mkdir -p ~/autoware_ws/src
cd ~/autoware_ws
# 下载源码
wget https://raw.githubusercontent.com/autowarefoundation/autoware/main/autoware.repos
vcs import src < autoware.repos
# 安装依赖
source /opt/ros/humble/setup.bash
rosdep update
rosdep install -y --from-paths src --ignore-src --rosdistro humble
# 编译
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
编译时间取决于你的机器配置。我用的i7-12700H + 32GB内存,大概需要40分钟。如果你用笔记本,建议插上电源,别让电脑睡着。
编译完成后,别忘了设置环境变量:
echo "source ~/autoware_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc
验证安装是否成功:
ros2 launch autoware_launch logging_simulator.launch.xml map_path:=/path/to/map vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit
如果能看到Rviz界面正常启动,恭喜你,环境搭好了。
避坑指南:编译时如果遇到"Could not find a package configuration file"这类错误,别慌。大概率是某个依赖没装全。运行rosdep install --from-paths src --ignore-src -r -y再试一次。我遇到过三次这种问题,都是依赖没装全导致的。
好了,环境搭建就讲到这里。记住,搭建环境是第一步,也是最容易出问题的一步。耐心点,慢慢来。