pixhawk---sdlog2应用具体解释

ljbguanli ljbguanli     2022-09-10     282

关键词:

sdlog2 app

??该应用的用途是记录飞控飞行日志到SD卡中,日志文件格式与APM二进制文件兼容,可是sdlog2使用强制性的消息时间写时间戳。

使用方式

??每次sdlog2应用開始记录日志的时候。它会在SD卡日志目录log中创建一个新的目录。假设-t參数选项被设置了。并且GPS时间戳是可获得的,目录的名称就是基于当前日期。如log/2015-07-24,否则的话就是被命名为sessXXX(XXX代表一个序列号)。

目录中的文件命名也大同小异,假设-t选项已设置,文件名称为log/2015-07-24/11_43_52.bin,否则的话就被命名为log.XXX.bin(XXX也为序列号)。

??不管sdlog2应用是否已经启动了、系统已经被配置好了,还是mavlink命令。日志的记录都取决于sdlog2应用所设置的选项。选项说明例如以下:

usage: sdlog2 {start|stop|status|on|off} [-r <log rate>] [-b <buffer size>] -e -a -t -x
    -r      Log rate in Hz, 0 means unlimited rate
    -b      Log buffer size in KiB, default is 8
    -e      Enable logging by default (if not, can be started by command)
    -a      Log only when armed (can be still overriden by command)
    -t      Use date/time for naming log directories and files
    -x      Extended logging

技术分享日志记录的性能取决于所使用的SD的读写速度。使用较好的SD卡能够有效的避免跳过写入/读取数据。当sdlog2应用在全速率的时候(即没有-r选项)。可能会导致CPU负荷,但对飞行没有负面影响。

可是假设没有满足全速率要求,则可能会记录会跳过信息。

日志记录开启

??在正常情况下,随着飞控的配置好,日志记录就启动了。且仅仅有激活飞行的数据才是所须要的数据。要启动手动日志记录。在控制台上执行以下的命令:

sdlog2 stop
sdlog2 start -t -r 200 -e -b 16

??停止记录:

sdlog2 stop

分析日志

FlightPlot工具(—推荐使用)
Fields List

技术分享

FlightPlot Analysis

技术分享
??查看和分析日志。能够使用__FlightPlot__GUI工具(提供了可执行的jar包),下载下来并安装好Java后双击就能够执行了。无需转换日志文件,就能够读取由sdlog2应用产生的二进制日志文件。并通过图形方式显示。详细的使用方法见链接。

??FlightPlot支持的日志文件:

  • PX4 autopilot log(.bin generated by sdlog2)
  • APM binary logs (.bin files stored on SD card) (added in v.0.2.6)
  • 支持mavlink日志
Pymavlink工具

??还能够使用包括在Pymavlink软件中的mavgraph工具来绘制日志图像。Pymavlink提供了很多命令行和可视化的工具用于分析数据和制图。它支持mavlink日志(APM或PX4的均可)。

Matlab(转换logs成CVS)工具

??读取二进制文件。并将其转换成CVS文件,能够使用Python或者Matlab脚本文件来实现。分析数据是通过选用不同的參数选项来查看的,详细的使用方法就不介绍了(都是命令式的。有点麻烦)。

logconv.m:自己主动转换日志文件,并图形显示飞行的数据。
sdlog2_dump.py:Python脚本,将二进制形式的日志文件转换成CVS格式的文件。

可能遇到的故障

??为避免在IO带重负载的关键应用中。在侦听消息和写日志到SD卡上有一个缓冲区。假设在某些时候这个缓冲区溢出了。那么一些日志记录就会被跳过了。

跳过的记录数据能够通过控制台使用sdlog2应用检測出来。这个也会在关闭日志文件的时候打印出来。只是需加-a选项。由上可知,假设跳过的记录不为零,那么就须要添加这个缓冲区的大小了,以下的命令就是将默认的8KB缓冲区改为16KB:

sdlog2 start -t -r 100 -e -b 16

负载測试

??測试SD的传输速率,启动sdlog2应用应配置成记录日志速率为200Hz。32KB的缓冲区,并加上-e选项:

首先停止应用:
sdlog2 stop
sdlog2 start -t -r 200 -e -b 32
执行perf命令查看诱导sdlog2负荷:
(NOTE: 性能计数器仅仅在记录时存在)
perf
或者执行执行top命令:
top
停止应用,清理文件系统:
sdlog2 stop


具体解释kernel中watchdog驱动程序

...存在的。在解决线程挂死、系统死循环等都用非常重要的应用,算是系统出问题恢复初始状态的救命稻草。在kernel中wdt的应用不是非经常见,原因就是相比于裸系统来讲。它的线程会出现一些异步的情况,执行状态easy出现系统... 查看详情

path类的最全面具体解释-自己定义view应用系列

前言自己定义View是Android开发人员必须了解的基础;而Path类的使用在自己定义View绘制中发挥着很关键的数据网上有大量关于自己定义View中Path类的文章。但存在一些问题:内容不全、思路不清晰、简单问题复杂化等等今天。我将... 查看详情

负载均衡(lb)具体解释

...种算法把用户分配到不同的节点。其二是通过service。在应用层面上进行分散。 ConnectionBalancingConnectionBalancing这样的负载均衡是在用户连接这个层次上进 查看详情

ios企业证书网页分发全过程具体解释(图文并茂史无前例的具体哦)

...业证书网页分发全过程具体解释苹果的企业级证书公布的应用。是不用设备授权就可以直接安装,而且不限设备上限。为了方便分发,苹果有协议实现通过网页链接直接下载安装企业级的应用。首先须要说明它的原理:主要的原... 查看详情

android的xml/assets/raw资源使用具体解释

...源介绍1.assets资源文件夹:assets文件夹下存放的资源代表应用无法直接訪问的原生资源,这些文件将原封不动的存储到设备上,不会被编译为二进制形式,訪问方式是通过文件名称而不是资源ID。应用程序通过AssetManager以的字节... 查看详情

soa概念具体解释

...hitecture)既面向服务的体系结构,是一个组件模型。它将应用程序猿的不同功能可是(称为服务)通过定义良好的接口联系起来。SOA建立在Web服务的基础上。它能够看做是B/S模型、XML/WebService技术之后的自然延伸。SOA将能够帮助... 查看详情

设计模式-模板方法模式(templatemethodpattern)排序(sort)具体解释

模板方法模式(templatemethodpattern)排序(sort)具体解释本文地址: http://blog.csdn.net/caroline_wendy參考模板方法模式(templatemethodpattern): http://blog.csdn.net/caroline_wendy/article/details/32159455模板方法模式的一个基本的应用是 查看详情

ftp命令具体解释

...系统下使用FTP。都会遇到大量的FTP内部命令。熟悉并灵活应用FTP的内部命令,能够大慷慨便使用者,并收到事半功倍之效。  FTP的命令行格式为:ftp-v-d-i-n-g[主机名],当中  -v显示远程server的全部响应信息;  -n限制ftp的... 查看详情

《html5网页开发实例具体解释》样章内容简单介绍前言

...1803内容简单介绍《HTML5网页开发实例具体解释》从实际的应用场景出发。结合当下的热门技术。深入浅出地介绍了HTML5所包括的各项新技术。本书分为14章 查看详情

图像算法研究---adaboost算法具体解释

...法)  提升方法是一种经常使用的统计学习方法,应用十分广泛且有效。在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能。提升算法基于这样一种思路:对于... 查看详情

sparkrdd操作具体解释4——action算子

...Scala集合和数据类型。无输出foreach对RDD中的每一个元素都应用f函数操作,不返回RDD和Array,而是返回Uint。图中。foreach算子通过用户自己定义函数对每一个数据项进行操作。本例中自己定 查看详情

service具体解释:service生命周期

《Service具体解释(一):什么是Service》《Service具体解释(二):Service生命周期》《Service具体解释(三):Service的使用》《Service具体解释(四):绑定服务与通信》《Service具体解释(五):使用Messager进行通信》《Service具体... 查看详情

android那些你所不知道的bitmap对象具体解释

...辛勤劳动成果,谢谢。我们知道Android系统分配给每一个应用程序的内存是有限的,Bitmap作为消耗内存大户。我们对Bitmap的管理稍有不当就可能引发OutOfMemoryError,而Bitmap对象在不同的Android版 查看详情

从头认识java-17.4具体解释同步-具体解释竞争条件

这一章节我们来具体讨论一下竞争条件。1.为什么会引起竞争条件?因为操作缺失原子性。2.什么是原子性?所谓原子操作是指不会被线程调度机制打断的操作;这样的操作一旦開始,就一直运行到结束。中间不会有不论什么conte... 查看详情

scala具体解释---------scala是什么?可伸展的语言!

...由于他被设计成随着使用者的需求而成长。你能够把Scala应用在非常大范围的编程任务上。从写个小脚本到建立个大系统。51CTO编辑推荐:Scala编程语言专题Scala是非常easy进入的语言。它跑在标准的Java平台上。可以与全部的Java库... 查看详情

微服务解释

...一种架构模式或者说是一种架构风格,"它提倡将单一的应用程序划分成一组小的服务"每个服务运行在其独立的自己的进程中,服务之间相互协调、互相配合,为用户提供最终的价值。服务之间采用轻量级的通讯机制互相沟通(... 查看详情

android动画xml属性具体解释

...*email:[email protected]*转载请注明出处!*/android动画属性具体解释android中的动画属性主要分为四种,各自是alpha、scale、translate、rotate。我们如今来具体了解一下各个类型的意思。然后依据项目的需求要定义自己的动画。alpha ... 查看详情

struts文件下载具体解释

在做项目中上传下载肯定是少不了的,本博文对struts2的下载进行解释并附上部分代码1、action类publicclassFileDownLoadActionextendsActionSupport{ privateStringfilename;//下载文件的名称 @Override publicStringexecute()throwsException{ returnSUCCESS; } 查看详情