通用流数据记录格式

时间:2018-07-01 02:39:59

标签: csv logging

上下文

假设我们有一架可以记录的无人机:

  1. GPS纬度和经度为10Hz
  2. 200Hz的3轴加速度计
  3. 200Hz的三轴陀螺仪
  4. 指南针(40Hz)
  5. 来自外部芯片的短信(例如“指南针校准错误”或其他...)

问题

是否有任何开放格式可以让我有效地记录此内容?

理想情况下,我正在寻找一种可以处理的格式:

  • 机载数据记录
  • 远程遥测(可以通过连接即时发送日志数据)
  • 任意信号(因此,完全不同的无人机或系统可以使用与其他信号相同的格式,并且仍可与非专门为它制作的应用程序兼容)

据我所知,大多数人使用非自定义二进制格式的ASCII txt或CSV。

为什么不使用CSV?

虽然CSV易于阅读,但由于以下原因,它似乎不合适:

  1. 数字通常比其二进制计数器部分占用更多的空间(浮点数的精度较低)
  2. 并非所有信号都需要以相同的速率记录,但是CSV的性质迫使我们同时记录每个信号,从而导致文件中出现很多重复的“内插”值。
  3. 没有明确键入列(所有内容均为“文本”),这意味着任何解析器都必须在执行任何操作之前强制转换所有单元格。

我真正想做的事情

我希望在从DJI Drones(目前为Phantom 4 Pro和Mavic Air)录制的视频片段中提供飞行元数据。简而言之,我希望每帧都具有完整的相机和无人机位置。

大多数飞行日志转换器会以200Hz以上的列输出一个大型CSV文件(代表gps纬度/经度,速度,应用消息等),速率约为10Hz至200Hz。

这些格式并不是真的很容易使用,因此我正在寻找一种有效的替代方法来将飞行日志转换/转换为(我可以在涉及信号记录或遥测的其他项目中重复使用)。

当前格式开发

我确实开始使用关联的python API开发自己的“通用数据记录格式”。这是一种基于帧的二进制格式,我们在标头中定义信号名称和类型,然后以任何顺序记录信号(具有对int,float,文本和任意二进制有效载荷的数据支持)。

但是我想确保在投入开发之前并在线发布第一个测试版之前,我不会错过任何现有格式的可能性(如果您对此格式/开发感兴趣,请随时与我联系)。

0 个答案:

没有答案
相关问题