皮皮网
皮皮网

【授权后的源码】【diy官网源码】【开放源码 osi】apollo源码结构

来源:asp视频直播项目源码 发表时间:2024-11-26 04:50:40

1.carlta什么牌子的源码
2.终于把Apollo存储加密这件事搞定了 | 周末福利!
3.Apollo 8.0 配置参数读取源码解析:以 Planning 模块为例
4.Apollo6.0安装文档教程——环境搭建、结构安装、源码编译、结构测试
5.Apollo EM中path_assesment_task相关细节的源码讨论
6.无人驾驶技术入门(十一)| 无人驾驶中的CAN消息解析

apollo源码结构

carlta什么牌子的

       Carlta并不是一个广为人知的独立品牌,而是结构授权后的源码Apollo自动驾驶系统中的一个重要组成部分。下面我将详细解释Carlta的源码相关信息。

       首先,结构Carlta是源码百度Apollo自动驾驶开放平台中的一个开源软件系统,用于支持自动驾驶汽车的结构研发和测试。Apollo是源码百度在自动驾驶领域的重要成果,旨在通过开放源代码和技术,结构推动自动驾驶技术的源码普及和发展。Carlta作为Apollo的结构一部分,专注于提供定位、源码感知、规划、控制等核心自动驾驶功能。

       其次,Carlta系统具有高精度地图、定位、传感器数据处理、diy官网源码路径规划和车辆控制等模块。它利用激光雷达、摄像头、超声波传感器等多种传感器,实现车辆对周围环境的感知和理解。通过这些感知数据,Carlta能够为自动驾驶车辆提供实时的决策和控制指令,确保车辆在复杂的道路环境中安全行驶。

       最后,在实际应用中,Carlta与Apollo平台的其他组件紧密集成,共同实现自动驾驶功能。例如,在自动驾驶测试车辆上,Carlta系统可以接收并处理来自车载传感器的数据,根据这些数据生成车辆行驶的决策和控制指令。这些指令通过车辆控制系统执行,使车辆能够自主驾驶,并应对各种交通状况。

       总的来说,Carlta不是开放源码 osi一个独立的品牌,而是百度Apollo自动驾驶平台中的一个关键系统,它为实现自动驾驶提供了重要的技术支持。通过开源和共享,Carlta推动了自动驾驶技术的进步,并为未来的智能交通系统奠定了基础。

终于把Apollo存储加密这件事搞定了 | 周末福利!

       作者:尹吉欢 转自:微信公众号“程序员私房菜”

       本文节选自《Spring Cloud微服务入门实战与进阶》

       敏感配置,如密码等,我们期望进行加密存储,确保其安全性。然而,Apollo框架并未提供数据加密功能。若想实现此功能,有两种方法:一是修改Apollo源码,添加加解密逻辑;二是利用第三方框架进行数据加密。

       jasypt-spring-boot是一款基于Spring Boot开发的框架,它可自动解密properties中加密的内容。在Apollo中,我们也可以利用jasypt-spring-boot实现数据的加解密操作。

       jasypt-spring-boot的GitHub地址:github.com/ulisesbocchi...

       使用jasypt-spring-boot提供的方法对需要加密的配置进行加密,然后将加密内容配置在Apollo中。cnn源码下载 镜像项目启动时,jasypt-spring-boot会解密Apollo加密的配置,让使用者获取解密后的内容。

       创建一个新的Maven项目,并加入Apollo和jasypt的依赖。具体依赖信息如下:

       创建一个加密的工具类,用于加密配置。执行main方法后,可以得到如下输出:

       input就是hello加密后的内容,将input的值复制存储到Apollo中。存储格式需要遵循一定规则,即需要将加密内容用ENC包起来,这样jasypt才会解密这个值。

       使用时可以直接根据名称注入配置,例如:

       input的值就是解密后的值,使用者无需关心解密逻辑,jasypt框架在内部处理好了。

       jasypt整合Apollo也存在一些不足之处。目前,我只发现了以下两个问题:

       上述两个问题与jasypt实现方式有关,意味着这种加密方式可能仅适用于数据库密码等场景,小米推送框架 源码启动时可以解密,且仅使用一次。对于需要加密的核心业务配置,jasypt无法支持实时更新。下章节我将讲解如何修改Apollo源码来解决这两个问题。

       扩展Apollo支持存储加解密

       前文介绍了如何使用jasypt为Apollo中的配置进行加解密操作,基本需求可实现。但仍存在一些不足之处。

       jasypt仅在启动时解密带有ENC(xx)格式的配置,当配置发生修改时无法更新。由于Apollo框架本身不具备对配置加解密的功能,若想实现加解密并支持动态更新,就需要修改Apollo源码来满足需求。

       修改源码需要重新打包。这里介绍一种简单实现方法:创建一个与Apollo框架中相同类名的类进行覆盖,这样无需替换已使用的客户端。

       若配置中心存储的内容是加密的,意味着Apollo客户端从配置中心拉取下来的配置也是加密的。我们需要在配置拉取下来后对其进行解密,然后再执行后续流程,如绑定到Spring中。在业务点进行切入后,配置中心加密的内容可自动转换为解密后的明文,对使用者透明。

       通过分析Apollo源码,我找到了一个最合适的切入点来完成这项任务,即com.ctrip.framework.apollo.internals.DefaultConfig类。DefaultConfig是Config接口的实现类,配置的初始化和获取都会经过DefaultConfig的处理。

       在DefaultConfig内部有一个更新配置的方法updateConfig,可在该方法中对加密数据进行解密处理:

       这里使用AES进行解密,意味着配置中心的加密内容也需要使用相同的加密算法进行加密。至于格式,仍使用ENC(xx)格式来标识加密配置内容。解密后将明文内容重新赋值到Properties中,其他流程保持不变。

       创建一个加密测试类,加密配置内容,并将其复制存储到Apollo中。输出内容如下:

       Ke4LIPGOp3jCwbIHtmhmBA==

       存储到Apollo中时,需要用ENC将加密内容包起来,如下:

       test.input = ENC(Ke4LIPGOp3jCwbIHtmhmBA==)

       使用之前的代码进行测试,Config获取和Spring注入的方式可以成功获取到解密后的数据,并且在配置中心修改后也能实时推送到客户端并成功解密。

       本文摘自于《Spring Cloud微服务入门实战与进阶》一书。这是朋友写的一本新书,豆瓣评分8.2。

Apollo 8.0 配置参数读取源码解析:以 Planning 模块为例

       目录

       在本篇讨论中,我们将剖析 Apollo 8.0 配置参数的读取过程,以 Planning 模块为例进行深入探讨。

       1. 配置参数分类

       了解 Apollo 中各模块的启动机制,主要通过主文件 mainboard 编译生成的可执行文件以及动态链接库的加载实现。Planning 模块的 DAG 文件 (apollo/modules/planning/dag/planning.dag) 指定了模块的动态链接库和单个组件 PlanningComponent 的配置。

       配置参数分为两类:基于 ProtoBuf 的参数和 gflags 命令行参数。Planning 模块的 ProtoBuf 配置文件为 (apollo/modules/planning/conf/planning_config.pb.txt),与之对应的 ProtoBuf 接口文件为 (apollo/modules/planning/proto/planning_config.proto)。而 gflags 命令行参数配置文件为 (apollo/modules/planning/conf/planning.conf)。

       1.1 ProtoBuf 参数

       ProtoBuf 参数通过 module_config.components.config.config_file_path 指定配置文件路径,文件中的参数在组件初始化时被读入 ProtoBuf 对象。

       1.2 gflags 命令行参数

       gflags 参数通过 module_config.components.config.flag_file_path 指定,文件中的命令行参数在初始化时由 gflags 解析。

       2. 配置参数读取流程

       主入口文件 (apollo/cyber/mainboard/mainboard.cc) 的 main 函数负责加载 DAG 文件并启动模块。解析命令行参数、读取 DAG 文件、执行模块加载逻辑。

       2.1 加载 DAG 文件

       解析命令行参数形成 ModuleArgument,用于存储参数信息。执行主流程时,ModuleController 负责加载所有模块,并处理模块组件的注册、实例化和初始化。

       2.2 读取配置参数

       ModuleController 通过 LoadModule 方法读取模块配置,具体步骤涉及读取 ProtoBuf 参数和 gflags 命令行参数。

       3. 总结

       本文通过分析 Planning 模块的配置读取过程,清晰展示了 Apollo 8.0 中配置参数的完整读取流程。通过理解这一过程,开发者能够更深入地掌握 Apollo 的模块启动和配置机制。

Apollo6.0安装文档教程——环境搭建、安装、编译、测试

       一、环境搭建

       为了安装Apollo 6.0,您需要以下环境准备:

       Ubuntu .,安装教程参阅相关资源。

       NVIDIA显卡驱动,根据官方指南进行安装。

       Docker引擎,Apollo安装步骤中完成。

       NVIDIA容器工具,Apollo安装步骤中完成。

       安装过程中,请确保禁用nouveau驱动,操作步骤如下:

       在终端中添加指定内容至文件末尾并保存,然后重启系统。重启后执行命令,检查禁用状态。

       二、下载源码

       前往Apollo下载地址,选择对应版本。

       三、安装

       安装Docker:进入Apollo 6.0的docker目录,执行安装命令。安装完成后,重启电脑。

       安装NVIDIA容器工具:与Docker安装同步进行。

       创建Apollo容器:下载所需image,此过程可能耗时较长。成功后,会显示“[OK], Enjoy!”。

       进入容器:执行相关命令。

       四、编译与测试

       编译Apollo:根据容器中的GPU状态(有或无)进行编译。可能遇到的warning如“DimsNCHW”被标记为过时,这是正常现象,不会影响后续使用。

       启动Dreamview:可能遇到权限问题,使用chmod进行授权。如果问题仍未解决,授权整个Scripts目录并执行。

       Dreamview查看:在浏览器中输入)

       分享Apollo预测(prediction)模块最全教程 - 知乎 (zhihu.com)

       分享Apollo控制(control)模块最全教程 - 知乎 (zhihu.com)

相关栏目:时尚