40系显卡配置Apollo9.0

新博客地址已迁移至https://zf-account.github.io/

  • 宿主机基础环境
    • 系统: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

操作成功后您将会看到如下样式的提示输出
image.png

三、 进入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路径下的vanjeelidarseyondhslidar后编译正常通过,显示以下界面
Screenshot from 2024-10-10 22-31-06.png

五、启动 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+ 界面,您可以选择默认模式,也可以选择其他模式播放数据包,以默认模式为例。
image.png

  1. 选择 Default Mode

  2. 勾选 Accept the User Agreement and Privacy Policy/接受用户协议和隐私政策 ,并单击 Enter this Mode 进入 Mode Settings/模式设置 页面。

  3. Mode Settings/模式设置 页面,设置播包参数。

    • Operations/操作 中选择 Record
    • Environment Resources/环境资源 中,单击 Records/数据包 ,并选择具体想要播放的数据包。
    • Environment Resources/环境资源 中,单击 HDMap/高精地图 ,并选择 Sunnyvale Big Loop
  4. 单击底部区域播放按钮。
    image.png

    可以在 Vehicle Visualization/车辆可视化 中看到数据包播放的画面。

5.4 通过命令行播放数据包

  1. 进入 docker 环境,
  2. 在 Dreamview+ 中 Resource Manager/资源管理 > Records/数据包 中先下载需要的数据包。输入以下命令播放数据包:
cyber_recorder play -f ~/.apollo/resources/records/数据包名称 -l

‍注意:如果您想要循环播放数据包,添加 -l,如果不循环播放数据包,则不需要添加 -l。

至此,Apollo 安装已经完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aitotra01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值