VINS-Fusion github 地址:GitHub - HKUST-Aerial-Robotics/VINS-Fusion: An optimization-based multi-sensor state estimatorAn optimization-based multi-sensor state estimator - GitHub - HKUST-Aerial-Robotics/VINS-Fusion: An optimization-based multi-sensor state estimatorhttps://github.com/HKUST-Aerial-Robotics/VINS-Fusion
需要安装的第三方库有 ROS、Eigen3 、Ceres Solver、Opencv, 由于ROS、Eigen3 、Opencv之前运行其它项目时已经安装过,这里只记录了Ceres Solver的安装。
VINS-Fusion的Readme中给出了Ceres Solver的官方安装教程地址,即
Installation — Ceres Solver
由于git clone没有下载成功,所以最后我选择了下载latest stable release版本。
下载完成后解压,tar zxf ceres-solver-2.0.0.tar.gz
cd ceres-solver-2.0.0 #进入解压后的目录
mkdir ceres-bin #创建编译目录
cd ceres-bin
cmake ../
make
sudo make install
cmake 过程中遇到错误,提示找不到 glog,解决思路是缺什么依赖项就安装什么依赖项。
解决方法:用以下命令安装 glog
sudo apt-get install libgoogle-glog-dev
安装完成后再次执行 cmake ../ 以后续操作。
cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash
EuRoC数据集的下载地址为:kmavvisualinertialdatasets – ASL Datasets
任意下载一个即可,例如第一个link下载得到的数据包名字为MH_01_easy.bag
#打开第一个终端,运行下面的命令
roscore
#打开第二个终端,分别运行下面的命令
source ~/catkin_ws/devel/setup.bash
roslaunch vins vins_rviz.launch
#打开第三个终端,分别运行下面的命令
source ~/catkin_ws/devel/setup.bash
rosrun vins vins_node src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml
#打开第四个终端,分别运行下面的命令
source ~/catkin_ws/devel/setup.bash
rosbag play YOUR_DATASET_FOLDER/MH_01_easy.bag
则会在RVIZ窗口中看到如下图所示轨迹。
此运行样例中没有执行闭环检测命令,如需要,则可参考其它教程执行
rosrun loop_fusion loop_fusion_node src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml
执行 rosrun vins vins_node src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml 时遇到了Segmentation fault的错误。如下图所示:
检查编译时的打印发现有告警 warning: libopencv_core.so.4.3, needed by /home/ubuntu/catkin_ws/devel/lib/libvins_lib.so, may conflict with libopencv_core.so.3.2, 如下图所示:
从打印信息来看是不同opencv的库冲突了。继续查看打印,在运行命令 catkin_make时会有对依赖库的检查,如下图所示,可以看到编译时用的opencv4.3. 说明用opencv4编译虽然可以编译成功,但编译中有告警,运行时会报Segmentation fault的错误。
解决方法:
在CMakeLists.txt文件中指定Opencv的版本
注意:
1)如果打印信息中没有opencv版本,则以CMakeLists.txt文件中添加message(WARNING "OpenCV_VERSION: ${OpenCV_VERSION}")
2)一共要修改的地方有三处,分别在下面三个文件夹中
Ubuntu18.04运行Vins-Fusion_wzj5530的专栏-CSDN博客
【VINS-Fusion入门之一】让系统跑起来_北络-CSDN博客_vinsfusion
VINS_Fusion 编译运行碰到的问题_HERO_CJN的博客-CSDN博客