在Ubuntu20.04运行VINS-Fusion

https://www.pudn.com/news/62ad35dddfc5ee19687a6418.html

准备工作:

虚拟机
ubuntu:20.04
ROS:Neotic

以下步骤在完成上述安装的基础上进行。

一、 安装ceres solver1.14.0
官网安装教程

目前官网最新的版本是2.1.0,但是我安装这个版本时编译较慢,会出现一些莫名的问题,于是选择安装1.14.0。

1.安装相关依赖

sudo apt install libgoogle-glog-dev libatlas-base-dev libeigen3-dev libsuitesparse-dev liblapack-dev libcxsparse3.1.2 libgflags-dev libgtest-dev
2.下载
ceres-solver-1.14.0
,然后解压

tar zxf ceres-solver-1.14.0.tar.gz
3.进入解压后目录,编译安装

mkdir ceres-bin
cd ceres-bin
cmake …/ceres-solver-1.14.0
make -j2
sudo make install
PS:make速度较慢的问题——考虑是内存不足(我给虚拟机分配的内存只有2G),于是增加swap 分区,即当实际内存不够用的时候,操作系统会从内存中取出一部分暂时不用的数据,放在交换分区中,从而为当前运行的程序腾出足够的内存空间。

创建swap分区
#count的大小就是增加的swap空间块,bs是块大小,所以空间大小是bs*count=8192MB
sudo dd if=/dev/zero of=/swapfile bs=1M count=8192
#把刚才空间格式化成swap格式
sudo mkswap /swapfile
#使用刚才创建的swap空间
sudo swapon /swapfile
#重新make
make
#释放临时加的内存空间
sudo swapoff /swapfile
sudo rm /swapfile
二、下载编译Vins-Fusion
1.创建工作空间vins/src,在src目录下下载Vins-Fusion

git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git
2.在vins目录下编译

catkin_make
解决编译时的错误:

①ROS noetic版本中自带的OpenCV4和VINS-mono中需要使用的OpenCV3冲突的问题。

修改camera_model文件包:

在camera_model包中的头文件Chessboard.h中添加
#include
#include
在CameraCalibration.h中添加
#include
#include
②报错:

error: ‘CV_FONT_HERSHEY_SIMPLEX’ was not declared in this scope

将报错文件上的CV_FONT_HERSHEY_SIMPLEX参数改为cv::FONT_HERSHEY_SIMPLEX

③报错:

error: ‘CV_RGB2GRAY’ was not declared in this scope

在报错头文件里添加

#include
④报错:

error: ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope

将报错文件上的CV_LOAD_IMAGE_GRAYSCALE改为cv::IMREAD_GRAYSCALE

你可能感兴趣的:(ubuntu,linux,运维)