文章目录
- 一、下载安装 Apollo 源码
- 1. 克隆 Apollo 源码
- 二、 启动Apollo环境容器
- 三、 进入Apollo环境
- 四、编译
- 五、启动 Apollo 进行播包验证
- 5.1 获取数据包
- 5.2 启动 Dreamview+
- 5.3 在 Dreamview+ 中播放数据包
- 5.4 通过命令行播放数据包
- 宿主机基础环境
- 系统:ubuntu22.04
- CPU: Intel® Core™ i9-14900K
- GPU: NVIDIA GeForce RTX 4090
- Docker version 26.0.0, build 2ae903e
- Driver Version: 535.171.04
- CUDA Version: 12.2
参考文档:Apollo9.0自动驾驶开放平台
一、下载安装 Apollo 源码
1. 克隆 Apollo 源码
- 执行以下命令克隆 Apollo 源码
# SSH 方式
git clone git@github.com:ApolloAuto/apollo.git
# HTTPS 方式
git clone https://github.com/ApolloAuto/apollo.git
- 检出到最新分支
cd apollo
git checkout master
二、 启动Apollo环境容器
因为是40系显卡,参考40系列镜像支持进行操作
- 修改docker/scripts/dev_start.sh中的VERSION_X86_64镜像版本
VERSION_X86_64="dev-x86_64-18.04-20231128_2222"
- 在apollo目录下输入以下命令来启动环境容器
bash docker/scripts/dev_start.sh
操作成功后您将会看到如下样式的提示输出
三、 进入Apollo环境
- 在 apollo 目录下输入以下命令进入容器
bash docker/scripts/dev_into.sh
- 将third_party/centerpoint_infer_op/workspace.bzl修改为下述内容
"""Loads the paddlelite library"""
# Sanitize a dependency so that it works correctly from code that includes
# Apollo as a submodule.
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
def clean_dep(dep):
return str(Label(dep))
def repo():
http_archive(
name = "centerpoint_infer_op-x86_64",
sha256 = "038470fc2e741ebc43aefe365fc23400bc162c1b4cbb74d8c8019f84f2498190",
strip_prefix = "centerpoint_infer_op",
urls = ["https://apollo-pkg-beta.bj.bcebos.com/archive/centerpoint_infer_op_cu118.tar.gz"],
)
http_archive(
name = "centerpoint_infer_op-aarch64",
sha256 = "e7c933db4237399980c5217fa6a81dff622b00e3a23f0a1deb859743f7977fc1",
strip_prefix = "centerpoint_infer_op",
urls = ["https://apollo-pkg-beta.bj.bcebos.com/archive/centerpoint_infer_op-linux-aarch64-1.0.0.tar.gz"],
)
- 将third_party/paddleinference/workspace.bzl修改为
"""Loads the paddlelite library"""
# Sanitize a dependency so that it works correctly from code that includes
# Apollo as a submodule.
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
def clean_dep(dep):
return str(Label(dep))
def repo():
http_archive(
name = "paddleinference-x86_64",
sha256 = "7498df1f9bbaf5580c289a67920eea1a975311764c4b12a62c93b33a081e7520",
strip_prefix = "paddleinference",
urls = ["https://apollo-pkg-beta.cdn.bcebos.com/archive/paddleinference-cu118-x86.tar.gz"],
)
http_archive(
name = "paddleinference-aarch64",
sha256 = "048d1d7799ffdd7bd8876e33bc68f28c3af911ff923c10b362340bd83ded04b3",
strip_prefix = "paddleinference",
urls = ["https://apollo-pkg-beta.bj.bcebos.com/archive/paddleinference-linux-aarch64-1.0.0.tar.gz"],
)
四、编译
首先检查工作空间是否存在.apollo.bazelrc文件,如果存在先删除
- 将modules/perception/common/inference/tensorrt/rt_legacy.h中的宏注释掉
// #ifdef __aarch64__
// #endif
- 在容器内的 /apollo 目录下输出以下命令编译整个工程
./apollo.sh build
- 若需要开启编译优化,则通过以下命令进行编译
./apollo.sh build_opt
- 根据需要自行编译,例如感知模块编译
./apollo.sh build_opt_gpu perception
注意:40系显卡在这里编译时会报找不到文件的错误,都是一些lidar的驱动文件,具体issue可以参考# Fatal error: xxx: No such file or directory #15518# 使用4090显卡编译代码报错 #14821[https://github.com/ApolloAuto/apollo/issues/15444](# fatal error: vanjee_driver/api/lidar_driver.hpp: No such file or directory #15444)
我这里的经验是,反正也用不到这些驱动文件,编译报错直接给它删了就行,我删除了/apollo/modules/drivers/lidar
路径下的vanjeelidar
、seyond
、hslidar
后编译正常通过,显示以下界面
五、启动 Apollo 进行播包验证
5.1 获取数据包
wget https://apollo-system.cdn.bcebos.com/dataset/6.0_edu/demo_3.5.record -P $HOME/.apollo/resources/records/
5.2 启动 Dreamview+
bash scripts/bootstrap.sh start_plus
5.3 在 Dreamview+ 中播放数据包
启动 Dreamview+ 之后,在浏览器输入 localhost:8888
进入 Dreamview+ 界面,您可以选择默认模式,也可以选择其他模式播放数据包,以默认模式为例。
-
选择 Default Mode 。
-
勾选 Accept the User Agreement and Privacy Policy/接受用户协议和隐私政策 ,并单击 Enter this Mode 进入 Mode Settings/模式设置 页面。
-
在 Mode Settings/模式设置 页面,设置播包参数。
- 在 Operations/操作 中选择 Record 。
- 在 Environment Resources/环境资源 中,单击 Records/数据包 ,并选择具体想要播放的数据包。
- 在 Environment Resources/环境资源 中,单击 HDMap/高精地图 ,并选择 Sunnyvale Big Loop 。
-
单击底部区域播放按钮。
可以在 Vehicle Visualization/车辆可视化 中看到数据包播放的画面。
5.4 通过命令行播放数据包
- 进入 docker 环境,
- 在 Dreamview+ 中 Resource Manager/资源管理 > Records/数据包 中先下载需要的数据包。输入以下命令播放数据包:
cyber_recorder play -f ~/.apollo/resources/records/数据包名称 -l
注意:如果您想要循环播放数据包,添加 -l,如果不循环播放数据包,则不需要添加 -l。
至此,Apollo 安装已经完成