VINS-MONO环境配置、测试:

配置环境:
基于Ubuntu16.04、下载安装对应版本的ROS Kinetic、opencv-3.3.1、eigen-3.3.3、ceres-solver-1.14.0、cmake3.10以上的版本
虚拟机vmware workstation
笔记本 hp win10 64位 32G内存

前言

虚拟机的优点在于安装卸载简单,可以保存快照,遇到问题可以回溯,适合刚开始的学习,目前有教程说虚拟机会出现玄学的问题,但也能安装成功。
虚拟机的玄学问题主要是硬件链接方面,本次测试不需要链接外部硬件设备,不会出现此类问题。
此外,虚拟机比较吃电脑的内存和cpu配置,配置不好的电脑体验可能会比较差。

个人记录学习过程中遇到的问题已经解决办法:
2022.8.29

一、VINS-MONO是什么?

VINS-Mono和VINS-Mobile是香港科技大学沈劭劼团队开源的单目视觉惯导SLAM方案。
是基于优化和滑动窗口的VIO,使用IMU预积分构建紧耦合框架。并且具备自动初始化,在线外参标定,重定位,闭环检测,以及全局位姿图优化功能。

二、vmware虚拟机安装Ubuntu16.04

1.下载Ubuntu16.04的iso镜像

Ubuntu官方下载地址:Ubuntu下载链接

2.安装Ubuntu




tips:分配磁盘稍微大些,并将虚拟磁盘存储单个文件

进行内存、核心的分配

这样虚拟机一启动基本就会占用8G左右的内存了,内存大一点运行起来会更流畅一些

配置好硬件后启动虚拟机,进入Ubuntu安装界面

选择中文,点击右侧安装


由于这是虚拟机,不存在将整个磁盘都清理的情况,所以可以点击第一个选项;但是如果双系统,需选择第四个选项,进行分区,否则会丢失文件。

之后的语言选择和注册账户正常进行。

进入界面,安装完成

3.安装vmware tools

vmware tools可实现主机与虚拟机之间文字和文件的复制粘贴
找到虚拟机菜单栏中虚拟机,点击安装vmware tools,载入驱动,选择压缩包复制到桌面并且解压缩。

安装详细教程链接:vmware tools安装

注意:
1.install过程中是no的输入yes,其他回车默认yes
2.第8条以后必须要看,安装完成后会发现只能跨平台粘贴文字,文件依旧不能复制。
解决方案:实现复制文件功能

经过以上两步,试验后成功!
若还是不成,可以试试:

apt-get install open-vm-tools-desktop

重启是点Ubuntu系统的重启,不要点击虚拟机的重启,两者都试一下吧。
至此,Ubuntu系统上的准备工作完成,接下来开始安装ROS。

三、ROS安装

因为Ubuntu的版本决定了ROS的版本,所以要对应安装ROS Kinetic版本
在开始之前先更换一下系统的国内镜像下载源,有些依赖项和库是通过代码自动更新和下载的。
如果阿里云速度也很慢的话,可以校园网教育网可以尝试清华云和华中科大的,多选几个试试。。一开始用的阿里云感觉速度可以,后来切换成华科云以后,33m/s更快了,安装ROS的时候几秒钟就可以完成。
tips:如果选择服务器的时候就很慢,说明要换一个了,,

1、设置sources.list

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

2、设置key(公钥已更新)

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

有时候会导入公钥会导入不成功,多找几个源和key导入一下即可,这个应该没问题。

3、更新package

sudo apt-get update

4、安装ROS kinetic完整版

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

这里的版本号是kinetic,搞错了的话中端会出现一行错误命令,删除即可。
5、初始化rosdep
注意:在使用ROS之前需要初始化rosdep

sudo rosdep init


遇到这种问题可能是因为被墙了,需要改ip地址,注意添加位置,不是在文件最下方!
解决方案:更改ip地址的详细方法
另一种方法:
之前那个可能也更新了,随缘性很大
网络问题很严重,更改代理也不能解决问题的话,按照本方法根本解决问题,但是有点麻烦。注意的点是,在进入GitHub的时候把整个包下载下来放到home下,路径名称为home/(用户名)/。手动下载

这样就时初始化成功了!

rosdep update

更新一下~
9.22更新补充:重新安装的时候,由于墙的原因,更新也会失败,换了网,服务器也都不行,最后在某乎上看到了一个修改代理的方式解决了!代理修改
其中有一点小白可能不清楚,替换代理ip的时候,是将前面http整个复制过去,替换掉原来的http,后面再紧跟网址。

6、配置ROS环境

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

7、安装依赖项

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

8、测试ROS是否安装成功

roscore #初始化ROS环境,以后的实验也需要开启这个环境
rosrun turtlesim turtlesim_node #调出小乌龟
rosrun turtlesim turtle_teleop_key #将控制权交给键盘

以上三个界面,分为三个终端运行

OK!

四、OpenCV安装

opencv的版本决定了后期调用头文件的问题???不是很清楚,之前用Ubuntu20.04+ROS+opencv4.5.2失败了

这次在Ubuntu16.04下采用opencv3.3.1版本

首先去opencv官网下载opencv3.3.1:下载opencv3.3.1

1.可以先检查一下opencv是否安装:

pkg-config --modversion opencv

2.安装必要的依赖库:

sudo apt-get upgrade
sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python3.5-dev
sudo apt-get install ffmpeg

3.找到opencv的压缩包,解压缩后:

cd opencv-3.3.1
mkdir build
cd buildcmake -D CMAKE_BUILD_TYPE=RELEASE \-D CMAKE_INSTALL_PREFIX=/usr/local  ..

cmake后的样子:

4.上述配置命令执行成功后,继续执行编译命令:

make -j8

其中 -jx 是使用CPU的多线程,x是要使用的线程数量。有j4 、j12、还有直接make的也可以
时间会有点长

5.执行安装命令:

sudo make install

6.加入到动态链接中:

sudo ldconfig

7.此时在检查一下版本,出现版本号即安装成功!

pkg-config --modversion opencv


安装好opencv3.3.1了

五、手动安装Eigen3.3.3

两种方法,一种是通过apt的方法从Ubuntu库里自动安装,另一种手动下载源代码指定安装包安装。
因为安装Eigen3.3.3这一指定版本,所以我们采取第二种方法。
官网下载地址:这里

在其他版本下载中,找到:

可以在win10主机环境中下载,然后copy到虚拟机中,这样快一些。
1.解压缩后进入文件
解压缩这里,需要从文件夹中的计算机进入桌面终端,而不是右击桌面来进行终端命令
解压缩详细:各种安装包的压解方法,解压位置教程

在桌面上也可以用手动解压缩的方法,右击文件------提取到此处。

2.创建build文件夹

mkdir build

3.进入build文件中

cd build

4.cmake进行编译

cmake ..

5.编译成功后进行安装

sudo make install

注意:
由于后面运行vins-mono环境的时候,需要链接eigen的头文件,所以现在需要链接到该目录下。
原话是:此外,需使用下面命令将Eigen映射到 /usr/include 路径下,因为在很多程序中include时经常使用#include <Eigen/Dense>而不是使用#include <eigen3/Eigen/Dense>,不映射的话一些程序在编译时会因找不到Eigen/Dense而报错。
链接部分如下:

sudo cp -r /usr/local/include/eigen3 /usr/include/eigen3   #cp -r命令与cp命令的简单复制不同,它带有对文件子目录一个递归的性质。
sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen   # ln-s 是软链接

不过有的博客里没有添加软链接这一行代码,但两个都写上是没有问题的。

Eigen3.3.3 安装完成!

六、安装Ceres

安装2.**版本很容易出现问题,ceres是最容易出问题的了,很烦

1.安装依赖项:

sudo apt-get install liblapack-dev libsuitesparse-dev libgflags-dev
sudo apt-get install libgoogle-glog-dev libgtest-dev
sudo apt-get install libcxsparse3
  1. 下载ceres-solver-1.14.0并解压
wget ceres-solver.org/ceres-solver-1.14.0.tar.gz
tar -zxvf ceres-solver-1.14.0.tar.gz

3.进入安装包后,编译:

cd ceres-solver-1.14.0
mkdir build
cd build
cmake ..   #  可能出现错误
make -j8  #也可能出现错误
sudo make install

**注意:cmake … 过程中可能会遇到这个问题,是因为cmake版本过低造成的,Error中也提到需要3.10及以上的版本,所以就要想办法更新或下载高版本的cmake
百度后发现有人说不需要卸载原先的cmake,直接更新即可,否则会出现其他的问题。不要随意卸载原先的cmake!!!
详细解决过程:

wget https://cmake.org/files/v3.12/cmake-3.12.3.tar.gz
tar zxvf cmake-3.12.3.tar.gz
# 下载、解压
cd cmake-3.12.3
./configure
make
sudo make install
#  配置、编译、安装
sudo cmake --version
#检查是否更新完成


cmake更新安装完成!这样再回去cmake就没问题了

至此,准备工作就全部完成了,下面的任务就是安装与编译VINS-Mono环境,并测试.bag数据包

七、安装与编译VINS-Mono

这一篇文章分析的很清晰:vins-mono文件组成

1.创建ROS工作空间:
先添加依赖项:

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

创建目录:

mkdir -p ~/catkin_ws/src     # 递归创建工作空间及其下的src目录
cd ~/catkin_ws/src              # 移动到工作空间下的src目录
catkin_init_workspace           # 初始化工作空间

可以看到,在~/catkin_ws/src路径下创建了一个CMakeLists.txt文件.
一个典型的ROS工作空间目录结构如下:

catkin_ws/                   # 工作空间
├── src/                      # src目录放置源码
│   ├── CMakeLists.txt          # 顶层CMakeLists.txt
│   ├── package_1/              # ROS包1
│   ├── package_2/              # ROS包2
│   └── package_n/              # ROS包n
├── build/                    # build目录放置编译结果
├── devel/                    # devel目录放置开发相关文件
│   └── setup.bash              # 运行该脚本才能让该工作空间下的包被ROS发现
└── install/                  # install目录放置安装相关文件

src目录下存放的是我们写的源码,build、devel和install目录都是ROS在编译过程中为我们生成的,不需要我们创建或修改.

2.安装与编译vins-mono
继续上面的空间终端

git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git
cd ../
catkin_make


编译成功!这也说明vins-mono环境配置好了,可以下载数据包导入跑数据了。
测试包文件下载路径:EuRoC MAV Dataset

下载很慢-。-
下载完成后,在catkin_ws文件夹下新建一个Dates文件,放入。运行ros。打开三个终端,分别启动vins_estimator,rviz和播放包文件。以MH_01为例:

roscore
source ~/catkin_ws/devel/setup.bash #每个终端运行前都要加上这一句
roslaunch vins_estimator euroc.launch
roslaunch vins_estimator vins_rviz.launch
roslaunch benchmark_publisher publish.launch sequence_name:=MH_01_easy.bag
rosbag play ~/catkin_ws/Dates/MH_01_easy.bag

配置工作空间时,source devel/setup.bash命令用于刷新环境,编译完成后必须使用source命令刷新一下工作空间的环境。每次进行catkin_make之后,都要进行source devel/setup.bash,进行package创建时,当加入新的package并编译完成后,也要进行source devel/setup.bash刷新环境,否则会出现package XXX not found 的问题。由于我在使用时,经常忘记source,所以我将source devel/setup.bash命令添加到了.bashrc文件中,让系统自动刷新工作空间环境,这样,在这个工作空间下的所有package都可以在编译后直接运行了,不用再source devel/setup.bash。
为了避免每次都要运行脚本指令,可以在.bashrc文件下提前写好~

gedit ~/.bashrc
source ~/catkin_ws/devel/setup.bash

成功运行!

总结

注意版本号,有许多问题,例如头文件出错,c++格式错误、opencv版本对应不上,其实都是版本问题。测试过以上版本均没有问题,可以正常运行。纯纯小白。
2022.8.30

参考链接:
Ubuntu16.04安装ROS Kinetic详细过程
rosdep init 错误解决方法
安装了vmware tools还是不能复制粘贴,使用了很多种方法都不可以
git clone 出现fatal:无法访问问题解决】Ubuntu16.04安装Opencv3.3.1
VMware Tools安装教程
VINS-Mono环境配置与测试笔记
VINS-Mono笔记01_VINS-Mono的编译运行
https://blog.csdn.net/nannan7777/article/details/102915699?spm=1001.2014.3001.5506
Ubuntu 16.04 VINS-Mono 安装
详细介绍如何在ubuntu20.04中安装ROS系统,以及安装过程中出现的常见错误的解决方法,填坑!!!

【学习VINS-MONO环境配置、测试】相关推荐

  1. 从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN)

    从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN) 首先先声明一下 这篇是转载来自  : 从零开始搭建深度学习服务器: 基础环境配置( ...

  2. openCV2学习笔记---1.环境配置

    openCV2学习笔记-1.环境配置 openCV 是开源的计算机视觉代码库,可以运行在Linux.Windows和Mac OS操作系统上.它轻量级而且高效--由一系列 C 函数和少量 C++ 类构成 ...

  3. 一篇就够用了——深度学习Ubuntu16.04环境配置+Win10双系统

    一篇就够用了深度学习Ubuntu16.04环境配置 必看!此教程使用说明 [必备配置]基本环境配置 1.win10+ubuntu16.04双系统安装 2.ubuntu最重要的事--切换下载源 3.ub ...

  4. 从零开始搭建一台深度学习服务器及环境配置

    从零开始搭建一台深度学习服务器及环境配置 服务器硬件 2019.12.12 系统安装 环境配置--现有最新版本 服务器硬件 2019.12.12 实验室需求,我找的配置,反正不用我花钱独享一台服务器 ...

  5. 40系笔记本(可不联网激活)深度学习生产力(环境配置和简单训练测试)

    40系笔记本深度学习.转码生产力(环境配置和简单训练测试)这里写自定义目录标题 深度学习环境准备 CUDA.CUDNN版本问题 torch版本问题 其他软件版本的安装命令 训练测试代码地址 关于Lin ...

  6. 深度学习Pytorch/Caffe-GPU环境配置

    双系统Ubuntu16.04.06LTS+Nvidia显卡驱动 + Cuda9.0 + CuDNN7.4.2 +Opencv 3.4.6 + Pytorch/Caffe-GPU 目录 一.安装双系统 ...

  7. springboot 环境配置测试环境和线上环境配置

    第一种方式:都在中 application.yml配置,用  ---  隔开,这样可以表示独立的环境,用active引用 spring: profiles:active: test --- serve ...

  8. 深度学习之GPU环境配置

    写下此博客以纪念我这一周的折腾. 刚开始是打算在ubuntu18.04上面直接配置GPU运行环境的,然后遇到了各种问题,首先就是在terminal中输入nvidia-smi命令,出现需要你安装最新驱动 ...

  9. Linux学习笔记之环境配置和常用管理命令

    一.环境配置 修改ip地址(略过) 1.网络通信命令 <1> ping 测试网络的连通性 ping 选项 IP地址 -c 指定发送次数 <2> ifconfig 查看和设置网卡 ...

  10. JAVA Web学习(1) ----开发环境配置

    1.JAVA WEB环境配置: a): Tomcat 安装遇到的问题 下载地址:http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.90/bi ...

最新文章

  1. 教你轻松恢复Linux口令
  2. php如何发起远程请求,PHP请求远程地址如何设置超时时间
  3. Struts 2配置详解
  4. “象征界”的奇观:刘天怜花鸟工笔作品印象
  5. 那个学完这个小程序创业课程的小白现在月入17万
  6. jdk 1.8 内存可见性_JDK 14中的常规,安全和确定性外部内存访问
  7. 从数学到SQL Server,对集合论的快速介绍
  8. 华为鸿蒙为什么非要碰物联网?
  9. 关于virtual pc安装Redhat
  10. 计算机内存外存共同点,存储器:内存和外存
  11. 关于《windows游戏编程大师技巧》的源代码
  12. Java实现 蓝桥杯 生命游戏
  13. 解决echart时间显示问题
  14. php实现微信小程序登陆功能
  15. python中for ch in是什么意思_python中for是什么
  16. java中画幅相机推荐_中画幅数码相机推荐
  17. 若依登录和JWT验证的大体流程和对redis的使用
  18. 华为云位居IDC中国大数据平台市场研究报告第一
  19. Web端访问微信小程序云数据库
  20. 计算机房防凝露保温材料,机房地板保温有哪些要注意的

热门文章

  1. 【学习笔记】【MAC】sdk自带uiautomatorviewer启动报错问题解决
  2. Python计算机二级考试,二十来天的备考,奥利给!【已完结】
  3. Java导入Excel文档到数据库
  4. 全球各大网站的服务器使用什么操作系统和WEB服务器(转)
  5. Redis底层数据结构——跳跃列表
  6. 手机端如何维持登录状态
  7. centos linux引导修复_centos 系统引导修复办法
  8. 2019年安徽省程序设计大赛题解
  9. java中的radix_int radix()
  10. python调用pyd_使用python pyd时出错