40系显卡配置Apollo9.0

news2025/2/24 20:47:10

文章目录

  • 一、下载安装 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

操作成功后您将会看到如下样式的提示输出
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 安装已经完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2217115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关键词提取技术:TextRank 详解

1. 什么是 TextRank? TextRank 是一种基于图的排序算法,用于从文本中提取关键词和进行自动摘要。它是受 Google 的 PageRank 算法启发而提出的。与 TF-IDF 不同,TextRank 不依赖外部语料库,也不需要训练数据。它通过构建词语之间的…

JavaWeb合集06-MySQL数据库

六、MySQL数据库 关系型数据库(RDBMS):建立在关系模型基础上,由多张相互连接的二维表组成的数据库。 特点: 使用表存储数据,格式统一, 便于维护. 使用SQL语言操作,标准统一,使用方便,可用于复杂…

js中map,filter,find,foreach的用法介绍

js中map,filter,find,foreach的用法介绍 在 JavaScript 中,数组提供了一些常用的迭代方法,如 map、filter、find 和 forEach,这些方法允许你对数组中的每个元素进行操作,下面是它们的用法和区别…

用示波器观测RC一阶电路零输入响应是否激励必须是方波信号

概述 RC一阶电路是一种简单但非常重要的电路,广泛应用于滤波、信号处理和时间常数分析等领域。在研究RC电路的动态特性时,零输入响应(Natural Response)是一项关键内容。本文将详细解析用示波器观测RC一阶电路零输入响应时&#…

基于 MyBatis Plus 分页封装分页方法

一、前言 作为一个 CRUD 工程师,查询必然少不了,分页查询更是常见,市面上也有很多成熟的分页插件,都各有优缺点,这里整理一下,基于 MybatisPlus 的分页插件进一步封装分页的公共方法。 二、对象封装 其实…

elementUI,设置日期,只能选择过去的和今天的日期

在 el-date-picker 组件中加&#xff1a;:picker-options"pickerOptions" <el-form-item label"票据生成日期&#xff1a;"> <el-date-picker v-model"date1" type"daterange" range-separator"至" value-format&…

Webpack 完整指南

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Webpack篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来webpack篇专栏内容:webpack介绍 目录 介绍 一、webpack 1.1、webpack是什么 1.2 webpack五个核心配置 1.…

学习threejs,拉伸几何体THREE.TubeGeometry管道

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️拉伸几何体THREE.TubeGeome…

医护人员排班|基于springBoot的医护人员排班系统设计与实现(附项目源码+论文+数据库)

私信或留言即免费送开题报告和任务书&#xff08;可指定任意题目&#xff09; 目录 一、摘要 二、相关技术 三、系统设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取 一、摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息…

js 对网页表格内容进行全选

起因&#xff0c; 目的: 需要从一个数据库&#xff0c;手动选取数据&#xff0c;而且这个网页没有全选按钮&#xff0c;只能一个一个点&#xff0c;很烦。 所以写了一个简单的 js 脚本&#xff0c; 一键全选。 过程: 代码 1 function clickAllBoxes() {const checkboxes do…

HarmonyNext保存Base64文件到Download下

本文介绍如何保存Base64的文件到Download下 参考文档地址&#xff1a; 保存用户文件-Harmony Next 用到的是DOWNLOAD模式保存文件 用户在使用save接口时&#xff0c;可以将pickerMode配置为DOWNLOAD模式&#xff0c;该模式下会拉起授权接口&#xff0c;用户确认后会在公共路径…

ChatGPT丨R语言在生态环境数据统计分析、绘图、模型中的应用

第一单元&#xff1a;生态环境数据统计概述 1.1 生态环境数据特点及统计方法介绍 1&#xff0e;生态环境数据复杂性和多样性 2&#xff0e;生态环境数据类型及分布特点 3&#xff0e;生态环境数据主要统计分析方法及统计检验&#xff08;t-检验、F检验、卡方检验&#xff0…

PostgreSQL Windows系统初始化、登录、创建用户及数据库

文章目录 PostgreSQL初始化PostgreSQL登录 PostgreSQL初始化 initdb 到安装目录下&#xff0c;找到目录E:\postgresql\bin&#xff08;自己的安装目录&#xff09;&#xff0c;在该目录下使用管理员方式打开cmd窗口。 initdb.exe -D "E:\postgresql\bin" E:\postgre…

车载软件架构---软件定义汽车的复杂性

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

闹钟、绘制与TCP

闹钟 pro文件&#xff1a; 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTimer> #include<QTime> #include<QDebug> #include<QTimerEvent> #include<QDateTime> #include<QTextToSpeech> #i…

sql-labs靶场第十五关测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、寻找注入点 2、注入数据库 ①寻找注入方法 ②爆库&#xff0c;查看数据库名称 ③爆表&#xff0c;查看security库的所有表 ④爆列&#xff0c;查看users表的所有列 ⑤成功获取用户名…

65.DDR3读写控制器的设计与验证(2)

&#xff08;1&#xff09;写FIFO和读FIFO的配置 &#xff08;2&#xff09;AXI接口写入控制代码&#xff1a; module axi_master_write (//全局变量input wire ACLK , //全局时钟input wire ARESETN , …

AI工具推荐合集

在数字化时代&#xff0c;AI工具的出现极大地改变了我们的工作和生活方式。无论是学术研究、创意设计还是日常写作&#xff0c;这些工具都能提供强大的支持。以下是一些值得推荐的AI工具&#xff0c;帮助您提高效率与创造力。 1. 包阅AI 官网链接: 包阅AI 包阅AI是一款智能A…

哪吒汽车的工资到底发没发?

联网圈第一预言家&#xff0c;也就是美团的王兴&#xff0c;早在新能源热钱最多的那几年就预言&#xff0c;未来中国汽车格局大概率是「3333」。 也就是3家央企、3家地方国企、3家民企和3家新势力…… 此言论一出&#xff0c;当时可以说惹急了很多车企&#xff0c;比如已经退…

Leetcode—1115. 交替打印 FooBar【中等】(多线程)

2024每日刷题&#xff08;180&#xff09; Leetcode—1115. 交替打印 FooBar C实现代码 class FooBar { private:int n;sem_t fooSem;sem_t barSem;public:FooBar(int n) {this->n n;sem_init(&fooSem, 0, 1);sem_init(&barSem, 0, 0);}~FooBar() {sem_destroy(&…