vins-fusion(1)安装编译
https://github.com/HKUST-Aerial-Robotics/VINS-Fusion
https://blog.csdn.net/haner27/article/details/104004745
0环境
opencv3.4.9
ubuntu20
1.ROS安装
我自己的是ubuntu20
安装ros后,安装需要补充的ROS 功能包:
sudo apt-get install ros-melodic-cv-bridge ros-melodic-tf ros-melodic-message-filters ros-melodic-image-transport
1.2 修改ros cv bridge
https://blog.csdn.net/zhaodeming000/article/details/119859665
ros自带的 bridge 是opencv4的,自己的是opencv3.4.9,需要单独重新编译下
究其原因,是因为在安装ROS时,cv_bridge默认连接了4.0+版本的opencv进行编译。只修改cvbridgeConfig.cmake中opencv的路径,编译可能没问题,但在代码执行时如果引用到libcv_bridge.so,还是会链接到opencv原来的版本。
1.卸载原来版本的cv_bridge
sudo apt-get remove ros-noetic-cv-bridge
2.下载新版本cv_bridge
浏览器打开
https://github.com/ros-perception/vision_opencv
选择noetic对应的cv_bridge,
或者直接,
git clone https://github.com/ros-perception/vision_opencv/tree/melodic
3.修改cv_bridge中的cmakelists.txt

find_package(OpenCV 3.4.10 REQUIRED) //改成你安装的opencv的版本

4.cmake单独编译cv_bridge
在cv_bridge文件夹下,
mkdir build cd build cmake .. sudo make sudo make install
5.在开源代码需要的cmaklist.txt中添加cv_bridge的cmake路径
set(cv_bridge_DIR /usr/local/share/cv_bridge/cmake) //在find_package前面
比如,在vinsfusion开源SLAM代码中,只需要在loop_fusion和vins_estimator两个子模块的cmakelist.txt开头添加set,即可完美编译通过。


2.ceres solver安装
2.安装ceres1.14.0
接着从以下链接安装ceres1.14.0:
https://codeload.github.com/ceres-solver/ceres-solver/tar.gz/refs/tags/1.14.0
http://ceres-solver.org/installation.html
(之前openvslam 安装了cere版本直接编译报错,大概率不适配,这里安装最新的,以后如果要开启openvslam 记得还原对应ceres版本重装 sudo make uninstall)

官方给的源是国外源,下载不了,这里是国内的下载链接
https://github.com/ceres-solver/ceres-solver.git
# CMake
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
# Use ATLAS for BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# SuiteSparse (optional)
sudo apt-get install libsuitesparse-dev
#14.04
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libeigen3-dev libgtest-dev
#18.04 20.04
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libeigen3-dev libgtest-dev git clone https://github.com/ceres-solver/ceres-solver.git
cd ceres-solver/
mkdir build
cd build
cmake ..
make
sudo make install

如果报错cuda错误,大概率是找不到cuda的位置,手动添加cmakelist.txt


set(CMAKE_CUDA_COMPILER /usr/local/cuda/bin/nvcc)
记得安装依赖项,记得最后的make install
3.VINS_Fusion安装
创建ros空间

安装VINS_Fusion
cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash

注:直接git获取VINS_Fusion,由于网络原因获取不成功,换了个电脑在github网站下载后,放到/catkin_ws/src文件夹中即可。
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
opencv报错解决
1 添加头文件
cv::CV_GRAY2RGB 报错替换为
COLOR_GRAY2RGB
对应文件添加
#include<opencv2/imgproc/types_c.h>
2 一些老的参数换成新的参数
CV_FONT_HERSHEY_SIMPLEX报错替换
cv::FONT_HERSHEY_SIMPLEX CV_LOAD_IMAGE_GRAYSCALE报错替换
cv::LOAD_IMAGE_GRAYSCALE CV_LOAD_IMAGE_GRAYSCALE报错替换
cv::ImreadModes::IMREAD_GRAYSCALE
3跑通实例
相机参数

设置输出参数

数据位置


#!/bin/sh #延迟5秒执行
sleep 1
echo "运行开始"
#可视化
cd /home/dongdong/v2_Project/v3_SLAM/v5_VinsFusion/catkin
source devel/setup.bash
roslaunch vins vins_rviz.launch # 实时双目视觉vo
cd /home/dongdong/v2_Project/v3_SLAM/v5_VinsFusion/catkin
source devel/setup.bash
rosrun vins kitti_gps_test /home/dongdong/v2_Project/v3_SLAM/v5_VinsFusion/catkin/src/VINS-Fusion/config/kitti_raw/kitti_10_03_config.yaml /media/dongdong/Elements/数据集/公共数据集/vinskkt数据/2011_10_03_drive_0027_sync # gps全局优化
cd /home/dongdong/v2_Project/v3_SLAM/v5_VinsFusion/catkin
source devel/setup.bash
rosrun global_fusion global_fusion_node
自动脚本

给与脚本权限
sudo chmod -R 777 run.sh
脚本内容
#!/bin/sh #延迟5秒执行
sleep 1
echo "运行开始" gnome-terminal -t "1-vins_rviz" -x bash -c "\
cd /home/dongdong/v2_Project/v3_SLAM/v5_VinsFusion/catkin ;\
source devel/setup.bash ;\
roslaunch vins vins_rviz.launch ;\
exit;exec bash;" sleep 3 echo "2 kitti_gps_test" gnome-terminal -t "2-kitti_gps_test" -x bash -c "\
cd /home/dongdong/v2_Project/v3_SLAM/v5_VinsFusion/catkin ;\
source devel/setup.bash ;\
rosrun vins kitti_gps_test /home/dongdong/v2_Project/v3_SLAM/v5_VinsFusion/catkin/src/VINS-Fusion/config/kitti_raw/kitti_10_03_config.yaml /media/dongdong/Elements/数据集/公共数据集/vinskkt数据/2011_10_03_drive_0027_sync ;\
exit;exec bash;"
sleep 1 echo "3 global_fusion" gnome-terminal -t "3-global_fusion" -x bash -c "\
cd /home/dongdong/v2_Project/v3_SLAM/v5_VinsFusion/catkin ;\
source devel/setup.bash ;\
rosrun global_fusion global_fusion_node ;\
exit;exec bash;"
sleep 1

4.KITTI数据集下载
http://www.cvlibs.net/datasets/kitti/raw_data.php
国外源打不开,感谢这个博主提供的国内源下载:https://blog.csdn.net/weixin_43599336/article/details/86533572
(刚开始可以下载,后来中断了,网页打不开,等一会再下就可以)
泡泡链接(百度网盘):https://www.sohu.com/a/219232053_715754
这两个链接都没能成功下载,最后找到了下面的链接:
https://www.dalipan.com/detail/40c8f99ba2120a493a148f8332094668
终于成功下载了。。
5.跑通KITTI数据集
1.KITTI Odometry (Stereo):使用sequences 00数据集
roslaunch vins vins_rviz.launch
(optional) rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/kitti_odom/kitti_config00-02.yaml
rosrun vins kitti_odom_test ~/catkin_ws/src/VINS-Fusion/config/kitti_odom/kitti_config00-02.yaml YOUR_DATASET_FOLDER/sequences/00/

2.KITTI GPS Fusion (Stereo + GPS):使用 2011_10_03_drive_0027_synced 数据集

Green path is VIO odometry; blue path is odometry under GPS global fusion
绿色路径是VIO里程计结果,蓝色路径是GPS+odometry全局融合后的结果。
注:开多个终端,跑上面的语句,如果rosrun的时候找不到包,重新运行一下:
source ~/catkin_ws/devel/setup.bash
查看话题
rostopic list

问题:这里GPS数据与Stereo方向不一致?
答:感谢博友“贵在坚持,不忘初心”的解答,这里的GPS数据与Stereo都是原始数据,没有进行对齐以及坐标转换,所以垂直是正常的,而vins-fusion所做的就是将两者对齐,得到融合的结果。
补充说明:
若运行roscore提示已经有一个在运行,但实际上并没有打开,那么可以在终端执行下面的命令:
killall -9 roscore
killall -9 rosmaster
vins-fusion(1)安装编译的更多相关文章
- 比特币Bitcoin源代码安装编译
body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; } 比特币 (货币符号: ฿;英文名:Bitcoin;英文 ...
- linux centos安装编译phantomjs 2.0的方法
phantomjs 2.0最新版的官方不提供编译好的文件下载,只能自己编译,有教程但是过于简单,特别是服务器上要安装N多的支持.折腾到现在终于装好了并且能正常运行了,截图mark一下: linux c ...
- linux_安装_安装编译phantomjs 2.0的方法_转
项目中要对数据公式webkit渲染,phantmjs 2.0的效果好比1.9好不少. 安装过程中 坑比较多. 转载文章: phantomjs 2.0最新版的官方不提供编译好的文件下载,只能自己编译,有 ...
- wxWidgets的安装编译、相关配置、问题分析处理
wxWidgets的安装编译.相关配置.问题分析处理 一.介绍部分 (win7 下的 GUI 效果图见 本篇文章的最后部分截图2张) wxWidgets是一个开源的跨平台的C++构架库(framewo ...
- FFmpeg在Linux下安装编译过程
转载请把头部出处链接和尾部二维码一起转载,本文出自:http://blog.csdn.net/hejjunlin/article/details/52402759 今天介绍下FFmpeg在Linux下 ...
- openblas下载安装编译
编译好的库: https://github.com/JuliaLinearAlgebra/OpenBLASBuilder/releases 源码编译 下载:https://github.com/xia ...
- Linux上安装编译工具链
在Linux上安装编译工具链,安装它会依赖dpkg-dev,g++,libc6-dev,make等,所以安装之后这些依赖的工具也都会被安装.ubuntu软件库中这么描述 Informational l ...
- (0.2.6)Mysql安装——编译安装
(0.2.6)Mysql安装——编译安装 待完善
- Linux中源码安装编译Vim
Linux中源码安装编译Vim Linux下学习工作少不了编辑器,Vim能使你的工作效率成倍的提高.在Ubuntu上安装vim使用命令直接安装很简单.但有时还是需要自己手动编译安装.例如: vim中的 ...
- openwrt安装编译
官网安装编译推荐: https://wiki.openwrt.org/doc/howto/buildroot.exigence https://wiki.openwrt.org/doc/howto/b ...
随机推荐
- sdio 移植st官方例程 stm32f103
第一步:建立驱动文件 建立sdio_sdcard.h和sdio_sdcard.c,并将这两个文件添加到MDK工程中,如下图 第二步:移植官方例程 1.找到STM32F10x_StdPeriph_Lib ...
- HTML中javascript的<script>标签使用方法详解
只要一提到把JavaScript放到网页中,就不得不涉及Web的核心语言--HTML.在当初开发JavaScript的时候,Netscape要解决的一个重要问题就是如何做到让JavaScript既能与 ...
- vue2源码学习2vuex&vue-router
1.vue插件编写 插件可以实现对象vue的拓展,比如新增全局属性/方法,添加实例方法,使用mixin混入其他配置项等等.编写插件必须要实现 install 方法,当调用Vue.use()使用插件时, ...
- VsCode——修改左侧目录缩进
https://code84.com/741691.html https://blog.csdn.net/qq812457115/article/details/124445657
- sql 行转列分析 以后再也不用记了
表scores 请转成的横表是这样子的: // ::::我们来分析下:首先 姓名这一列肯定是不重复的姓名[重复也没办法了 这需求只能这样了] 因此 我们用group by [姓名] 然后姓名这一列就有 ...
- 第12周 预习、实验与作业:Java并发编程
以前你编写的Java程序同时能做几件事情?有几个执行流程?main方法执行完,整个程序一定会退出吗? 最多只能做一件事 函数按着顺序执行,函数内按着语句执行.可以有多个可以有一个. 不一定.因为Mai ...
- APP与Web测试区别
相同点: WEB 测试和 App 测试从流程上来说,没有区别.都需要经历测试计划方 案,用例设计,测试执行,缺陷管理,测试报告等相关活动.从技术上来说, WEB 测试和 APP 测试其测试类型也基本相 ...
- RTC@@@Real-Time Clock(实时时钟的简称)及电路问题分析
RTC@@@Real-Time Clock(实时时钟的简称) 实时时钟(Real-Time Clock)是PC主板上的晶振及相关电路组成的时钟电路的生成脉冲,提供稳定的时钟信号给后续电路用.主要功能有 ...
- 微信小程序监听view到顶部的高度
view style='width:100%;height:80rpx;' id='navigation'></view> wx.createSelectorQuery().sele ...
- git log 的常用用法
1.最基本的 git log 2.简化版本 git log --oneline 3. 作者筛选 4.时间筛选 git log --since="2022.05.26" --unti ...

