目录
1.想法
本节介绍如何提取record包里的msg到本地日志。
按照惯例,先谈大致步骤,再看细节。
首先我们通过cyber moniter是可以实时显示各模块交互信息的,cyber RT通过topic订阅和发布msg,所有msg定义都在proto文件中,通过搜索可以找到具体定义。那么我们若想记录详细信息到本地,肯定是可行的,问题是通过什么手段来达到目标更加方便快捷。
这里我最开始想到的是debug或者info直接记录,事实上这种手段也确实可以,比如实测一个sim过程的时候可以这样记录。但是这里存在一个问题,对于我们已经录制好的record包,该如何提取MSG到本地呢,并且已经完工的代码,再进行修改会比较麻烦,很可能忘记改回到之前的版本,导致到处都有不必要的MSG输出到日志,实际上Apollo运行过程中的log信息已经够大了。个人认为这不太好。
转变下思路,既然交互信息在都是通过cyber RT实现的,那么必然有其对应API接口,可以将信息提取出来,顺着这个思路,很容易在cyber文件夹下就找到了线索。
整个过程大概要经过以下几个步骤:
(1) record文件msg过滤;非必