0 引言
在绘图轨迹啊、速度、姿态、陀螺零偏、加计零偏及误差曲线时,我经常使用自己用matlab写的小工具GINavPlot,但做数据分析时读取数据的速度很慢,因此考虑扩展一下RTKPLOT。GINavPlot读取数据慢,但数据量较大时放缩图像无卡顿;RTKPLOT读取数据很迅速,但数据量很大时,放缩操作会有卡顿(因为数据量太大,刷新会有延迟)
RTKPLOT的用法,rtkplot功能相当齐全!!!
1 扩展方法
仅仅简单介绍一下想要绘制INS输出的速度、姿态、陀螺零偏和加计零偏等相关曲线,这与rtkplot中Position、Velocity和Accel可视化效果一样。
1.1 修改读数据的函数
1、修改rtklib.h中sol_t结构体,添加姿态、零偏这些变量,修改后生成静态库libRTKLib.a
2、把rtklib.h中放到rtkplot_qt文件夹下,把../app/qtapp/appcmn_qt/appcmn_qt中的文件复制到../app/qtapp/appcmn_qt
3、在rtklib_qt.pro中修改静态库libRTKLib.a的路径
4、修改读取文件的函数
可以选择修改rtklib的源代码readsolt函数,MenuOpenSol1Click->ReadSol->readsolt;
也可以直接在rtkplot工程中新建头文件和源文件,创建新的解析函数,比如创建plotextend.h和plotextend.cpp,新函数名为readInsSol,用readInsSol替换readsolt
1.2 添加画图选项名
1、添加菜单下拉时的选项名
plotcmn.cpp->PTypes中增加选项名,比如:QT_TR_NOOP("InsVel")
1.3 修改宏的位置
1、添加 PLOT_INSV PLOT_INSA PLOT_INSBg PLOT_INSBa 的宏定义
plotmain.h->比如:#define PLOT_INSV 1
2、添加选项名到UI中
plotinfo.cpp->UpdatePlotType->PlotTypeS->262行 addItem(PTypes[PLOT_INSA])
3、修改PLOT_SOLA为PLOT_INSBa
plotdata.cpp->ReadSol->115行 AutoScale旁
4、添加PLOT_INSA选项
plotdraw.cpp->UpdateDisp->58行 switch增加PLOT_INSA的case
5、修改PLOT_SOLA为PLOT_INSBa
plotmain.cpp->UpdateType->2000行 AutoScale旁
6、修改PLOT_SOLA为PLOT_INSBa
plotmain.cpp->FitRange->2574行
7、添加 PLOT_INSV PLOT_INSA PLOT_INSBg PLOT_INSBa 相关的开关
plotmain.cpp->UpdateEnable->只要有PLOT_SOLP的地方都添加
1.4 绘图相关修改
1、修改type
plotdraw.cpp->UpdateDisp->DrawSol的type变量要修改
2、修改label和unit
plotdraw.cpp->DrawSol->label变量要根据type修改
plotdraw.cpp->DrawSol->unit变量要修改
3、扩展画图所用的数据
plotcmn.cpp->Sol2Pos->根据type做扩展,首先分配内存,然后存数据
1.5 拖入文件解析数据
plotmain.cpp->plot构造函数->this->setAcceptDrops(true)
plotmain.cpp->dropEvent->files.append(url.toLocalFile()),然后修改读取文件的逻辑