写在前边ecl是开源无人机项目PX4使用的算法库,使用ekf(扩展卡尔曼滤波)进行imu等多种传感器的数据融合

然而ecl不提供数据后处理功能

能使用ecl进行多传感器数据融合的后处理是很有必要的,这样便于参数调试,和二次开发的调试,从而缩短开发周期,降低开发成本

鉴于以上几点作者fork了ecl的项目,并添加了后处理功能

在添加后处理功能时的基本原则是,尽量做到不更改ecl的任何代码,实际上却是没有更改任何代码文件

实际上整个更改只是在CMakeLists.txt中添加了下边这一行

add_subdirectory(airdata)

add_subdirectory(EKF) #

add_subdirectory(geo)

add_subdirectory(geo_lookup)

add_subdirectory(main) # 这一行是新添加的可以看出一个叫做main的文件夹被添加到了和ekf以及test等的同级目录,这个文件夹中包含了生成后处理程序所需要的CMakeLists.txt和所有代码文件,而ekf则使用add_subdirectory(EKF) #这一行生成的动态库

入门

按照以下步骤可完成整个项目的克隆,生成,编译和运行。clone 项目到本地仓库

git clone https://github.com/akstuki/PX4-ECL.git

2.(这一步不是必须的)建议新建目录build,这样会比较干净

mkdir build/

cd build/

3. 生成项目(生成makefile文件)

$ cmake ..

-- The CXX compiler identification is GNU 7.4.0

-- Check for working CXX compiler: /usr/bin/c++.exe

-- Check for working CXX compiler: /usr/bin/c++.exe -- works

-- Detecting CXX compiler ABI info

-- Detecting CXX compiler ABI info - done

-- Detecting CXX compile features

-- Detecting CXX compile features - done

-- build type is RelWithDebInfo

-- PX4 ECL: Very lightweight Estimation & Control Library v1.9.0-rc1-496-g5ca644e

-- Configuring done

-- Generating done

-- Build files have been written to: /cygdrive/f/1-own/0-code/0alforithmCode/px4/ecl/PX4-ECL/build

4. 编译生成可运行文件

$ make

Scanning dependencies of target matrix

[ 2%] Completed 'matrix'

[ 21%] Built target matrix

Scanning dependencies of target prebuild_targets

[ 21%] Built target prebuild_targets

[ 26%] Built target ecl_airdata

[ 31%] Built target ecl_geo_lookup

[ 36%] Built target ecl_geo

[ 89%] Built target ecl_EKF

Scanning dependencies of target postEcl

[ 92%] Building CXX object main/CMakeFiles/postEcl.dir/main.cpp.o

[ 94%] Building CXX object main/CMakeFiles/postEcl.dir/csvparser.cpp.o

[ 97%] Building CXX object main/CMakeFiles/postEcl.dir/PostEkf.cpp.o

[100%] Linking CXX executable postEcl.exe

[100%] Built target postEcl

5. 运行程序(程序仅仅需要一个参数,就是px4的日志文件)

$ ./postEcl.exe 09_26_14_sensor_combined_0.csv

start ecl main...

47634158: reset position to last known position

47634158: reset velocity to zero

51113397: mag yaw fusion numerical error - covariance reset

51534173: EKF aligned, (baro hgt, IMU buf: 12, OBS buf: 9)

57718962: mag yaw fusion numerical error - covariance reset

baro hgt timeout - reset to baro

67032581: mag yaw fusion numerical error - covariance reset

68114987: reset position to last known position

68114987: reset velocity to zero

68114987: stopping navigation

baro hgt timeout - reset to baro

baro hgt timeout - reset to baro

84041372: reset position to last known position

84041372: reset velocity to zero

84041372: stopping navigation

finished.

6. 可以看到程序运行结束后生成一个输出文件ecloutput.csv,包含ekf的所有状态

$ ls -l

总用量 6848

-rwxrwxr-x+ 1 xiaoqiang xiaoqiang 1492459 9月 29 2018 09_26_14_sensor_combined_0.csv

-rwxrw-r--+ 1 xiaoqiang xiaoqiang 1025 1月 4 22:37 cmake_install.cmake

drwxrwxr-x+ 1 xiaoqiang xiaoqiang 0 1月 5 21:51 CMakeFiles

-rwxrw-r--+ 1 xiaoqiang xiaoqiang 2612997 1月 5 22:08 ecloutput.csv

-rwxrw-r--+ 1 xiaoqiang xiaoqiang 7687 1月 5 21:50 Makefile

-rwxrwxr-x+ 1 xiaoqiang xiaoqiang 2889190 1月 5 21:52 postEcl.exe

下一步工作添加更多数据格式的支持框架

添加参数配置接口 (或许以配置文件方式)

另外,可以将CMakeList.txt放到外层,把ecl以external的方式导入(本项目暂时不考虑这种方式)

postek二次开发_使用PX4的ECL进行多传感器数据融合的后处理相关推荐

  1. postek二次开发_博思得RFID标签打印机解析

    [IT168厂商动态]近年来,物联网作为我国战略发展新兴行业,物联网概念持续升温,作为推进物联网发展的关键技术之一RFID无线射频技术,也随之形成高速发展和广泛应用的局面.POSTEK博思得作为国内领 ...

  2. postek二次开发_各类标签一机打尽博思得C168条码打印机评测

    [天极网办公频道]条码打印机的应用已屡见不鲜,但对于一款能应用于多种行业且经济实惠的产品来说,目前市面上还非常少见.博思得科技公司推出的这款--博思得C168系列条码标签打印机,正是面向较为广泛的用户 ...

  3. postek二次开发_各类标签一机打尽 博思得C168条码机热促

    [PConline深圳站行情]条码打印机的应用在我们生活中已经屡见不鲜,超市中的产品标签打印既是这类产品制造出来的,大部分条码打印机只能针对不同行业需求进行打印,而且其价格不菲.如果出现一款能应用于多 ...

  4. postek二次开发_详解Visual Basic脚本在BarTender中的应用

    Visual Basic脚本可在常规打印时操作中使用,或与打印机代码修改器操作一同使用.BarTender 中的脚本助理包含一个脚本编写区域,在该区域中,既可以通过键入方式编写实际脚本,也可以使用脚本 ...

  5. 企业微信SCRM系统部署_企业微信SCRM二次开发_企业微信SCRM系统独立版源码价格

    企业微信SCRM系统部署_企业微信SCRM二次开发_企业微信SCRM系统独立版源码价格 点趣互动是企业微信系统的第三方应用提供厂商,用于管理员工企业微信的内一款系统软件.点趣互动企业微信scrm软件主 ...

  6. 1、华为hilens二次开发_人脸识别技能实现

    华为hilens二次开发_人脸识别 华为hilens二次开发_人脸识别 1.找到技能文件所在位置 2.hilens管理控制台创建技能 3.配置路径说明: 华为hilens二次开发_人脸识别 通过技能中 ...

  7. 方维团购系统二次开发,order、order_goods、goods表的数据

    方维团购系统二次开发,order.order_goods.goods表的数据 select * from fanwe_order; 数据库查询结果 [ 返回12条查询记录 耗时:0.000805s ] ...

  8. pixhawk/px4如何获取及使用传感器数据

    pixhawk/px4如何获取及使用传感器数据 第一步:读取传感器数据 上一篇博文已经介绍了如何给pixhawk/px4创建一个应用程序,现在我们在上一个应用程序的基础上使用传感器数据. 应用程序为了 ...

  9. Revit二次开发_将数据导入Excel

    有时需要将Revit模型的一些信息提取到Excel中进行处理或者是作为记录进行储存,但也许是因为Revit的数据结构相对复杂,并不支持直接将数据导出Excel,所以平时通过二次开发将信息输出到Exce ...

最新文章

  1. 14岁清华本科新生免试直博!高校新生大数据陆续曝光,男女比例、年龄差距各异......
  2. 两种不同的人工智能观:工程观点和科学观点
  3. POJ2955Brackets[区间DP]
  4. springboot使用j2cache框架和aspectj自定义缓存
  5. php json解析教程,php解析json
  6. 钢铁厂来了“新员工”破解废钢定级行业难题
  7. zstd安装_PHP: 安装 - Manual
  8. JavaScript玩转机器学习:平台和环境
  9. python通过解释器来编译_python 解释器与编译过程,代码的搬运工
  10. iOS UICollectionView的简单使用和常用代理方法
  11. python 无法调用turtle_新人求助,关于python 调用turtle《python简单turtle教程》
  12. MYSQL 数据库 创建库和删除库的语句
  13. mysql event demo_MySQL定时任务event
  14. 能源巨头BP称已经测试了“内部”代币
  15. c# chart 各个属性_C#之Chart控件系列教程
  16. CentOS实现双网卡网络共享
  17. Masked Autoencoders Are Scalable Vision Learners (MAE)
  18. java基于微信小程序的在线作业提交批改系统 uniapp 小程序
  19. 拍照扫描怎么弄?你可以试一下这两个方法
  20. 主题模型(LDA)案例:分析人民网留言板数据

热门文章

  1. SOAP-ERROR: Parsing WSDL: failed to load external entity怎么办?
  2. 联想主板更改UEFI启动顺序
  3. 优雅的在latex中插入MATLAB代码 | 解决MATLAB代码中文乱码问题
  4. 卡通风格的渲染【Unity Shader入门精要14.1】
  5. Linux系列—策略路由、ip rule、ip route
  6. Maven仓库理解和优先级
  7. 微信营销十三(抖音案例)
  8. i510200h和i79750h哪个好
  9. springboot 想用fastjson的话pom一定要改
  10. 马哥的mysql知识