保姆级教程:在Ubuntu 16.04上从源码编译安装Autoware.AI 1.10(含ROS Kinetic依赖配置)
从零搭建Autoware.AI 1.10开发环境:Ubuntu 16.04源码编译全攻略
在自动驾驶技术快速发展的今天,Autoware.AI作为开源自动驾驶软件栈的标杆项目,为开发者提供了从感知到规划的完整解决方案。本文将手把手带你完成Ubuntu 16.04系统下Autoware.AI 1.10版本的源码编译安装,涵盖ROS Kinetic依赖配置、常见编译错误修复到最终运行验证的全流程。
1. 系统准备与环境检查
在开始安装前,确保你的Ubuntu 16.04系统满足以下基本要求:
硬件配置:
- 至少8GB内存(推荐16GB)
- 50GB可用磁盘空间
- NVIDIA显卡(如需CUDA加速)
系统设置:
# 检查系统版本 lsb_release -a # 更新软件源 sudo apt-get update && sudo apt-get upgrade -y特别注意:Autoware.AI 1.10对Qt版本有特定要求。虽然官方文档建议Qt 5.2.1+,但在实际测试中:
# 检查已安装Qt版本 qmake --version # 若未安装可执行 sudo apt-get install qt5-default提示:建议使用SSD硬盘以加快编译速度,机械硬盘可能导致编译时间超过3小时
2. 依赖安装与ROS Kinetic配置
2.1 基础依赖安装
运行以下命令安装编译所需工具链:
sudo apt-get install -y \ git cmake build-essential \ python-catkin-pkg python-rosdep \ ros-kinetic-catkin \ python3-pip python3-colcon-common-extensions2.2 ROS Kinetic完整安装
若尚未安装ROS Kinetic,执行:
# 设置软件源 sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 # 完整安装ROS sudo apt-get update sudo apt-get install ros-kinetic-desktop-full # 初始化rosdep sudo rosdep init rosdep update2.3 Python环境配置
Autoware部分工具依赖Python 2.7和3.5+:
pip install --upgrade pip pip install setuptools==44.1.0 pip3 install -U setuptools vcstool3. 源码获取与工作空间构建
3.1 创建工作区
mkdir -p ~/autoware.ai/src cd ~/autoware.ai3.2 获取源码
推荐使用vcs工具批量克隆仓库:
wget -O ~/autoware.ai/src https://gitlab.com/autowarefoundation/autoware.ai/autoware/-/raw/1.10.0/autoware.ai.repos vcs import src < autoware.ai.repos替代方案:若网络不稳定,可手动下载ZIP包:
wget https://gitlab.com/autowarefoundation/autoware.ai/autoware/-/archive/1.10.0/autoware-1.10.0.tar.gz tar -zxvf autoware-1.10.0.tar.gz -C src/4. 编译过程与问题排查
4.1 依赖安装
进入ros目录安装依赖:
cd ~/autoware.ai/src/ros rosdep install -y --from-paths src --ignore-src --rosdistro kinetic4.2 常见编译错误解决方案
| 错误类型 | 解决方案 | 命令示例 |
|---|---|---|
| 权限不足 | 赋予执行权限 | chmod -R +x ~/autoware.ai/src |
| 缺失psutil | 安装Python模块 | pip install psutil |
| CUDA冲突 | 检查版本 | nvcc --version |
4.3 正式编译
执行自动化编译脚本:
./catkin_make_release编译优化技巧:
- 使用
-j参数并行编译:./catkin_make_release -j$(nproc) - 内存不足时可尝试:
export MAKEFLAGS="-j2"
5. 运行验证与标定工具使用
5.1 启动Autoware
编译成功后运行:
./run正常启动后应看到包含以下模块的图形界面:
- Quick Start:快速启动面板
- RViz:可视化工具
- Simulation:仿真选项
5.2 标定工具准备
进行激光雷达与相机联合标定前需准备:
- 标定棋盘(建议A3尺寸)
- 同步的时间戳数据
- 标定场景(5-10米开阔空间)
5.3 标定流程关键步骤
- 在Calibration Tool Kit中选择传感器类型
- 导入标定数据包
- 调整初始变换参数
- 运行自动优化算法
# 标定数据录制命令示例 rosbag record /points_raw /image_raw6. 性能优化与开发技巧
6.1 内存管理
当显存小于8GB时:
- 禁用CUDA加速节点
- 降低点云分辨率
- 关闭非必要可视化插件
6.2 开发调试建议
- 使用
roslaunch单独启动模块 - 通过
rqt_graph检查节点连接 - 日志分级设置:
export ROSCONSOLE_CONFIG_FILE=~/autoware.ai/ros/src/.rosconsole6.3 扩展开发
创建新功能包的标准流程:
cd ~/autoware.ai/src/ros/src catkin_create_pkg my_package roscpp std_msgs在Ubuntu 16.04这个特定环境下,最耗时的往往是依赖解决环节。有次在调试CUDA 10.0与ROS Kinetic的兼容性问题时,发现重新安装驱动后需要特别注意gcc版本匹配。建议在安装NVIDIA驱动后立即锁定gcc版本:
sudo apt-get install gcc-5 g++-5 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50