热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MissionPlanner日志保存方法

闪存日志目录闪存日志日志类型(闪存VS数传日志)设置你想要记录的数据用MissionPlanner下载日志查看内容详细信息(针对APM:Copter)查看KMZ文件视频教程日志


闪存日志


目录


  1. 闪存日志
  2. 日志类型(闪存 VS 数传日志)
  3. 设置你想要记录的数据
  4. 用Mission Planner下载日志
  5. 查看内容
  6. 详细信息(针对APM:Copter)
  7. 查看KMZ文件
  8. 视频教程

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


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

  • 闪存日志(本页的主题)飞行完成后,可以从APM或PX4的板载闪存上下载。飞机和地面车辆,只要一开机就会自动创建闪存日志。四轴上则是解锁后才创建闪存日志。(主要是研究四轴)

  • 数传日志(也称为“tlogs”)用3DR或XBee数传模块连接APM到电脑上,会被Mission Planner(或其他地面站)记录下来。你可以 在这里找到详细信息

设置你想要记录的数据

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

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

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

用于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)、气压测得的高度(baroalt),以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)。
  • 这一步,保证了下载的参数比率正确。
  • 单击“下载这些日志”
  • 对于非常大的日志,可能要花几分钟才能下载完,注意看着“清除记录”按键下的传输进度。
  • 当文件下载完成,会显示“已完成”。

  • 出现的文件夹会显示日志文件,位置在软件安装目录,logs文件夹或在手动配置的文件夹。
  • 在软件的配置/调试 > log path可以设置。
  • 文件的格式:YYYY-MM-DD HH-MM##.log,其中日期是当前日期,##是日志编号。
  • .kmz文件和log文件是一起的,用Google打开kmz文件后,可以看到飞行路径3D效果图。
  • 同时也生成了 .gpx文件 ,不过很少用。

清除日志:

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

查看内容

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

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

日志和顶部的图形在一个界面。

在图形上,按下鼠标左键不放,移动到绿色按钮上面范围以内都行,绘图大小就可以改变。

基本格式:

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


  • 想绘制哪个飞行数据,只要相应行单击它。
  • 你就会看到相应的列标题会更新。
  • 接着点击那个列,然后按下“绘制这个数据”键。
  • 上面的例子,ATT的Roll-In和Roll数据已经绘制成图了。
  • 鼠标的滚轮可用于放大或缩小。
  • 你也可以选择图表的某个区域进行放大。
  • 缩小,鼠标右键单击并选择“设置比例为默认值"。
  • 你还可以用过滤的方式,在第一行单击,在下拉菜单选择信息类型(飞行数据类型)。
  • 这非常有用,特别是查看飞行任务期间,不同飞行模式时(称为“模式”信息) 。
  • 再次单击第一列,按“取消”可以清除过滤器。

详细信息(针对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)。可以用谷歌地图打开(只需双击该文件),在谷歌地球上查看飞行数据。请参见有关 数传日志页面 了解更多详细信息。








推荐阅读
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
author-avatar
认识你不笑嘻嘻
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有