ethz的多传感器融合算法msf编译与安装

  • 1、建立工作空间
  • 2、下载安装所有依赖
    • 2.1 下载依赖库
    • 2.2 安装Google的glog
    • 2.3 安装GeographicLib
    • 2.4 编译
  • 3、报错

阅读论文 A Robust and Modular Multi-Sensor Fusion Approach Applied to MAV Navigation后想复现该篇论文,因此在Ubuntu16.04/ROS Kinect系统下编译苏黎世大学ethz的多传感器融合算法msf,该项目地址为https://github.com/ethz-asl/ethzasl_msf。按照[这篇博客]编译,发现很多报错,因此把具体过程记录,详细的介绍msf的编译过程。
python使用ros自带2.7版本,opencv同样也是ros自带版本。**注意:**不要安装anaconda,因为anaconda下的opencv和Python环境与ros本地的版本会产生大量冲突,有很多bug。另外不要在这个工作空间下安装Pangolin库。

正式开始编译:

1、建立工作空间

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ..
catkin_make
source devel/setup.bash

执行echo $ROS_PACKAGE_PATH可以查看当前环境变量是否正确。正常应该输出

/home/你的用户名/你的工作空间名/src:/opt/ros/kinetic/share

2、下载安装所有依赖

cd src/

2.1 下载依赖库

git clone https://github.com/ethz-asl/glog_catkin.git
git clone https://github.com/catkin/catkin_simple.git
git clone https://github.com/ethz-asl/asctec_mav_framework.git
git clone  https://github.com/ethz-asl/mav_comm.git

2.2 安装Google的glog

glog是一个c++库。

git clone https://github.com/google/glog.git
cd glog
./autogen.sh && ./configure && make
sudo make install

如果报错./autogen.sh: 5: ./autogen.sh: autoreconf: not found,执行

sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool

2.3 安装GeographicLib

第一种方案
下载在geographiclib的zip文件,这里选择1.50版本,下载完成后解压到工作空间的src目录

cd src/GeographicLib-1.50.1/
mkdir build
cd build
../configure
make -j4
sudo make install

若第一种不可行,则使用第二种方案

sudo pip install geographiclib

2.4 编译

回到工作空间(catkin_ws)

source devel/setup.bash
catkin_make

完成编译

3、报错

一、
CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by
“sensor_fusion_comm” with any of the following names:

sensor_fusion_commConfig.cmake
sensor_fusion_comm-config.cmake

解决方案:

cd src/
git clone https://github.com/ethz-asl/ethzasl_sensor_fusion.git

二、
CMake Error at /home/hgh/catkin_ws/devel/share/glog_catkin/cmake/glog_catkinConfig.cmake:173 (message):
Project ‘msf_core’ tried to find library ‘glog’. The library is neither a
target nor built/installed properly. Did you compile project
‘glog_catkin’? Did you find_package() it before the subdirectory containing
its code is included?
Call Stack (most recent call first):
/opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:76 (find_package)
ethzasl_msf-master/msf_core/CMakeLists.txt:17 (find_package)
未安装glog导致,执行步骤2的glog安装
三、
catkin_ws/src/asctec_mav_framework/asctec_hl_interface/src/hl_interface.h:51:45: fatal error: mav_msgs/RollPitchYawrateThrust.h: No such file or directory
compilation terminated.
asctec_mav_framework/asctec_hl_interface/CMakeFiles/hl_node.dir/build.make:86: recipe for target ‘asctec_mav_framework/asctec_hl_interface/CMakeFiles/hl_node.dir/src/hl_interface.cpp.o’ failed
make[2]: *** [asctec_mav_framework/asctec_hl_interface/CMakeFiles/hl_node.dir/src/hl_interface.cpp.o] Error 1
CMakeFiles/Makefile2:4304: recipe for target ‘asctec_mav_framework/asctec_hl_interface/CMakeFiles/hl_node.dir/all’ failed
make[1]: *** [asctec_mav_framework/asctec_hl_interface/CMakeFiles/hl_node.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs…
缺少 mav_comm库,执行步骤2的git clone https://github.com/ethz-asl/mav_comm.git
四、
/home/hgh/catkin_ws/src/MSF_developed-master/src/read_dataset/main.cpp:19:38: fatal error: GeographicLib/Geodesic.hpp: No such file or directory
compilation terminated.
MSF_developed-master/CMakeFiles/read_node.dir/build.make:62: recipe for target ‘MSF_developed-master/CMakeFiles/read_node.dir/src/read_dataset/main.cpp.o’ failed
make[2]: *** [MSF_developed-master/CMakeFiles/read_node.dir/src/read_dataset/main.cpp.o] Error 1
CMakeFiles/Makefile2:9608: recipe for target ‘MSF_developed-master/CMakeFiles/read_node.dir/all’ failed
make[1]: *** [MSF_developed-master/CMakeFiles/read_node.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs…
未安装GeographicLib,执行步骤2的GeographicLib安装

ethz的多传感器融合算法msf编译与安装相关推荐

  1. 自动驾驶中的9种传感器融合算法

    来源丨AI 修炼之路 在自动驾驶汽车中,传感器融合是融合来自多个传感器数据的过程.该步骤在机器人技术中是强制性的,因为它提供了更高的可靠性.冗余性以及最终的安全性. 为了更好地理解,让我们考虑一个简单 ...

  2. SLAM 03.多传感器融合算法

    传感器标定是自动驾驶的基本需求,一个车上装了多个/多种传感器,而它们之间的时间和空间关系需要统一,传感器数据的标定主要为了定位的准确性. 1.传感器分类 机器人有多种传感器,每种数据类型不一样,数据精 ...

  3. 组合导航+多传感器融合算法

    1.INS/GPS的组合导航系统可以输出高频率的导航参数信息(位置.速度.姿态),并且在长.短期的导航过程中均能具备较高精度.(输出数据的意义什么,PDR是步长+航向) 2.误差反馈系统 (1)在开环 ...

  4. 9种自动驾驶传感器融合算法你都知道吗?

    作者 | Alan  编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/430323552 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨 ...

  5. 聊一聊SLAM核心算法之ESKF多传感器融合算法

    作者 | 应知  编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/628074965? 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷 ...

  6. 多传感器融合算法,雷视融合算法

    0: 设备选型 Camera选型: 如何选择视场角和焦距: Radar选型 lidar选型 1: Radar毫米波雷达和Camera视觉融合 算法要求: 图像目标检测 Radar目标检测 radar和 ...

  7. 多传感器融合算法,单目测距、基于双目,长焦短焦,图像拼接,环视等

    标定:已知世界坐标系平面内的三维坐标和像素坐标,求解内参和外参: 本质矩阵和基本矩阵:已知内参和两幅图像中对应点的坐标,通过对极约束(八点法,尺度等价性,齐次坐标)求解相机的运动R和t(用到RANSA ...

  8. 【黑马Android】(11)音乐播放器/视频播放器/照相机/常见对话框/notification通知/样式和主题/帧动画/传感器/应用程序反编译与安装

    音乐播放器api <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns: ...

  9. 解读基于多传感器融合的卡尔曼滤波算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|3D视觉工坊 卡尔曼滤波器是传感器融合工程师用于自动驾驶 ...

最新文章

  1. Node.js项目实践:构建可扩展的Web应用
  2. 您如何确定以编程方式发送的电子邮件不会自动标记为垃圾邮件?
  3. 阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第1节 继承_2_继承的格式
  4. tp5.1的安装与运行流程
  5. React之总结Ref
  6. 计算机电子琴音乐,电脑电子琴软件
  7. 利用组策略进行软件分发
  8. spring配置redis(xml+java方式)(最底层)
  9. 如何设置操作系统处于最佳性能?此方法可以取消系统自带的界面渲染及其它多余的辅助功能.
  10. Layui在表格中无法显示进度条(layui-progress)的值
  11. ERROR 1010 (HY000): Error dropping database (can't rmdir './bolgdb/', errno: 17)
  12. VC++中视频采集系统(摄像头的制作,串口通信的应用)
  13. iOS 获取通讯录权限和权限提示弹框
  14. SCI收录的文献类型与认证的文献类型
  15. 心知天气数据API 产品的高并发实践
  16. 苹果官方mfi认证名单_【大型推销配件现场】苹果回应iPhone12消磁,这波操作太6了 - 社会...
  17. [abc] Placing Rectangles
  18. 下载Nvidia显卡以前的驱动
  19. js实现纯前端截屏(可以对iframe的内容进行截取)
  20. BAPI上传物料主数据

热门文章

  1. python壁纸高清图片_详解Python静态网页爬取获取高清壁纸
  2. 什么是基本的逻辑运算?
  3. ins的更新带来的一系列问题
  4. 用一个小故事模拟Spring-Aop(三)--Advice适配器
  5. 【Spring】AOP(二)自定义来实现AOP
  6. 宣传python的顺口溜-Python3内置函数——reversed() = 翻转我的世界
  7. bootstrap使用及解析
  8. mysql的interval()引出的
  9. 四种连接类型:inner(内连接),left[outer](左外连接),right[outer](右外连接),full[outer](完全外连接)
  10. 学习LSSVM以及区别LSSVM和SVM看的几篇博文