折返的Liung

我如溪水,静静流淌在山涧~~我如白云,俯瞰此生今生~~

APM-回放功能测试

简介

回放功能是用来处理dataflash日志文件的一套程序,并通过最近的主代码展示一系列基于真实数据的模拟结果。它可以用来重现产生bug的准确情形,或在同样的条件下测试改变EKF参数的影响。回放功能仅仅运行于Liunx/Ubuntu平台,且仅适用来自于高速CPU诸如PX4/Pixhawk运行2014年5月之后的ArduCopter/ArduPlane/ArduRover(例如AC3.2-dev或更高版本)所产生的dataflash日志文件。

img0


回放功能所需要的Dataflash日志信息

为了能够使用回放功能,下面的dataflash信息必须被启用:

AHRS2, BARO, EKF1, EKF2, EKF3, EKF4, GPS, IMU, IMU2, MAG, MAG2


编译回放模块

在你的Liunx上或Ubuntu虚拟机上:

cd ../ardupilot/Tools/Replay
make linux

上述操作将会生成一个/tmp/Replay.build/Replay.elf文件


使用回放功能

首先,将你需要分析的dataflash日志文件放入../ardupilot/Tools/Replay目录。

显示回放帮助:

/tmp/Replay.build/Replay.elf -- -h

通过Replay运行日志,生成图片和EKF数据文件:

/tmp/Replay.build/Replay.elf -- -r400 MyLogFile.BIN

注意:参数-r400是针对ArduCopter的主循环运行频率,对于ArduPlane和Rover自动忽略或替换为-r50

上述操作将会产生六个输出文件:plot.dat, plot2.dat, EKF1.dat, EKF2.dat, EKF3.dat, EKF4.dat

查看原始文件用来了解哪些有用的数值需要被绘制:

less plot.dat  //可以用其它六个文件的任何一个文件来代替 plot.dat

img1

可以使用相对简单的plotit.sh脚本来绘制数据。下面命令用来比较由EKF计算的高度与较早的使用惯性导航计算的高度和实际飞行高度。

img1

也可以使用更复杂的mavgraph.py来绘制数据:

mavgraph.py MyLogFile.BIN EKF1.PN NTUN.PosX*0.01

这个例子用来将EKF估算的相对家的南北位置与较早的惯性导航估算的位置做比较。结果请看本页的第一张图片。


链接

  1. APM官网原文链接
  2. APM开发人员参考手册目录列表

(over)

Comments