1. 环境准备Ubuntu与ROS的完美组合在开始Autoware的安装之前我们需要确保基础环境已经准备就绪。Autoware作为基于ROSRobot Operating System的自动驾驶开源框架对操作系统和ROS版本有特定要求。根据我的实测经验Ubuntu 18.04 LTS与ROS Melodic是最稳定的组合这也是Autoware官方推荐的配置。首先我们需要安装Ubuntu 18.04。如果你已经安装了其他版本的Ubuntu可以考虑使用虚拟机或双系统方案。我建议使用实体机安装因为虚拟机在后续的传感器模拟和性能测试中可能会遇到瓶颈。安装完成后记得执行系统更新sudo apt update sudo apt upgrade -y接下来是ROS Melodic的安装。这里有个小技巧在运行官方安装脚本前先更换软件源。国内用户可以使用清华或中科大的镜像源速度会快很多。具体操作如下sudo sh -c echo deb http://mirrors.tuna.tsinghua.edu.cn/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 sudo apt update安装完整的ROS桌面版sudo apt install ros-melodic-desktop-full -y安装完成后别忘了设置环境变量。我建议将下面这行命令添加到~/.bashrc文件中这样每次打开终端都会自动加载ROS环境echo source /opt/ros/melodic/setup.bash ~/.bashrc source ~/.bashrc2. 依赖安装那些容易被忽略的关键组件Autoware的依赖项相当多这也是新手最容易踩坑的地方。根据我多次安装的经验除了ROS基础包外还需要特别注意以下几个关键组件。首先是Python相关依赖。Autoware使用了大量Python工具我们需要确保pip和setuptools是最新版本sudo apt install -y python3-pip python3-colcon-common-extensions python3-setuptools python3-vcstool pip3 install -U setuptools然后是ROS的额外功能包。这些包在官方文档中可能没有明确列出但在编译过程中必不可少sudo apt-get install ros-melodic-jsk-recognition-msgs ros-melodic-jsk-rviz-plugins ros-melodic-lanelet2* ros-melodic-nmea* ros-melodic-grid-map* ros-melodic-automotive-* ros-melodic-velodyne* ros-melodic-gps-common ros-melodic-qpoases-vendor这里有个常见问题velodyne驱动包有时会因为版本冲突导致安装失败。我遇到过几次这种情况解决方案是先卸载旧版本再安装新版本sudo apt-get remove ros-melodic-velodyne* sudo apt-get install ros-melodic-velodyne*另一个容易出问题的是libnl网络库。如果编译时遇到LIBNL3_INCLUDE_DIRS not found错误执行以下命令即可解决sudo apt install libnl-3-* libnl-genl-3-*3. 源码获取国内开发者的加速方案Autoware的源码托管在GitHub上但由于网络原因国内开发者直接克隆可能会非常慢。经过多次尝试我发现使用Gitee镜像是最有效的解决方案。首先创建工作区目录mkdir -p autoware.ai/src cd autoware.ai然后下载repo配置文件。这里我推荐使用修改过的autoware.ai.repos文件将所有GitHub链接替换为Gitee镜像wget -O autoware.ai.repos https://gitee.com/kin_zhang/autoware/raw/master/autoware.ai.repos这个文件已经将所有仓库地址替换为国内镜像源。接下来使用vcs工具拉取代码vcs import src autoware.ai.repos这个过程大约需要10-20分钟具体取决于你的网络状况。如果中途某个仓库克隆失败可以单独进入相应目录重新执行git clone命令。我曾经遇到过core_perception仓库克隆失败的情况解决方法是指定depth参数cd src/autoware git clone --depth 1 https://gitee.com/kin_zhang/core_perception.git4. 编译配置CUDA与非CUDA模式的选择Autoware支持两种编译模式带CUDA支持和不带CUDA支持。对于大多数初学者我建议先使用非CUDA模式因为配置更简单出错概率更低。4.1 非CUDA模式编译这是最简单的编译方式适合没有NVIDIA显卡或不想配置CUDA环境的用户colcon build --cmake-args -DCMAKE_BUILD_TYPERelease编译过程可能需要2-4小时取决于你的硬件配置。在这个过程中你可能会遇到几个常见错误cnn_segmentation.h缺少定义解决方法是在相应文件中添加宏定义sed -i 1i #define __APP_NAME__ lidar_apollo_cnn_seg_detect src/autoware/core_perception/lidar_apollo_cnn_seg_detect/include/cnn_segmentation.hndt_gpu编译警告这个警告可以忽略不影响整体功能。4.2 CUDA模式编译如果你有NVIDIA显卡并且需要GPU加速可以使用CUDA模式。但要注意Autoware目前仅支持CUDA 10.0版本。编译命令如下AUTOWARE_COMPILE_WITH_CUDA1 colcon build --cmake-args -DCMAKE_BUILD_TYPERelease在CUDA模式下你需要特别注意显存大小。根据我的测试运行Carla模拟器至少需要6GB显存否则会出现out of memory错误。如果你的显存小于4GB建议还是使用非CUDA模式。5. 运行演示你的第一个自动驾驶Demo编译完成后就可以运行Autoware的演示了。首先设置环境变量source install/setup.bash然后启动运行时管理器roslaunch runtime_manager runtime_manager.launch接下来我们需要下载示例数据集。官方提供的bag文件较大我建议使用国内网盘下载mkdir -p ~/.autoware cd ~/.autoware wget http://example.com/sample_moriyama_150324.tar.gz tar zxfv sample_moriyama_150324.tar.gz在Runtime Manager界面中切换到Simulation标签页加载下载的ROS bag文件位于~/.autoware目录设置开始时间为140点击Play按钮然后在Quick Start标签页中按顺序加载以下launch文件map.launchsensing.launchlocalization.launchdetection.launchmission_planning.launchmotion_planning.launch最后点击RViz按钮查看可视化结果。如果一切正常你应该能看到点云地图和车辆的运动规划轨迹。6. 常见问题排查指南在实际安装过程中你可能会遇到各种问题。以下是我总结的几个典型问题及解决方案问题1ndt_mapping无法生成变换矩阵这是1.14版本的一个已知bug。解决方法是在ndt_mapping.cpp文件中修改相关代码段或者直接使用1.13版本。问题2字体配置错误如果出现libfontconfig相关错误可以尝试以下命令cp /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.10.1 ~/anaconda3/lib/ rm ~/anaconda3/lib/libfontconfig.so.1 ln -s ~/anaconda3/lib/libfontconfig.so.1.10.1 ~/anaconda3/lib/libfontconfig.so.1问题3Python包冲突如果遇到Python包版本冲突建议创建单独的虚拟环境python3 -m venv autoware-env source autoware-env/bin/activate pip install -r requirements.txt问题4ROS master连接失败确保roscore正在运行并检查ROS_MASTER_URI环境变量设置是否正确echo $ROS_MASTER_URI7. 进阶配置与学习建议成功运行Demo只是第一步。要真正掌握Autoware我建议从以下几个方面深入修改launch文件尝试调整各个模块的参数观察对系统行为的影响使用自己的数据集收集或下载其他bag文件测试Autoware在不同场景下的表现阅读源码特别是core_perception和core_planning模块理解算法实现细节参与社区GitHub上的Issues区有很多有价值的问题讨论我在初次使用Autoware时花了整整两周时间才完全跑通整个流程。期间遇到了无数问题但每个问题的解决都让我对自动驾驶系统有了更深的理解。记住遇到问题不要气馁查阅文档、搜索Issues、请教社区这些都是学习的过程。