目录
内容目录
简介
CyberRT 是百度 appolo 开源的一个高性能运行时框架,专为自动驾驶场景而设计,针对自动驾驶的高并发、低延迟 、高吞吐量进行了大幅优化,支持分布式收发消息和调度框架。
关键概念和术语
术语 | 介绍 |
Component | 模块概念,比如感知、定位、控制系统等,不同模块间通过 Channel进行通信 22 |
Channel | 用于管理 CyberRT中的数据通信,用户发布/订阅同一个 Channel,实现p2p 通信 |
Task | 异步计算任务的抽象描述 |
Node | 基本组成部分,每个模块都包含一个 Node并通过 Node 进行通信,在节点中定义 Reader/Writer或 Service/Client,可以实现不同类型的通信形式 |
Reader/Writer | 在 Node中创建,主要消息传输接口 |
Service/Client | 支持节点双向通信 |
Parameter | 提供全局参数访问接口,基于 Serice/Client模式构建 |
服务发现 | 去中心化,没有用于服务注册的主/中心节点,所有节点被平等对待,可以通过服务发现找到其他服务节点,使用 udp用来服务发现 |
CRoutine | 参考协程概念,使用 Coroutine 来优化线程使用和系统资源分配 |
Scheduler | 提供多种资源调度算法 |
Message | 数据传输的数据单元 |
Dag文件 | 模块拓扑关系的配置文件,在 Dag中定义使用的Component 和上/下游通道 |
Launch 文件 | 提供启动模块方法 |
Record文件 | 录包 |
Mainboard | 主入口,通过 mainboard -d xxx.dag 来启动一个模型进程 |
ROS 1 和 ROS2 面对的挑战:
CyberRT在 apollo 中的位置
CyberRT架构
CyberRT 运行流程
CyerbRT 调度-编排策略
CyberRT 通信
打赏作者