在Ubuntu20.04运行VINS-Fusion

Ubuntu 20.04 安装 Ceres-Solver 1.14.0 及 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 <opencv2/imgproc/types_c.h>
#include <opencv2/calib3d/calib3d_c.h>
在CameraCalibration.h中添加
#include <opencv2/imgproc/types_c.h>
#include <opencv2/imgproc/imgproc_c.h>
②报错:

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 <opencv2/imgproc/types_c.h>
④报错:

error: ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope

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

Ubuntu 20.04系统上运行基于ROS2的VINS - Fusion,可参考以下步骤: ### 准备工作 首先要安装ROS。由于Ubuntu 20.04适配的ROS版本是ROS Noetic,而要运行基于ROS2的VINS - Fusion,需要安装适合的ROS2版本,如ROS2 Humble。 ### 环境适配 安装VINS - Fusion需要适配高版本的环境,安装ROS noetic、Eigen3.4.0、Ceres2.1.0和OpenCV4.2.0 ,并且要对Ceres2.1.0和OpenCV4进行适配 [^2]。 ### 下载VINS - Fusion 从GitHub上下载VINS - Fusion的代码,链接为:https://github.com/HKUST-Aerial-Robotics/VINS-Fusion [^3]。 ### 运行 运行时可使用以下命令: ```bash roslaunch vins vins_rviz.launch rosrun vins vins_node /catkin_ws_Fusion/src/VINS-Fusion/config/euroc/euroc_stereo_imu_config.yaml rosbag play MH_01_easy.bag ``` 这里的 `roslaunch` 用于启动rviz可视化界面,`rosrun` 用于运行VINS节点并指定配置文件,`rosbag play` 用于播放数据集 [^3]。 ### 相机配置 若使用的相机与官网教程不同,例如官网教程使用OAK - D - S2相机,而使用的是OAK - D - PRO相机,需要对配置文件进行针对性的修改,在 `left.yaml` 和 `right.yaml` 文件中修改相机畸变参数,才可以正常运行VINS - Fusion程序 [^5]。 ### 代码修改 如果使用的是VINS - Fusion - gpu,若想使其特征追踪的图像显示在rviz中,需要修改VINS - Fusion - gpu的源码 [^4]。 ### 版本替换 对于opencv版本,可参考链接:https://github.com/AlexandrParkhomenko/aur/blob/master/caffe/readmeFix!!!.patch ,将 `CV_LOAD_IMAGE_GRAYSCALE` 替换为 `cv::IMREAD_GRAYSCALE` [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值