Apollo Advanced Lesson | Cyber RT

Posted Justin-Yip

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apollo Advanced Lesson | Cyber RT相关的知识,希望对你有一定的参考价值。

Contents


–This article is excerpted from Baidu’s official about Apollo, please indicate the source for reprinting–

传统ROS短板

  • 内核调度对自动驾驶算法业务逻辑不适应.
  • 各算法模块以独立模块,同步开销很显著,需要平衡效率与稳定性.
  • 动态内存申请.

Cyber 架构 与模块

  • key concept
    • DAG无环图
    • Lock Free
      • lock free 对象池 ???
      • lock free 队列

由Sensor data 驱动

调度逻辑从内核搬到用户空间

任务编排策略

  • 任务基于协程实现,任务阻塞时,迅速让出CPU
  • 调度的确定性
  • 支持跨进程,跨机通信.
  • 内存分配也是实时性的一大杀手
协程
  • 本质:可以被用户随时暂停和恢复的函数
  • 实现:协程运行时栈保持在堆上,而不是

调度

  • 两种调度策略:
    • Classic 策略;
    • Choreography策略
Classic 策略

SchedulerClassic 采用协程池 ,协程不会绑定到具体的处理核心上,而是放在全局的优先队列中被调度。

Choreography策略

以上是关于Apollo Advanced Lesson | Cyber RT的主要内容,如果未能解决你的问题,请参考以下文章

Apollo Advanced Lesson | Cyber RT RTPS

Apollo Advanced Lesson | Cyber RT

Apollo Advanced Lesson | Chapter6-1 ROS

Apollo Advanced Lesson | a journey of perception

Level 1-Lesson 5. Advanced UI Interaction

Apollo缓存+自动刷新