从零到一:在Ubuntu 22.04上构建Autoware.universe开发环境与实战演练

张开发
2026/4/15 11:36:18 15 分钟阅读

分享文章

从零到一:在Ubuntu 22.04上构建Autoware.universe开发环境与实战演练
1. 环境准备Ubuntu 22.04基础配置在开始构建Autoware.universe开发环境之前我们需要确保Ubuntu系统的基础环境已经正确配置。我建议使用全新安装的Ubuntu 22.04 LTS系统这样可以避免很多潜在的依赖冲突问题。实测下来8核CPU8GB内存的配置是最低要求如果条件允许建议使用16GB以上内存以获得更好的编译体验。首先需要更新系统软件包到最新版本。打开终端执行以下命令sudo apt update sudo apt upgrade -y接下来安装一些基础工具链这些工具在后续的ROS2和Autoware安装过程中都会用到sudo apt install -y curl git wget build-essential cmake python3-pip对于使用NVIDIA显卡的用户需要特别注意驱动和CUDA的安装。这里有个坑我踩过多次Ubuntu 22.04默认使用的Nouveau开源驱动会和NVIDIA官方驱动冲突。建议先禁用Nouveau驱动sudo bash -c echo blacklist nouveau /etc/modprobe.d/blacklist-nvidia-nouveau.conf sudo bash -c echo options nouveau modeset0 /etc/modprobe.d/blacklist-nvidia-nouveau.conf sudo update-initramfs -u重启后可以通过官方PPA安装NVIDIA驱动和CUDA工具包。这里推荐使用CUDA 11.7版本因为Autoware.universe目前对这个版本的支持最稳定sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt install -y nvidia-driver-515 sudo apt install -y cuda-11-7注意安装完成后务必验证CUDA是否正常工作可以运行nvidia-smi和nvcc --version检查驱动和CUDA版本。2. ROS2 Humble安装与配置Autoware.universe需要ROS2 Humble版本作为基础运行环境。相比手动安装我强烈推荐使用fishros提供的一键安装脚本这个方案我已经在多个平台上验证过稳定性很好。安装过程非常简单wget http://fishros.com/install -O fishros . fishros运行后会进入交互式安装界面。这里有几个关键选择需要注意选择ROS2 Humble版本对应Ubuntu 22.04选择桌面完整版安装Desktop-Full建议安装所有额外工具包括colcon、rosdep等安装完成后需要将ROS2环境变量添加到bashrc中echo source /opt/ros/humble/setup.bash ~/.bashrc source ~/.bashrc验证安装是否成功可以运行ros2 --help如果看到ROS2的帮助信息输出说明基础环境已经就绪。接下来需要配置rosdep这个工具用于管理ROS包的依赖关系。由于国内网络环境问题直接运行rosdep update可能会失败。我找到的可靠解决方案是修改sources.list文件sudo sh -c echo yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx-homebrew /etc/ros/rosdep/sources.list.d/20-default.list sudo sh -c echo yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml /etc/ros/rosdep/sources.list.d/20-default.list sudo sh -c echo yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml /etc/ros/rosdep/sources.list.d/20-default.list sudo sh -c echo yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml /etc/ros/rosdep/sources.list.d/20-default.list sudo sh -c echo yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte /etc/ros/rosdep/sources.list.d/20-default.list然后再次运行sudo rosdep init rosdep update这样配置后rosdep应该能够正常工作了。这个步骤非常重要因为后续Autoware的依赖安装都要依赖rosdep。3. Autoware.universe源码获取与依赖安装现在我们可以开始准备Autoware.universe的开发环境了。首先需要获取源代码建议使用SSH方式克隆仓库git clone gitgithub.com:autowarefoundation/autoware.git cd autowareAutoware官方提供了一个setup-dev-env.sh脚本来自动安装依赖但根据我的经验这个脚本在国内网络环境下成功率很低。更可靠的方式是手动安装依赖项。首先安装系统级依赖sudo apt install -y \ python3-vcstool \ python3-colcon-common-extensions \ python3-rosinstall-generator \ python3-dev \ python3-pip然后使用vcs工具拉取所有子模块vcs import src autoware.repos接下来是最关键的依赖安装步骤。这里需要特别注意执行顺序rosdep install -y --from-paths src --ignore-src --rosdistro humble这个命令会根据package.xml文件自动安装所有ROS依赖。由于依赖数量庞大超过200个这个过程可能需要较长时间。如果遇到网络问题导致某些包下载失败可以多次重试该命令。安装完成后还需要一些额外的Python依赖pip3 install -r src/tools/launcher/requirements.txt pip3 install transforms3d重要提示如果在依赖安装过程中遇到CUDA相关错误很可能是环境变量没有正确设置。确保在~/.bashrc中添加了以下内容并执行source ~/.bashrcexport PATH/usr/local/cuda-11.7/bin${PATH::${PATH}} export LD_LIBRARY_PATH/usr/local/cuda-11.7/lib64${LD_LIBRARY_PATH::${LD_LIBRARY_PATH}}4. 编译Autoware.universe与常见问题解决依赖安装完成后就可以开始编译Autoware.universe了。建议使用以下编译命令colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPERelease这个编译过程会非常耗时在8核CPU8GB内存的机器上大约需要2-3小时。建议在编译前关闭所有不必要的应用程序并确保系统交换空间足够至少16GB。编译过程中可能会遇到几个典型问题问题1CUDA相关错误错误信息通常包含Could not find a package configuration file provided by cudnn_cmake_module。这是因为CUDA环境没有正确配置。解决方案是source /opt/ros/humble/setup.bash sudo apt update sudo apt upgrade rosdep update rosdep install -y --from-paths src --ignore-src --rosdistro humble然后重新开始编译。问题2内存不足导致编译中断如果系统内存不足编译过程可能会突然终止。可以通过增加交换空间来解决sudo fallocate -l 16G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile问题3特定模块编译失败有时某个模块会反复编译失败。可以尝试单独编译该模块colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPERelease --packages-select 模块名如果确认是代码问题可以尝试回退到更稳定的版本cd src/模块路径 git checkout 稳定版本号编译完成后可以通过以下命令验证是否成功source install/setup.bash ros2 pkg list | grep autoware应该能看到大量autoware相关的包名输出。至此Autoware.universe的开发环境已经构建完成。5. 运行官方Demo与基础操作指南成功编译后我们可以尝试运行Autoware.universe的官方Demo。首先需要下载示例地图数据mkdir -p ~/autoware_map gdown -O ~/autoware_map/sample-map-planning.zip https://docs.google.com/uc?exportdownloadid1499_nsbUbIeturZaDj7jhUownh5fvXHd unzip -d ~/autoware_map ~/autoware_map/sample-map-planning.zip启动Autoware仿真环境cd ~/autoware source install/setup.bash ros2 launch autoware_launch planning_simulator.launch.xml map_path:$HOME/autoware_map/sample-map-planning vehicle_model:sample_vehicle sensor_model:sample_sensor_kit如果一切正常应该能看到一个3D可视化界面。下面是一些基本操作技巧地图导航按住鼠标左键拖动旋转视角Shift鼠标左键拖动平移地图鼠标滚轮缩放地图车辆控制按P键后点击地图设置车辆起始位置按G键后点击地图设置目标位置在AutowareStatePanel中点击Auto启动自动驾驶常见问题如果车辆不移动检查rviz2中的Localization状态是否变为绿色路径规划失败时尝试调整起点和终点的位置确保都在车道上画面卡顿时可以尝试降低rviz2的显示质量在实际使用中我发现Autoware.universe对硬件要求确实较高。如果遇到性能问题可以考虑以下优化措施在launch文件中添加参数降低点云和图像的分辨率关闭不必要的rviz2显示插件使用--cmake-args -DCMAKE_BUILD_TYPERelWithDebInfo重新编译这个选项在保持较好性能的同时提供了更多调试信息对于想要深入开发的用户建议从修改launch文件参数开始逐步了解Autoware的各个模块。例如可以尝试修改planning_simulator.launch.xml中的vehicle_model参数使用不同的车辆模型进行测试。

更多文章