CbyerRT源码分析:概览

目录

内容目录

 

简介

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 通信

 

 

 

打赏作者