天天看点

【ECL】ECL离线调试开源代码(回放,移植,改算法)ECL_Offline 离线调试开源代码(EKF2回放,移植,改算法)

ECL_Offline 离线调试开源代码(EKF2回放,移植,改算法)

github地址:

https://github.com/Toothsmile/ecl_offline
           

前言

首先得申明下这个想法其实更早的有个浙大的实现了,

https://github.com/AbnerCSZ/EKF2_offline.git

,所以其中参考了他的框架,但是他好像不是算飞机,反正我做了些改进,更适应新的ecl库版本。

接下来我就谈谈我这个代码。官方也出了replay,但是官方的回放有时候存在问题,所以呢我就想自己写一个,比较好把控里面的东西,想用ecl_repaly自定义的数据也比较方便,主要想做的是接近官方ecl的框架,大家将新的ecl库文件放进来也可以使用。

面向的人

  • 想系统学习ECL中ekf2代码的同学
  • 想移植代码的同学
  • 想改里面算法的同学
  • 想回放不止是px4记录的log日志的同学

进度

这个代码写是刚开始,但是我写着感觉比之前快,现在

实现以下功能

  • 离线调试,可以使用命令行编译,也可以使用qt creator编译设置断点
  • px4记录的log转成csv可以运行,可以运算

将来实现

我的想法是

先实现官方的repaly数据输出,所以近期在做三个事

  1. csv数据的脚本生成
  2. ekf结果数据的输出
  3. 参数文件的输入,这个在想怎么做

将来的话,就是基于这个可以做一些算法改进,算法优化的工作。

如果你是学习组合导航的,搞无人机的需要查看定位的,想研究px4 ekf2代码的可以用这个,也想大家来帮忙一起完善吧,毕竟一个人的力量是有限的。

代码的使用

1.源码下载,切换分分支

git clone  https://github.com/Toothsmile/ecl_offline
git checkout px4v1.8.2
           

我这个库是先基于px4v1.8.2版本的ecl库改,后面也要去学习下1.9.x版本吧,我现在上传了data数据直接是可以运行。

2.我的改动

我主要是增加修改

/ecl/EKF

三个文件

CMakeLists.txt myekf2.cpp myekf2.h
           

CMakeLists.txt

是将这些代码组织起来,

myekf2.cpp

就是主函数,也是ecl库的入口函数,将数据穿进去。

3.编译

命令行编译

cd EKF
mkdir Build/
cd Build/
cmake ..
make
cd ..
./build/myekf2
           

上面多了一步

cd ..

其实是为了让数据的相对路径正确,出现下图的输出结果就说明数据进去了,如果全是0,那就是路径问题。

【ECL】ECL离线调试开源代码(回放,移植,改算法)ECL_Offline 离线调试开源代码(EKF2回放,移植,改算法)

Qtcreator编译

使用qtcreator可以设断点调试比较方便,用qtcreator打开EKF文件夹下面的CMakeLists.txt(!!!)。

【ECL】ECL离线调试开源代码(回放,移植,改算法)ECL_Offline 离线调试开源代码(EKF2回放,移植,改算法)