common-在Mission Planner中下载与分析日志

[common_page]

参考手册目录

闪存日志


日志类型(闪存 VS 数传日志)

有两种方法可以记录你飞行时的数据。尽管两种记录方法十分类似,但也有些区别:

  • 闪存日志(本页的主题)飞行完成后,可以从APM或PX4的板载闪存上下载。飞机和地面车辆,只要一开机就会自动创建闪存日志。 四轴上则是解锁后才创建闪存日志。
  • 数传日志(也称为“tlogs”)用3DR或XBee数传模块连接APM到电脑上,会被Mission Planner(或其他地面站)记录下来。你可以 在这里找到详细信息

设置你想要记录的数据

LOG_BITMASK参数控制闪存内记录什么类型的数据。如果你想指定某个消息类型附加到默认的方法上,在Mission Planner标准参数列表页面,可以在Log Bitmask的下拉列表设置。

MissionPlanner_LogBitmask

使用终端控制会更加方便(命令行界面),如下所示:

  • 进入Mission Planner的终端界面
  • 单击“连接APM”或“连接PX”
  • 键入logs
  • 启用或禁用某个消息类型,在enable或disable后输入信息的类型即可。如: enable IMU

MissionPlanner_CLI_logs

用于Arducopter的所有可能的闪存信息:

ATT:roll,pitch和yaw(启用ATTITUDE_FAST记录频率是50Hz,启用ATTITUDE_MED记录频率是10HZ)。

ATUN:自动调参概览(从开头记录每一次“晃动”测试)

ATDE:自动调参详情(以100HZ记录飞行器的晃动情况)

CAMERA(相机):快门按下后,记录当时的GPS时间、roll、pitch、yaw、纬度、精度、高度。

CMD(命令):从地面站接收命令,或者作为执行任务之一。

COMPASS(罗盘):罗盘原始数据和compassmot补偿值。

CURRENT(电流):以10HZ的频率,记录电流和主板电压信息。

CUTN:油门和高度信息,包括油门输入大小、超声波测得的高度(sonar alt)、气压测得的高度(baro alt),以10HZ频率记录。

D32:id = 9,简单模式最初的航向,单位是百分之一度(例: 18000=南)。

DU32:id = 7,内部状态的位掩码。个别位的含义可以在 ArduCopter.pde中定义的结构体ap找到。

ERR:子系统错误和错误编号。这些列表上可以在 “使用日志文件诊断问题”Wiki页面找到。

EV:一个事件的编号。事件的完整列表可以在 defines.h 找到,最常见的是:

10 = Armed(解锁)。

11 = Disarmed(锁定)。

15 = Auto Armed(自动解锁)(飞手已经拉高油门大于0 了、自动驾驶仪不用再控制油门)

16 = TakeOff(起飞)

18 = Land Complete(降落完成)

25 = 设定“家”(家的位置坐标已经获取)

GPS:GPS的位置、高度、卫星数量,hdop,在GPS更新时会记录(通常是5Hz)。

IMU:加速计原始数据和陀螺仪信息,记录频率50HZ。

INAV:惯性导航高度和位置。

MOTORS:单个电机信息,记录频率50Hz。

NTUN:导航数据,包括所需和实际速度、所需加速度、所需roll和pitch角度,在自动驾驶仪控制水平位置(悬停,返航,自动模式)时,以频率10Hz记录。

OPTFLOW:光流传感器速度和所需roll和pitch角度(使能OF_LOITER时有效)。

PID:如果被CH6旋钮调节,PID控制器输出的P、I、D结果,记录频率50Hz。

PM:性能信息,包括多个循环缓慢运行,最长循环时间,单位:毫秒(每10秒记录一次)。

  • 注意:如果使能太多的日志项,会严重影响性能发挥。所以一般来说默认即可。或作为分析数据需要时,只使能有用的日志项,如:INAV,MOTORS和IMU。
  • 欲知在其他平台有哪些日志可用,执行以下步骤:
    • 做之前,把所要启用的日志项记下——写下来。
    • 在终端输入Enable All。将会启用全部日志项,当然也包括你不想要的。所有被记录的日志项会显示出来。
    • 若想禁用某日志项–如:某个日志项返回初始设置,在“disable”后跟着名字即可。或者进入-软件–高级参数,查看日志位掩码(LOG_BITMASK)参数,给模型配置参数。

用Mission Planner下载日志

  • 打开Mission Planner的终端界面。
  • 单击“连接APM”或“连接PX”。
  • 当出现提示时,单击“日志下载”
  • 当“日志”屏出现,在多选框先选择,然后下载(一般选择数字最大)
  • 选择你的模型类型(APM:Copter, APM:Plane, APM:Rover)。这一步,保证了下载的参数比率正确。
  • 单击“下载这些日志”

 

对于非常大的日志,可能要花几分钟才能下载完,注意看着“清除记录”按键下的传输进度。当文件下载完成,会显示“已完成”。

MissionPlanner_CLI_downloadlogs

出现的文件夹会显示日志文件,位置在软件安装目录,logs文件夹或在手动配置的文件夹。在软件的配置/调试 > log path可以设置。文件的格式:YYYY-MM-DD HH-MM##.log,其中日期是当前日期,##是日志编号。

.kmz文件和log文件是一起的,用Google打开kmz文件后,可以看到飞行路径3D效果图。同时也生成了 .gpx文件 ,不过很少用。

清除日志:

  • 按下“清除日志”按钮,会清除所有的日志。
  • 这个功能很有用,可以把前些天没用的日志删除,保留有用的日志。
  • 闪存写满了,会覆盖最旧的日志。

查看内容

打开闪存文件分析,按照以下步骤:

  • 打开Mission Planner的终端界面。
  • 按下日志浏览按钮,接着打开.log闪存文件

MissionPlanner_CLI_openDataflash

日志和顶部的图形在一个界面。在图形上,按下鼠标左键不放,移动到绿色按钮上面范围以内都行,绘图大小就可以改变。

基本格式:

  • 行号出现在最左侧
  • 软件版本和主板型号显示在顶部
  • 其次,FMT信息告诉Mission Planner每个信息类型的列标题
  • PARM对应的行,显示每个参数(按EEPROM存储排列的顺序)以及刚开始飞行时的值
  • 飞行数据信息,包括GPS、IMU(惯性测量单元)等等。

MissionPlanner_Dataflash_format

想绘制哪个飞行数据,只要相应行单击它。你就会看到相应的列标题会更新。接着点击那个列,然后按下“绘制这个数据”键。上面的例子,ATT的Roll-In和Roll数据已经绘制成图了。

鼠标的滚轮可用于放大或缩小。你也可以选择图表的某个区域进行放大。缩小,鼠标右键单击并选择“设置比例为默认值"。这里的 有个短教程教你如何使用此功能。

你还可以用过滤的方式,在第一行单击,在下拉菜单选择信息类型(飞行数据类型)。这非常有用,特别是查看飞行任务期间,不同飞行模式时(称为“模式”信息) 。再次单击第一列,按“取消”可以清除过滤器。

MissionPlanner_CLI_openDataflashFilter


详细信息(针对APM:Copter)

ATT(姿态信息):

Roll-In:你想要的roll角度,单位:厘米-度(roll往左为负,右是正)

Roll:模型实际的roll,单位:厘米-角度(roll往左为负,右是正)

Pitch-In:你想要的pitch角度,单位:厘米-角度(pitch往前为负,后是正)

Roll:模型实际roll,单位:厘米-角度(roll往左为负,右是正)

Yaw-In:你想要的偏航率,范围 – 4500 ~ + 4500(不是“度/秒”,顺时针方向为正)

Yaw:模型实际航向,单位“厘米-度”,且 0 = 北。

NavYaw:想要的航向,单位:厘米-度

ATUN(自动调试概览):

Axis(轴):0 = Roll,1 = Pitch

调试步骤:0 = 恢复值(测试前或测试后),1 = 测试(如:用晃动测试响应),2 = 更新数据(晃动完成,增益调整完成)

RateMin:测试期间最小记录速率

RateMax:测试期间最大记录速率

RPGain:测试得到的P比率增益值

RDGain:测试得到的D比率增益值

SPGain:测试得到的自稳P增益值

ATDE (自动调试详细步骤):

角度(Angle):飞行器经测试轴的角度,单位厘米-度。

比率(Rate):飞行器经测试轴,旋转的比率,单位厘米-度。

CAM(相机快门按下时的时间和所处位置):

GPSTime:按下快门后,GPS记录当时的时间(以毫秒为单位)

Lat:加速度计 + GPS纬度估计值

Lat:加速度计 + GPS经度估计值

Alt:加速度计 + 气压计测得离地面高度估计值(单位:cm)

Roll:模型roll角度(单位:厘米-度)

Pitch:模型pitch角度(单位:厘米-度)

Yaw:模型的航向(单位:厘米-度)

CMD:(从地面站接收命令或作为任务的一部分执行)。

CTot:命令总数

CNUM:任务的命令编号(0代表不没飞,1代表第一个任务)

Cld: MavLink 消息ID

Copt:选项参数(用于许多不同的目的)

Prm1:命令参数(用于许多不同的目的)

Alt:某命令执行时的高度,单位为米

Lat:某命令执行时的纬度

Lng:某命令执行时的经度

罗盘(COMPASS):(罗盘原始数据和compassmot补偿值):

MagX,MagY。MagZ:x、y和z轴,原始磁场值。

OfsX,OfsY,OfsZ:原始磁场偏移量(只有参数COMPASS_LEARN = 1时才有用)

MOfsX,MOfsY,MOfsZ:油门或电流的compassmot补偿

CURRENT(电流):(以10HZ频率记录电流和主板电压信息):

Thr:油门输入范围从 0 ~ 1000

ThrInt:综合油门(即,此次飞行全部油门输出之和)

电压(Volt):电池电压; 记录格式:实际电压*100

Curr:电池电流输出,记录格式:安培*100

VCC:主板电压

CurrTot:电池总放电电流

CUTN(油门和高度信息):

ThrIn:飞手的油门大小,表示为从0到1000的数值

SonAlt(声纳高度):声纳测得离地面的高度

BarAlt:气压计测得离地面的高度

WPAlt:定高、悬停、返航或自动飞行模式的目标高度

NavThr:未使用

AngBst:飞行器倾斜飞行时会增加的油门大小,范围0 ~ 1000(自动给所有电机同时加油门,以补偿自动驾驶仪在倾斜飞行时减少的高度)

CRate:加速计 + 气压计估计的上升速率,单位cm/s

throut:最终油门输出大小,传送到电机(从0 ~ 1000)。在自稳模式下,通常相当于ThrIn + AngBst。

DCRate – 飞手想要的上升速率,单位:cm/s

D32,DU32(数据类型:有符号32位整数或无符号32位整数):

id:变量标识号。仅有两个可能的值

7 = 内部状态的位掩码。个别位含义在 ArduCopter.pde文件结构体ap中

9 = 简单模式的初始航向,单位:厘米-度

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:检测到撞击

EV:(事件的编号)。可能事件的完整列表可以在 defines.h 找到,最常见的是:

10 = 解锁(Armed)。

11 = Disarmed(上锁)。

15 = 自动解除锁定(飞行员已经拉高油门大于0了、自动驾驶仪不用再控制油门)

16 = 起飞(TakeOff)

18 = 降落完成(Land Complete)

25 = 设定“家”(家的位置坐标已经获取)

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)

INAV(惯性导航位置和估计速度):

BAlt:气压高度(单位:cm)

IAlt:惯性导航高度估计值(单位:cm)

IClb:惯性导航上升速率估计值(单位cm/s)

ACorrX。ACorrY,ACorrZ: x,y 和 z轴 加速度计矫正(单位:cm/s/s)

GLat,GLon:“家”的GPS纬度和经度

ILat, ILng:“家”的惯性导航经度和纬度

模式(飞行模式):

模式:飞行模式显示为一个字符串(即:自稳、悬停等)

ThrCrs:巡航油门大小(0–1000),自动驾驶仪自动判断选择最佳大小的油门,用于保持飞行器悬停稳定。

电机(PWM输出到各个电机):

Mot1,Mot2等:从飞控发送pwm命令到电调/电机

NTUN(导航信息):

WPDst:离下一个航点(或悬停目标)的距离(单位:cm)。只有在悬停,返航,自动模式才更新。

WPBrg:bearing to the next waypoint in degrees

PErX:纬度方向,飞行器和下一航点之间的距离。

PErY:经度方向,飞行器和下一航点之间距离。

DVelX:纬度方向,所需速度(单位为cm/s)

DVelY:经度方向,所需速度(单位为cm/s)

VelX:纬度方向,实际加速 + GPS估计速度

VelY:经度方向,实际加速 + GPS估计速度

DAcX:纬度方向,所需加速度(单位为cm/s/s)

DAcY:经度方向,所需加速度(单位为cm/s/s)

DRol:想要的roll角度(单位:百分之一度)

DPit:想要的pitch角度(单位:百分之一度)

PM(性能监测):

RenCnt:DCM renormalization count – a high number may indicate problems in DCM (extremely rare)

RenBlw:DCM renormalization blow-up count – how many times DCM had to completely rebuild the DCM matrix since the last PM.Normally innocuous but a number that constantly grows may be an indication that DCM is having troubles calculating the attitude (extremely rare)

FixCnt: the number of GPS fixes received since the last PM message was received (it’s hard to imagine how this would be useful)

NLon: number of long running main loops (i.e. loops that take more than 5% longer than the 10ms they should)

NLoop: the total number of loops since the last PM message was displayed.Normally 1000 and allows you to calculate the percentage of slow running loops which should never be higher than 15%.

MaxT: the maximum time that any loop took since the last PM message.This should be close to 10,000 but will be up to 6,000,000 during the interval where the motors are armed

PMT: a number that increments each time a heart beat is received from the ground station

I2CErr:最新性能监测数据,I2C错误的总数。任何的I2C错误,就可能意味着I2C总线出了问题。可能会导致主循环时间变长,导致飞行性能下降。


查看KMZ文件

当你从APM/PX4下载闪存日志文件,同时会自动创建一个KMZ文件(文件扩展名为.kmz)。可以用谷歌地图打开(只需双击该文件),在谷歌地球上查看飞行数据。请参见有关 数传日志页面 了解更多详细信息。


视频教程


[question]
[translator main=”Hunter” proof=”Stone”]


Questions about this page? Comments? Suggestions? Post to APM Forum! Use the platform specific to your query, and make sure to include the name of the page you are referring to.