1. Apollo平台安装全流程解析
作为百度开源的自动驾驶开发平台,Apollo的安装过程确实存在不少"坑"。我在实际部署过程中发现,90%的问题都集中在环境准备和依赖项配置阶段。不同于普通软件的一键安装,Apollo对系统环境有着严格的要求,这也是许多开发者首次接触时容易踩雷的地方。
2. 环境准备阶段的关键要点
2.1 系统版本选择与验证
Apollo官方推荐使用Ubuntu 18.04 LTS版本,这是经过充分测试的稳定组合。我在实际测试中发现,即使使用Ubuntu 20.04也会遇到各种兼容性问题。建议通过以下命令确认系统版本:
lsb_release -a重要提示:不要尝试在Windows子系统(WSL)中安装Apollo,这会导致后续GPU驱动和Docker兼容性问题。
2.2 硬件需求检查
Apollo对硬件有较高要求,特别是GPU支持。建议至少准备:
- NVIDIA显卡(GTX 1080及以上)
- 16GB以上内存
- 100GB可用磁盘空间
验证GPU驱动是否正常:
nvidia-smi如果显示"No devices were found",说明需要重新安装驱动。
3. 依赖项安装的常见问题
3.1 Docker安装与配置
Apollo强烈依赖Docker环境,但官方文档中的安装命令可能需要调整:
# 替代官方提供的安装命令 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io安装后务必执行:
sudo usermod -aG docker $USER然后注销重新登录,否则会遇到权限问题。
3.2 CUDA和cuDNN的版本匹配
这是最容易出错的环节之一。Apollo 6.0需要:
- CUDA 10.2
- cuDNN 7.6.5
版本不匹配会导致编译失败。验证CUDA版本:
nvcc --version4. Apollo源码获取与编译
4.1 源码下载注意事项
建议使用国内镜像加速下载:
git clone https://gitee.com/ApolloAuto/apollo.git cd apollo git checkout v6.0.0 # 指定稳定版本常见问题:直接使用GitHub源可能下载速度极慢甚至中断。
4.2 编译过程中的典型错误
首次编译建议使用:
./apollo.sh build可能遇到的错误及解决方案:
"Protobuf版本冲突":删除系统原有protobuf
sudo apt-get remove libprotobuf-dev"Eigen3 not found":手动指定Eigen路径
sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen"GPU support disabled":检查docker容器内nvidia-smi是否可用
5. 容器环境配置技巧
5.1 容器内网络配置
由于国内网络环境,需要修改容器内的apt源:
docker exec -it apollo_dev bash sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list apt update5.2 持久化数据存储
默认情况下,容器停止后数据会丢失。建议将重要数据挂载到宿主机:
docker run -it --name apollo_dev \ -v /path/on/host:/apollo/data \ apolloauto/apollo:dev-x86_64-18.04-latest6. 模拟环境搭建实战
6.1 Dreamview启动问题排查
启动Dreamview后无法访问localhost:8888?检查:
- 容器端口是否正确映射
- 防火墙是否阻止访问
- 容器内服务是否正常启动
6.2 激光雷达模拟数据注入
测试激光雷达模块时,可以使用官方提供的测试包:
cyber_recorder play -f docs/demo_guide/demo.bag -l7. 性能优化建议
7.1 编译参数调整
对于性能较弱的机器,可以修改编译选项:
export USE_GPU=0 # 禁用GPU加速 ./apollo.sh build --local_resources 2048,1.0,1.0 # 限制资源使用7.2 容器资源分配
适当限制容器资源可以防止系统卡死:
docker update --memory 8G --memory-swap 10G apollo_dev8. 版本升级注意事项
从Apollo 5.0升级到6.0时,特别注意:
- 配置文件格式变化
- 新引入的Cyber RT框架
- 传感器接口变更
建议先备份原有工程:
tar -czvf apollo5_backup.tar.gz /apollo9. 开发环境维护技巧
9.1 日常清理策略
定期执行以下命令释放空间:
docker system prune ./apollo.sh clean9.2 多版本共存方案
如果需要同时维护多个Apollo版本,可以使用不同容器:
docker run -it --name apollo_5.0 -v $(pwd):/apollo apolloauto/apollo:5.0 docker run -it --name apollo_6.0 -v $(pwd):/apollo apolloauto/apollo:6.010. 社区资源利用
遇到问题时,建议按以下顺序查找解决方案:
- Apollo官方GitHub Issues
- Apollo中文社区论坛
- 百度开发者中心
提交issue时,应包含:
- 系统环境信息
- 完整错误日志
- 已尝试的解决方案
我在实际项目中发现,90%的问题都能在社区找到答案。保持耐心,仔细阅读错误信息,大多数"坑"都有成熟的解决方案。最后提醒,Apollo的安装过程确实复杂,但一旦环境配置正确,后续开发会顺利很多。建议做好详细的安装记录,这对团队协作和后续维护都很有帮助。