Ubuntu20.04 Autoware.universe部署实战:从环境配置到避坑指南
1. 环境准备从零开始的Ubuntu20.04配置在开始Autoware.universe部署之前确保你的Ubuntu20.04系统处于一个相对干净的状态非常重要。我遇到过太多因为系统环境混乱导致的问题比如ROS版本冲突、依赖项缺失等。如果你和我一样之前在这台机器上折腾过各种开发环境建议先做个简单的清理。首先检查系统版本确保是Ubuntu20.04.4 LTS或更高版本。这个很关键因为Autoware.universe对系统版本有明确要求。你可以用这个命令查看lsb_release -a接下来是基础依赖安装。这里有个小技巧先更新apt缓存再安装常用工具。我习惯一次性把这些都装上sudo apt update sudo apt upgrade -y sudo apt install -y git curl wget build-essential cmake python3-pip如果你的机器之前安装过ROS或其他机器人开发环境建议先检查一下现有的ROS版本。我就是因为之前同时装了noetic和foxy导致后面各种冲突。可以用这个命令查看已安装的ROS版本ls /opt/ros/如果发现有多个ROS版本建议先备份重要数据然后考虑重装系统或者手动卸载不需要的版本。说实话有时候重装系统反而比一个个解决依赖冲突更省时间。2. ROS2 Galactic安装鱼香ROS一键搞定Autoware.universe需要ROS2 Galactic版本手动安装ROS2 Galactic可能会遇到各种依赖问题。我强烈推荐使用鱼香ROS的一键安装脚本它能自动处理多版本共存问题非常方便。执行以下命令安装鱼香ROSwget http://fishros.com/install -O fishros . fishros运行后会看到一个交互式菜单选择安装ROS。这里有个坑要注意如果你之前换过apt源记得选择不更换源否则可能会把源改回官方源导致后续安装变慢。安装完成后每次打开新终端时鱼香ROS会提示你选择要使用的ROS版本。这个功能特别实用特别是当你需要在不同项目间切换时。我现在的开发机上就同时存在noetic、foxy和galactic三个版本。验证ROS2 Galactic是否安装成功source /opt/ros/galactic/setup.bash ros2 version如果看到输出ros2版本是galactic说明安装成功了。建议把这个source命令加到你的.bashrc文件里这样每次打开终端都会自动设置好ROS环境。3. 处理地理数据依赖geographiclib的坑Autoware.universe需要geographiclib库和egm2008地理模型这一步可能是整个安装过程中最让人抓狂的部分。官方提供的安装命令是sudo apt install geographiclib-tools sudo geographiclib-get-geoids egm2008-1但问题来了——这个下载过程极其缓慢而且很容易因为网络问题失败。我尝试了十几次都没成功最后找到了一个替代方案手动下载模型文件。首先从GeographicLib官网下载egm2008-1.tar.bz2文件。然后执行以下步骤sudo mkdir -p /usr/share/GeographicLib/geoids tar -xjf egm2008-1.tar.bz2 sudo mv egm2008-1 /usr/share/GeographicLib/geoids/完成后可以验证一下是否安装成功geographiclib-get-geoids egm2008-1如果提示egm2008-1 already installed说明手动安装成功了。这个小技巧帮我节省了大量时间特别是在网络不稳定的情况下。4. CUDA安装与验证别被表象欺骗CUDA的安装是个大坑我差点在这里翻车。虽然运行nvidia-smi能看到驱动信息运行nvcc --version也能看到CUDA版本但这并不代表你的CUDA环境已经配置好了。首先确认你的显卡支持CUDA然后去NVIDIA官网下载对应版本的CUDA Toolkit。我建议下载CUDA 11.4或11.6版本因为这是经过Autoware.universe测试的版本。安装完成后需要设置环境变量。把以下内容添加到你的.bashrc文件中export PATH/usr/local/cuda/bin${PATH::${PATH}} export LD_LIBRARY_PATH/usr/local/cuda/lib64${LD_LIBRARY_PATH::${LD_LIBRARY_PATH}}然后验证CUDA是否真的能用nvcc --version cd /usr/local/cuda/samples/1_Utilities/deviceQuery sudo make ./deviceQuery如果最后看到Result PASS说明CUDA环境配置正确。这一步很关键因为后续的Autoware编译会用到CUDA如果配置不正确编译可能会失败或者运行时出现奇怪的问题。5. ROS依赖包安装解决rosdep更新问题安装Autoware.universe的ROS依赖包时最常遇到的就是rosdep更新失败的问题。按照官方步骤source /opt/ros/galactic/setup.bash rosdep update rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO但实际情况是rosdep update经常会卡住或者跳过galactic的更新。我找到了一个有效的解决方案强制指定rosdistro。rosdep update --rosdistrogalactic如果还是失败可以尝试更换rosdep的源。编辑/etc/ros/rosdep/sources.list.d/20-default.list把里面的源换成国内镜像#osx,ubuntu,debian #改为清华源 https://mirrors.tuna.tsinghua.edu.cn/git/ros/rosdistro/raw/master/rosdep/osx-homebrew.yaml https://mirrors.tuna.tsinghua.edu.cn/git/ros/rosdistro/raw/master/rosdep/base.yaml https://mirrors.tuna.tsinghua.edu.cn/git/ros/rosdistro/raw/master/rosdep/python.yaml https://mirrors.tuna.tsinghua.edu.cn/git/ros/rosdistro/raw/master/rosdep/ruby.yaml https://mirrors.tuna.tsinghua.edu.cn/git/ros/rosdistro/raw/master/releases/fuerte.yaml改完后记得删除rosdep缓存rm -rf /home/$USER/.ros/rosdep然后重新运行rosdep update。这个方法在我多次尝试后证明是最有效的。6. 编译工作空间优化与排错Autoware.universe的编译是个资源密集型任务很容易因为内存不足而失败。我建议先增加swap空间sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile然后开始编译。我推荐使用以下命令它允许在遇到错误时继续编译其他模块colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPERelease --continue-on-error编译完成后检查输出信息中的failed模块。针对这些模块单独编译colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPERelease --packages-select 包名常见的问题包括Eigen版本冲突、fmt库编译错误等。如果遇到这些问题可以尝试手动安装或升级相关库。比如解决Eigen问题sudo apt install libeigen3-dev编译完成后如果运行时遇到奇怪的问题建议删除build、install和log目录后重新编译。我就遇到过编译成功但无法设置初始位姿的情况重新编译后问题解决了。7. 手动下载Artifacts当自动下载失败时Autoware.universe需要一些预训练模型和数据文件官方文档说这些应该自动下载但实际情况是自动下载经常失败。检查你的~/autoware_data目录如果缺少文件就需要手动下载。我找到了这些模型的下载链接可以直接用wget下载mkdir -p ~/autoware_data cd ~/autoware_data wget https://autoware-model-placeholder.com/image_projection_based_fusion wget https://autoware-model-placeholder.com/lidar_apollo_instance_segmentation # 其他模型类似下载完成后记得检查文件完整性。有些模型文件很大下载过程中可能会损坏。可以对比官方提供的MD5校验值md5sum 文件名如果自动下载工具ansible-playbook报错说找不到autoware.dev_env.download_artifacts文件说明你的Autoware.universe版本可能不包含这个脚本。这时候手动下载是唯一的解决方案。8. 常见问题排查与解决在实际部署过程中我遇到了各种奇怪的问题这里分享几个典型的问题1启动时提示缺少ROS包解决检查是否source了正确的setup.bash文件。正确的顺序是source /opt/ros/galactic/setup.bash source ~/autoware/install/setup.bash问题2CUDA相关错误解决确认CUDA版本兼容性必要时重新安装CUDA。检查环境变量是否正确设置。问题3Python包冲突解决使用virtualenv创建独立的Python环境python3 -m venv ~/autoware_pyenv source ~/autoware_pyenv/bin/activate pip install -r requirements.txt问题4感知模块不工作解决检查模型文件是否完整路径是否正确。有些模块需要特定的CUDA计算能力确认你的显卡支持。问题5仿真时车辆不动解决检查控制参数和传感器配置。有时候是因为坐标系设置不正确导致的。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2417723.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!