自动驾驶 Apollo 源码分析:系统监控
1. 受监控的内容
上图是之前的文章总结的,可以看到软件监控有 8 类对象:
-
Channel Monitor 数据通信频道监控
-
Functional Safety Monitor 功能安全监控
-
Latency Monitor 时延监控
-
Localization Monitor 定位监控
-
Module Monitor 模块监控
-
Process Monitor 监控
-
Recorder Monitor 数据记录监控
-
Summary Monitor 监控状态汇总
因为前面的文章已经分析了 Functional Safety Monitor 和 Summary Monitor,所以,这篇文章我们着重看看其他受监控的内容,本文分析 Channel 和 Latency 两个部分内容。
附赠自动驾驶最全的学习资料和量产经验:链接
2. Apollo 如何监控数据通信状态?
Channel 是 CyberRT 中的通信渠道,它的监控是配合 LatencyMonitor 一起使用的。
由于它没有复写 tick() 方法,所以,每次定时触发周期,RunOnce() 方法都会被执行。
相关的定时参数如下:
DEFINE_double(channel_monitor_interval, 5,
"Channel monitor checking interval in seconds.");
每 5 秒监测一次。
我有在思考,这些监测周期时间都很长,这是为什么?
也许只适合低速场景吧。