我的视觉SLAM学习的小小入门---Ubuntu18配置VINS-MONO

前言

作为一名才接触视觉SLAM的菜鸟,除了捧着高翔老师的书看着那晦涩难懂的代码与理论,就是跟着高翔老师的课程囫囵吞枣地学着。但是似乎总不见成效,时常想象着何时可以像大佬们一样建图。

Vins-mono可算的上好好地满足了一把我的虚荣心吧。这篇文章也是简单地分享一下我在配置Vins-mono上的一点小小的经验吧。

ROS系统的配置

GitHUb
上,官方给出了推荐的配置

Ubuntu and ROS Ubuntu 16.04. ROS Kinetic.

但是作为一个感受野只局限于顶部标题的憨憨,我果断选择下载了代码,并开开心心地下载 ROS Kinetic,结果显然失败了,我的系统版本为18.04.1(在终端中输入uname -a 查看),无法下载ROS Kinetic.好吧,那就下载适配的版本吧。
1.建议首先换源,步骤如下:

1.备份相关配置  cp /etc/apt/source.list /etc/apt/source.list.bak
 2.vim  /etc/apt/source.list

在弹出的窗口中输入国内镜像的相关配置。

清华源相关配置如下:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

阿里源配置如下:

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

接下来更新一下

sudo apt-get update
sudo apt-get upgrade

现在就可以安装ROS了,首先根据自己的系统选择相应的ROS系统(这里可以查看ROS版本,)

换源并添加密钥,密钥可以在ROS官网免费获取

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

再次更新

sudo apt-get update

下载对应版本的ROS,这里下载的是melodic

sudo apt-get install ros-melodic-desktop-full

安装完成后,初始化

sudo rosdep init

但可能会遇到rosdep command not found的错误

此时,首先使用

sude apt-get rospack-tools

再使用初始化

报错Website may be down

这是因为http://raw.githubusercontent.com被墙了,因此采用以下方法

#打开hosts文件
sudo gedit /etc/hosts
#在文件末尾添加
151.101.84.133 raw.githubusercontent.com
#保存后退出再尝试
sudo rosdep init

再使用

rosdep update

配置ROS环境

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

安装依赖项

sudo apt-get install ros-melodic-cv-bridge ros-melodic-tf ros-melodic-message-filters ros-melodic-image-transport

注意,此时依赖项对应了Vins-mono中的,因此在后续Vins-mono的配置中不必再重复使用

sudo apt-get install ros-YOUR_DISTRO-cv-bridge ros-YOUR_DISTRO-tf ros-YOUR_DISTRO-message-filters ros-YOUR_DISTRO-image-transport

完成上述步骤后,输入roscore,查看ros的布置是否成功
ROS配置真是个大坑,但好在有各位大佬的理论指导,在历时多次失败后,我终于成功了,放张图表示一下我激动的心情。
在这里插入图片描述
依赖库的配置
在配置好ROS系统后,我们终于可以进行到Vins-mono配置的第二步了,

1.安装Eigen,按照高翔老师书中的方法

输入

sudo apt-get install libeigen3-dev

完成安装

2.安装opencv,

从github上下载oepncv
opencv-contrib
Vins-mono推荐配置为3.3.1版本,我选的是3.4版本。

下载下来opencv的zip文件包后,解压

unzip opencv-3.4.0.zip

进入到解压后的文件包中,由于我已经安装好cmake了,在此不多叙述

sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev

创建文件夹

mkdir build 
cd build

cmake

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

完成后输入

sudo make

等待完成后再输入

sudo make install

完成编译,后续以及Opencv的编译环境具体可参考博客
3.安装Ceres

安装依赖

sudo apt-get install liblapack-dev 
sudo apt-get install libsuitesparse-dev 
sudo apt-get install libcxsparse3.1.2 
sudo apt-get install libgflags-dev 
sudo apt-get install libgoogle-glog-dev libgtest-dev

下载Ceres
进入Ceres的文件夹下

编译Ceres

mkdir build
cd build
cmake ..
sudo make install

关于这些依赖的配置十分费时,还是应该耐心等待的。
在这里插入图片描述
Vins_mono的编译
终于到了最后的步骤了,激动激动。
首先下载EuRoC数据集
,按照官方的实例,我选择下载Machine Hall 01的bag包,这也是官方教程里的,下载时可能要费些时间。

下载完成后,创建ROS工作空间

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

编译VINS

首先将前面下载的Vins-mono的代码移动到src文件夹下
再输入以下命令

cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash

运行VINS

首先在一个终端中启动ROS核心

roscore

打开三个终端,分别输入

 roslaunch vins_estimator euroc.launch 
    roslaunch vins_estimator vins_rviz.launch
    rosbag play YOUR_PATH_TO_DATASET/MH_01_easy.bag 

如果报错,可能是因为需要每次运行前都要用source指定包,为了方便我们的使用,可以采用以下方式再运行上述代码

打开一终端,输入

sudo  gedit ~/.bashrc

在弹出窗口中输入

source ~/catkin_ws/devel/setup.bas

保存并退出

再运行以上代码,运行成功!!!!
在这里插入图片描述
终于可以好好地装模做样地炫耀一番了,激动啊!!!!
在这里插入图片描述
但是,朋友突然泼了一盆冷水:“你这不行啊,只运行起来他们的数据集连入门都算不上啊!”

我先抑郁一两秒,不管怎么说,这距离我的目标还差的很远呢,下一步简单实现一下用自己的摄像头吧,Fighting!!!

本次参考的资料有:
Ubuntu16.04系统运行vins mono

ubuntu18.04换清华源

ubuntu18安装ROS关于解决E: Unable to locate package ors-kinetic-desktop-full问题

错误ERROR: cannot download default sources list from

NX入门教程软件篇-安装VINS-Mono

ubuntu16.04安装opencv3.4

Ubuntu16.04上配置安装ceres

ROS path问题解决方案

哦,原来我“借鉴”了这么多大佬的经验啊,老缝合怪了…

  • 9
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值