ubantu+vscode配置vins-mono(无可视化)+常见问题解决方法

一、安装

首先感谢站内大佬的博文,在debug方面有帮助,以及感谢在百度网盘提供数据集,官网是真的难下Ubuntu20.04——一篇文章让你从零配置VINS_Mono环境以及运行(2023年最新)_ubuntu20.04 vins mono-CSDN博客

我这里使用的是ubantu18.04和20.04两个版本,流程是一样的,但是ros版本不同,18.04适配melodic,而20.04版本适配noetic。

首先是新建一个工作空间catwin_ws并打开:

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/

然后进入src目录下,git vins-mono(我这里选择直接在git官网下,把下好的文件拖到src目录下,直接git开了vpn也下不来)

cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git

安装依赖:OpenCV、ceres和engin(18.04我装的OpenCV是3.4.14,而20.04装的OpenCV是4,注意甄别)

可以先检查一下当前OpenCV版本:

pkg-config --modversion opencv #适合4以下版本
pkg-config --modversion opencv4 #适合4版本

没有的话就补一下,有的话看看版本适不适配,不适配就升级/降级。

安装eigen:

sudo apt-get install libeigen3-dev

安装ceres(好像18.04和20.04有的不太一样,记不太清了,如果遇到问题看报错提示再解决):

sudo apt-get install libgoogle-glog-dev libgflags-dev
sudo apt-get install libatlas-base-dev libsuitesparse-dev
sudo apt-get install libcxsparse3
sudo apt-get install libceres-dev

ros安装官网:https://wiki.ros.org/Installation/Ubuntu

因为ros官网有详细的安装方法,这边也贴一下,以melodic为例,如果你版本是20.04的话自行修改为noetic即可:

sudo sh -c 'echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' # 这边建议使用镜像源,否则下载会很慢
sudo apt install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -sudo apt update
sudo apt install ros-melodic-desktop-full

# 安装完无误后添加路径、环境
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
source /opt/ros/melodic/setup.bash

安装期间如果发现有报错缺少什么库,直接按提示安装缺少的即可;如果是有链式反应的库(比如缺a库,装a库时候发现又缺了b,以此类推),这种建议使用aptitude查找:

# 安装aptitude
sudo apt install aptitude -y
# 使用aptitude安装melodic,本人是在安装ros-melodic-desktop-full时候报错缺少链路库,所以这里这样安装
sudo aptitude install ros-melodic-desktop-full
# 如果依赖层级太多(比如 perception-pcl 依赖 A,A 依赖 B,B 依赖 C...),手动安装效率低
sudo aptitude install ros-melodic-perception-pcl # 本人安装时候缺这个,就以此举例

看到报错信息如下:

The following packages have unmet dependencies:
 libpq-dev : Depends: libpq5 (= 10.23-0ubuntu0.18.04.2) but 14.0-1.pgdg18.04+1 is installed
The following actions will resolve these dependencies:
Keep the following packages at their current version:
1)     libgdal-dev [Not Installed]                        
2)     libpcl-dev [Not Installed]                         
3)     libpq-dev [Not Installed]                          
4)     libvtk6-dev [Not Installed]                        
5)     libvtk6-qt-dev [Not Installed]                     
6)     ros-melodic-pcl-conversions [Not Installed]        
7)     ros-melodic-pcl-ros [Not Installed]                
8)     ros-melodic-perception-pcl [Not Installed]

Accept this solution? [Y/n/q/?] 

libpq-dev依赖的libpq5版本与当前系统已安装的版本不匹配,导致依赖冲突,需要降级libpq5到官方指定版本,aptitude最后交互界面输入n拒绝当前方案(当前方案是 “不安装所有依赖”),aptitude自动提供下一个解决方案:降级到libpq5并安装libpq-dev及其他依赖,此时再选择y。

安装完后再执行下面命令,发现不再出现缺库报错,正常安装ros-melodic-desktop-full。

sudo aptitude install ros-melodic-desktop-full

以上都确定无误后,在src目录下执行:

catkin_make

等待一段时间,没有报错且看到有vins_estimator说明安装完成。

如果看到报错类似于

c++: fatal error: 已杀死 signal terminated program cc1plus

这个时候先检查一下显存够不够,如果是8g显存跑不动j8,在make时候选择j2或者j1(最保险)

catkin_make -j2 # 8g显存
catkin_make -j4 # 16g显存
catkin_make -j1 # 最保险但是也最慢

二、运行

先打开终端一,激活roscore:

roscore

新建终端,在终端二里面输入:

source devel/setup.bash
roslaunch vins_estimator euroc.launch 

这个里面会有一个waiting for,这很正常,因为还没有执行包,程序没有任何可以处理的图像。

新开一个终端,此目录为src下,输入:

source devel/setup.bash
rosbag play MH_01_easy.bag  #实际应该是rosbag play YOUR_PATH_TO_DATASET.bag,但我这包放在catkin_ws目录下

我们可以看到开始解析包了,duration是持续更新的,此时我们返回第二个终端,可以发现imu初始化完成,position也在动态更新:

至此,我们可以认为环境配置完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值