APM和PIX飞控日志分析入门贴
我们在飞行中,经常会碰到各种各样的问题,经常有模友很纳闷,为什么我的飞机会这样那样的问题,为什么我的飞机会炸机,各种问题得不到答案是一件非常不爽的问题,在APM和PIX飞控中,都有记录我们整个飞行过程各种数据的日志文件,通过地面站查看日志,便能知道我们的问题出在哪里,我们的飞机在空中爽不爽等等,有些模友知道有日志记录,但不知道怎么查看,经常求助于老鸟帮忙,一次两次人家愿意,多了总麻烦别人也不过意,今天写一贴为大家讲解日志的分析,我对日志也是一个入门的理解,有讲错的地方大家给我纠正,有没讲到的大家提出来我补齐,下面就让我们一起进入飞机的内心世界.
一,如何查看日志
现在APM和PIX最新固件都已经不能使用终端功能了,很多人认为没有终端不能使用日志了,其实是错误的,我们可以通过飞行数据页面的数据闪存日志项进行查看,而PIX还可以通过取下内存卡用读卡器插电脑上查看
下面开始图解
首先打开地面站,默认打开页面就是飞行数据页面,选好com口,连接飞控,点击右翻页键,找到数据闪存日志项
点击通过mavlink下载闪存日志
弹出日志下载页面
我们不需要下载全部的日志,先在右边的日志明细里通过日期找到你需要分析的日志编号,然后在左边选择框中勾选,最后点击下载这些日志就可以了
每下载完一个都会有提示保存路径 
下载完全后关闭下载窗口,点击回顾日志 
弹出文件选择框,双击打开QUADROTOR,然后打开1文件夹


好了,现在正式弹出日志查看器了 
下面开始按项目分类为大家介绍
一,ATT(姿态信息):
Roll-In:你想要的roll角度,单位:厘米-度(roll往左为负,右是正)
Roll:模型实际的roll,单位:厘米-角度(roll往左为负,右是正)
Pitch-In:你想要的pitch角度,单位:厘米-角度(pitch往前为负,后是正)
Roll:模型实际roll,单位:厘米-角度(roll往左为负,右是正)
Yaw-In:你想要的偏航率,范围 – 4500 ~ + 4500(不是“度/秒”,顺时针方向为正)
Yaw:模型实际航向,单位“厘米-度”,且 0 = 北。
NavYaw:想要的航向,单位:厘米-度
我们展开ATT项,然后选择目标角度Desroll,和实际角度roll,通过两条不同颜色的曲线进行分析 
目标值和实际值应该尽量的相近,从曲线上看就是两条线应该尽量重合
如果飞行时间很长,数据很密集,我们可以用鼠标框选指定区域查看,或者用滚轮调整左边值的显示比例大小! 
还可以通过曲线了解飞行时的姿态
pitch俯仰轴图示

yaw航向轴图示
二,BARo(气压计日志 )

三,CTUN(油门和高度信息 )
ThrIn:飞手的油门大小,表示为从0到1000的数值
SonAlt(声纳高度):声纳测得离地面的高度
BarAlt:气压计测得离地面的高度
WPAlt:定高、悬停、返航或自动飞行模式的目标高度
NavThr:未使用
AngBst:飞行器倾斜飞行时会增加的油门大小,范围0 ~ 1000(自动给所有电机同时加油门,以补偿自动驾驶仪在倾斜飞行时减少的高度)
CRate:加速计 + 气压计估计的上升速率,单位cm/s
throut:最终油门输出大小,传送到电机(从0 ~ 1000)。在自稳模式下,通常相当于ThrIn + AngBst。
DCRate – 飞手想要的上升速率,单位:cm/s

四,CURR(电压电流日志)
Thr:油门输入范围从 0 ~ 1000
ThrInt:综合油门(即,此次飞行全部油门输出之和)
电压(Volt):电池电压; 记录格式:实际电压*100
Curr:电池电流输出,记录格式:安培*100
VCC:主板电压
CurrTot:电池总放电电流
五,GPS卫星定位导航信息
状态–0 = 没搜到GPS; 1 = 有GPS,但没定位; 2 = 2D 定位,3 = 3D定位
GPSTime:按下快门后,GPS记录当时的时间(以毫秒为单位)
NSats:目前正在使用卫星的数量
HDop:GPS测量精度(1.5代表好,大于2代表不太好)
Lat:由GPS得到的横向高度
Lng:由GPS得到的纵向高度
RelAlt:加速计 + 气压高度,单位为米
Alt:由GPS得到的高度(不是由飞控)
SPD:水平的地面速度(单位:米/秒)
GCrs:地面方向,以度为单位(0 = 北)

六,IMU (加速度计和气压信息):
GyrX,GyrY,GyrZ:陀螺仪原始旋转率(单位:度/秒)
AccX,AccY,AccZ:加速度计原始值(单位:m/s/s)
imu我们主要是看ACC的X Y Z 三个轴的值来看震动情况
X Y 两轴建议不要超过±1
Z 轴不要超过10的±
2
IMU是我们看日志经常要查看的,如果震动过高,会引起飞机抖动,定高不稳,定点晃动,航拍果冻等问题
ACC X
ACC Y
ACC Z
七,RC IN(遥控器接收机信息)
c1-c14代表飞控接收到遥控器信号的记录值,多轴一般用五个通道
c1表示1通道横滚
c2代表2通道俯仰
c3代表3通道油门
c4代表4通道航向
c5代表5通道模式切换
后面的通道有用到的也会有记录

八,RC OU(电机电调输出pwm值)
这个项是记录飞控对各电机的输出大小,多轴电机悬停时应该所有电机输出差异不大
从这一项我们可以看出飞机重心,电机水平等情况,如果相邻两个电机输出大,相对的两个输出小,就说明重心偏向输出大的电机那一边了
如果是对角的两个电机输出偏大,则要检查是不是电机座没有安装水平!
还能通过各轴电机输出的变化推算出飞机当时的姿态和动作情况!
c1代表1号电机,后面按轴数量选择,我是四轴,选c1到c4就可以了。![]()
九,罗盘信息 子项目里的MAG为外罗盘也就是主罗盘记录,MAG2为内置盘也就是冗余罗盘记录,我们分析时分别可以同时勾选两个罗盘的同一个轴做比较,看偏差大不大,两个罗盘间肯定是有偏差的,但不应过大,而且曲线方向要一致!然后如果怀疑罗盘有问题导致飞机不稳,可以结合故障时间段的姿态信息和罗盘进行对比,看曲线是不是跟着姿态在正常变化,悬停时,曲线应该是比较平稳的! 


十,ERR(错误信息)
下面列出:子系统及错误代码
1:Main(从未使用)
2:无线电(Radio)
ECode
1:“Late Frame”意思是APM的板载ppm编码器,至少2秒钟了没有更新数据。
ECode
0:意思是ppm编码器恢复数据更新,错误已解决。
3:Compass(罗盘)
ECode
1:罗盘初始化失败(很可能是硬件问题)
ECode
2:从罗盘读取数据失败(可能是硬件问题)
ECode:上述错误已解决
4:Optical
flow(光流)
ECode
1:初始化失败(很可能是硬件问题)
5:油门安全故障
ECode
1:油门下降到参数FS_THR_VALUE以下,可能RX/TX失去连接
ECode
0:上述问题解决,意思是RX/TX恢复连接
6:电池安全故障
ECode
1:电池电压低于参数LOW_VOLT,或电池过度放电能力超过参数BATT_CAPACITY
7:GPS安全故障
ECode
1:GPS断开锁定至少5秒钟
ECode
0:GPS恢复锁定
8:GCS(地面站)安全故障
ECode
1:地面站的操纵杆,至少5秒钟未变化。
ECode
0:恢复地面站的更新
9:围栏
ECode
1:超过限定围栏高度
ECode
2:超过限定围栏范围
ECode
3:超过限定海拔高度和围栏范围
ECode
1:模型回到限定范围内
10:飞行模式
ECode
0 – 10:模型不能进入想要的飞行模式
(0
= 自稳,1 = 特技,2 = 定高,3 = 自动,4 = 导航,5 = 悬停,6 = 返航,7 = 盘旋,8 = 定位,9 = 着陆,10 = 光流—悬停)
11:GPS
ECode
2:GPS故障
ECode
0:GPS已故障清除
12:撞击检查
ECode
1:检测到撞击
错误信息的日志比较老了,现在最新的固件有些已经对不上了,特别是3.3固件后取消了GPS故障保护,改为融合到EKF卡尔曼滤波里去了,大家有什么搞不懂的留言下来,我一一解答,然后慢慢更新!


EKF报错,这个多见于3.3固件后,此后基本上所有的传感器都经过了EKF(扩展卡尔曼滤波),触发原因有飞机超过了设定的最大角度(imu报错),罗盘不正常,GPS丢星或异常,等等!大家记得如果EKF的持续错误会触发FS
EKF故障保护,默认动作是降落,如果场地不好,记得改成定高! 方法如下
http://bbs.5iflying.com/forum.ph ... 017&fromuid=898

---------------------
本文来自 xazzh 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/xazzh/article/details/72814567?utm_source=copy
APM和PIX飞控日志分析入门贴的更多相关文章
- Kubernetes Ingress日志分析入门
本文主要介绍如何基于日志服务构建Kubernetes Ingress日志分析平台,并提供一些简单的动手实验方便大家快速了解日志服务相关功能. 部署Ingress日志方案 登录容器服务管理控制台. 将上 ...
- hadoop入门之海量Web日志分析 用Hadoop提取KPI统计指标
转载自:http://blog.fens.me/hadoop-mapreduce-log-kpi/ 今天学习了这一篇博客,写得十分好,照着这篇博客敲了一遍. 发现几个问题, 一是这篇博客中采用的had ...
- 手把手教你搭建 ELK 实时日志分析平台
本篇文章主要是手把手教你搭建 ELK 实时日志分析平台,那么,ELK 到底是什么呢? ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch.Logstash 和 Kiban ...
- 【转】gc日志分析工具
性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析. Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc ...
- 海量日志分析方案--logstash+kibnana+kafka
下图为唯品会在qcon上面公开的日志处理平台架构图.听后觉得有些意思,好像也可以很容易的copy一个,就动手尝试了一下. 目前只对flume===>kafka===>elacsticSea ...
- ELK+Kafka集群日志分析系统
ELK+Kafka集群分析系统部署 因为是自己本地写好的word文档复制进来的.格式有些出入还望体谅.如有错误请回复.谢谢! 一. 系统介绍 2 二. 版本说明 3 三. 服务部署 3 1) JDK部 ...
- Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍
网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edisonchou/p/4458219.html 网站日志分析项目案例 ...
- Hadoop学习笔记—20.网站日志分析项目案例(二)数据清洗
网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:当前页面 网站日志分析项目案例 ...
- Hadoop学习笔记—20.网站日志分析项目案例(三)统计分析
网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:http://www.cnbl ...
随机推荐
- [系统集成] 基于 elasticsearch 的企业监控方案
注: 2017年10月16日: 使用中发现 es 查询时序数据的性能较差,且 watch 脚本的编写比较麻烦,因此已将监控系统切换到了 influxdb+grafana平台.新监控系统各方面情况比较满 ...
- JavaScript事件循环机制
事件循环 事件循环不仅仅包含事件队列,而是具有至少两个队列,除了事件,还要保持浏览器执行的其他操作.这些操作被称为任务,并且分为两类:宏任务(或通常称为任务)和微任务. 单次循环迭代中,最多处理一个宏 ...
- nodejs的package.json依赖dependencies中 ^ 和 ~ 的区别
nodejs的package.json定义了一个模块,包括其依赖关系的一个简单的JSON文件,该文件可以包含多个不同的指令来告诉Node包管理器如何处理模块. dependencies则表示此模块依赖 ...
- Iterator接口(迭代器)
目录 前言 原理 方法 异常 Iterator接口(迭代器) 前言 一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象, ...
- anylogic 使用
1.智能体群的用法有人会问:请问怎么给生成的两个对象赋予属性,比如在分叉的时候一个进入sink1,另一个进入sink2?我想source生成不同的实体,而且各个实体都有不同的属性,请问应该怎么设置呢? ...
- Idea中一些常用设置
idea展开和折叠方法的快捷键 Ctrl+”+/-”,当前方法展开.折叠Ctrl+Shift+”+/-”,全部展开.折叠 idea中也有自定代码块的功能 //region 描述.....业务代码//e ...
- python 视频转成代码视频
# -*- coding:utf-8 -*- # coding:utf-8 import os, cv2, subprocess, shutil from cv2 import VideoWriter ...
- hdu2181 简单搜索
题意: 一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市. Input前20行的第i行有3个数,表示与第i个城市相邻的3个城市.第 ...
- Scyther-Semantics and verification of Security Protocol
1 .本书前一节主要是介作者自己的生平经历(读完感觉作者是个神童),目标明确作者13岁代码已经写的很溜了.自己也开了网络公司,但是后面又专注于自己的计算机基础理论,修了哲学的博士学位(不得不说很多专业 ...
- linux线程 join/detach
linux中创建线程时,可以通过 __attr 指定线程的属性 extern int pthread_create (pthread_t *__thread, __const pthread_attr ...