postek二次开发_使用PX4的ECL进行多传感器数据融合的后处理
写在前边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进行多传感器数据融合的后处理相关推荐
- postek二次开发_博思得RFID标签打印机解析
[IT168厂商动态]近年来,物联网作为我国战略发展新兴行业,物联网概念持续升温,作为推进物联网发展的关键技术之一RFID无线射频技术,也随之形成高速发展和广泛应用的局面.POSTEK博思得作为国内领 ...
- postek二次开发_各类标签一机打尽博思得C168条码打印机评测
[天极网办公频道]条码打印机的应用已屡见不鲜,但对于一款能应用于多种行业且经济实惠的产品来说,目前市面上还非常少见.博思得科技公司推出的这款--博思得C168系列条码标签打印机,正是面向较为广泛的用户 ...
- postek二次开发_各类标签一机打尽 博思得C168条码机热促
[PConline深圳站行情]条码打印机的应用在我们生活中已经屡见不鲜,超市中的产品标签打印既是这类产品制造出来的,大部分条码打印机只能针对不同行业需求进行打印,而且其价格不菲.如果出现一款能应用于多 ...
- postek二次开发_详解Visual Basic脚本在BarTender中的应用
Visual Basic脚本可在常规打印时操作中使用,或与打印机代码修改器操作一同使用.BarTender 中的脚本助理包含一个脚本编写区域,在该区域中,既可以通过键入方式编写实际脚本,也可以使用脚本 ...
- 企业微信SCRM系统部署_企业微信SCRM二次开发_企业微信SCRM系统独立版源码价格
企业微信SCRM系统部署_企业微信SCRM二次开发_企业微信SCRM系统独立版源码价格 点趣互动是企业微信系统的第三方应用提供厂商,用于管理员工企业微信的内一款系统软件.点趣互动企业微信scrm软件主 ...
- 1、华为hilens二次开发_人脸识别技能实现
华为hilens二次开发_人脸识别 华为hilens二次开发_人脸识别 1.找到技能文件所在位置 2.hilens管理控制台创建技能 3.配置路径说明: 华为hilens二次开发_人脸识别 通过技能中 ...
- 方维团购系统二次开发,order、order_goods、goods表的数据
方维团购系统二次开发,order.order_goods.goods表的数据 select * from fanwe_order; 数据库查询结果 [ 返回12条查询记录 耗时:0.000805s ] ...
- pixhawk/px4如何获取及使用传感器数据
pixhawk/px4如何获取及使用传感器数据 第一步:读取传感器数据 上一篇博文已经介绍了如何给pixhawk/px4创建一个应用程序,现在我们在上一个应用程序的基础上使用传感器数据. 应用程序为了 ...
- Revit二次开发_将数据导入Excel
有时需要将Revit模型的一些信息提取到Excel中进行处理或者是作为记录进行储存,但也许是因为Revit的数据结构相对复杂,并不支持直接将数据导出Excel,所以平时通过二次开发将信息输出到Exce ...
最新文章
- 14岁清华本科新生免试直博!高校新生大数据陆续曝光,男女比例、年龄差距各异......
- 两种不同的人工智能观:工程观点和科学观点
- POJ2955Brackets[区间DP]
- springboot使用j2cache框架和aspectj自定义缓存
- php json解析教程,php解析json
- 钢铁厂来了“新员工”破解废钢定级行业难题
- zstd安装_PHP: 安装 - Manual
- JavaScript玩转机器学习:平台和环境
- python通过解释器来编译_python 解释器与编译过程,代码的搬运工
- iOS UICollectionView的简单使用和常用代理方法
- python 无法调用turtle_新人求助,关于python 调用turtle《python简单turtle教程》
- MYSQL 数据库 创建库和删除库的语句
- mysql event demo_MySQL定时任务event
- 能源巨头BP称已经测试了“内部”代币
- c# chart 各个属性_C#之Chart控件系列教程
- CentOS实现双网卡网络共享
- Masked Autoencoders Are Scalable Vision Learners (MAE)
- java基于微信小程序的在线作业提交批改系统 uniapp 小程序
- 拍照扫描怎么弄?你可以试一下这两个方法
- 主题模型(LDA)案例:分析人民网留言板数据