Apollo星火计划学习笔记——第三讲Apollo Cyber RT模块详解与实践

引言

Cyber RT作为Apollo中间件,起着很重要的作用。

1. Cyber RT诞生的背景

1.1 实时操作系统的引入

User Program
OS Kernel
Device Pluain

上面流程图演示了程序在执行时通过的步骤,我们需要通过中间OS Kernel进行交互,这样会造成实时性的问题。

开发者希望系统可以在实时操作系统上运行:

  • 静态分配; {尽量避免使用STL或动态分配,通过使用内存池解决}
  • 非阻塞调用;{使用协程相关技术解决}
  • 进程内通信;{包括网络通信协议和进程内的线程的转移}

Apollo 3.5版本以前构建在通用分时多户操作系统(Time-Sharing OS) Linux上,基于ROS的通信模型。
Cyber RT为了解决调度、通信和任务管理实时响应要求而诞生

1.2 Cyber RT未来工作

1.2.1 满足自动驾驶的任务需求和实时性

  • 任务调度(DAG)
  • 协程和内存管理(RTOS/TSOS扩展)
  • 数据融合(MUlti-in, Multi-out)

1.2.2 继承Fast RTPS(eProsima Fast RTPS)

  • 去中心化通讯RTPS通讯:QoS, Participant / Node / Reader / Writer / Service / Client
  • 同主机通讯(进程内/间):传输层利用共享内存SHM,传递消息指针,实现符合RTPS模型
  • 设备间通讯媒介:Protobuf

1.2.3 Real Time OS & Cyber RT

1.2.4 No Broker : Cyber Databus

graph LR
A(Reader/Writer) --> B(Broker roscore) --> C(Reader/Writer)
 C(Reader/Writer) --> B(Broker roscore)  --> A(Reader/Writer)
 graph 
 D(容易出现单点故障) --> B(Broker roscore)

希望Reader和Writer不通过中间人,以databus的方式直接进行消息沟通
Cyber 引入Transport来完成这个工作极大的提升了系统稳定性

Apollo星火计划学习笔记——第三讲Apollo Cyber RT模块详解与实践_第1张图片

1.2.5 实时性由QoS和实时线程保证

  • 更快的通信:进程内点对点回调,进程间用ShmMemory
  • 灵活出让cpu时间:协程(用户态线程)
  • 更大覆盖的无锁队列实现

1.3 本章小节

Cyber RT是为了解决实时任务而诞生的软件系统

  • 建立了高效的去中心的数据通信通道
  • 通过QoS,实时线程,以及用户态化保证实时性

Cyber RT针对自动驾驶任务特点进行了计算架构的优化

  • 基于有向无环的任务调度
  • 数据融合

Cyber RT在Apollo扮演承上启下的角色,是整个数据流通的关键

2. Cyber RT的核心作用

2.1 Cyber RT在Apollo框架的作用

Apollo星火计划学习笔记——第三讲Apollo Cyber RT模块详解与实践_第2张图片

Apollo星火计划学习笔记——第三讲Apollo Cyber RT模块详解与实践_第3张图片

2.2 本章小节

Cyber RT建立了数据流通路径

Writer
transimit
Recivever
dataVistor
Reader

3. Cyber RT的通信机制

3.1 通信流程

Mainboard
ConfigManager
DAG
D

3.2 通信

Apollo星火计划学习笔记——第三讲Apollo Cyber RT模块详解与实践_第4张图片

  1. 同进程内部,通过回调机制
  2. 同主机,进程间,通过Sharememory,并通过事件完成数据块共享
  3. 跨主机/域,采用UDP/TCP(fast-RTPS)进行消息传递

3.3 本章小节

Cyber 通过 mainboard 读取dag文件创建Copomonent中的Writer和Reader对象,分别进行数据发布和订阅,然后并将两者加入到通信拓扑图中,无中心节点依赖

数据通过Tansmitter从Writer流通到Reader,缓存在Datavisitor进行数据融合,最终传递给业务函数(Proc)接口,在RT-Thread上运行,实现数据流通和处理

4. 实践案例

云端实验室地址:Apollo云实验室
Apollo星火计划学习笔记——第三讲Apollo Cyber RT模块详解与实践_第5张图片

参考文章及视频

星火第三讲——Apollo Cyber RT模块详解与实践

你可能感兴趣的:(Apollo培训课程学习笔记,学习,自动驾驶)