VINS-Mono环境配置与测试笔记

标签: SLAM VINS-mono

本文转载自:

VINS-Mono环境配置与测试笔记

error:cv_bridge---opencv和ros连接起来的桥


1.简介

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

2.测试环境配置

2.1.配置目标

电脑 64位 8g内存 100g+1T硬盘
windows10+Ubuntu16.04双系统
Ubuntu 16.04, ROS Kinetic, OpenCV 3.3.1, Eigen 3.3.3,Ceres-Solver

2.2. Win10+Ubuntu16.04双系统

win10下安装Ubuntu16.04双系统

  1. 在Ubuntu官网上下载所需的iso镜像安装文件;
  2. 准备一个空U盘(2g以上),用Ultral软件试用版本制作安装盘(文件->打开iso镜像文件;启动->写入硬盘映像);
  3. 右键计算机->管理->磁盘管理,压缩出Ubuntu系统的安装区域(本次在机械硬盘上试用256G卷);
  4. 在安装盘插入的情况下重启计算机,使用开机向导(ASUS默认开机同时esc键进入),选择从U盘进入,开始安装Ubuntu;
  5. …(一系列不重要的步骤,可按默认选择)…选择自定义安装,开始划分磁盘分区;
  6. 本次分区配置如下:总256G,BIO主分区 32M,\boot主分区Et4 1G(听说更新内核后前引导文件不会自动删除,为省麻烦干脆放大一点),\home逻辑分区Et4 100G,swap交换分区 8G,\逻辑分区Et4 剩余所有内存,安装启动引导器的设备\boot(不知道为什么挂sda上报错);
  7. 安装完成,重启。

2.3. ROS Kinetic安装

ROS不能再详细的安装教程

  1. 版本选择
ROS发布日期 ROS版本 对应的Ubuntu版本
2016.3 ROS Kinetic Kame Ubuntu16.04/Ubuntu15.01
2015.3 ROS Jade Turtle Ubuntu15.04/Ubuntu LTS14.04
2014.7 ROS Indigo Lgloo Ubuntu14.04
  1. 安装步骤
    添加源:打开控制台Ctrl+Alt+T输入以下命令
$ 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 0xB01FA116

确保系统软件处于最新版:

$ sudo apt-get update

安装全功能版ROS:

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

查看可用的包:

$ apt-cache search ros-kinetic

初始化ROS:

$ sudo rosdep init
$ rosdep update

初始化环境变量:

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

安装常用插件:

$ sudo apt-get install python-rosinstall

测试ROS,启动ROS环境:

$ roscore

显示started core service [/rosout] 则安装成功

2.4. OpenCV 3.3.1

  1. 去opencv官网opencv下载地址下载对应版本的opencv安装包;
  2. 安装pip,安装numpy
sudo apt install python-pip
pip install numpy
  1. 安装依赖项
sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff5-dev libjasper-dev libopenexr-dev libtbb-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libpng-dev libdc1394-22-dev
  1. 解压opencv安装包,进入安装文件目录
tar -xzvf opencv-3.3.1.tar.gz
cd opencv-3.3.1/
cd ..
mkdir build
cd build
cmake ..
make    # make -j4表示开4个线程来进行编译
make install
  1. 安装完成

2.5. Eigen安装

未安装Eigen的PC可以输入以下命令进行安装:

sudo apt-get install libeigen3-dev

可输入以下命令寻找安装位置:

sudo updatedb
locate eigen3

安装完成

2.6. Cere的安装

官网英文安装教程
可去GitHub上下载Ceres:Ceres下载地址
最新版本可从git库克隆:
以下安装步骤参照《SLAM十四讲》进行
安装依赖项:(若为Ubuntu14.04则应为libcxsparse3.1.2)

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

以下安装参照安装教程进行

安装依赖项:

#CMake
sudo apt-get install cmake
#google-glog + gflags
sudo apt-get install libgoogle-glog-dev
#BLAS&LAPACK
sudo apt-get install libatlas-base-dev
#Eigen3
sudo apt-get install libeigen3-dev
#SuiteSparse和CXSparse(可选)
# - 如果要将Ceres构建为* static *库(默认),您可以在主Ubuntu软件包#storage中使用SuiteSparse软件包:
sudo apt-get install libsuitesparse-dev
# - 但是,如果要将Ceres构建为* shared *库,则必须添加以下PPA:
sudo add-apt-repository ppa:bzindovic / suitesparse-bugfix-1319687
sudo apt-get update
sudo apt-get install libsuitesparse-dev

解压Cere安装包,进入安装目录下:

tar zxf ceres-solver-1.14.0.tar.gz
cd ceres-solver-1.14.0
mkdir build
cmake ..
make
make install

3.测试

3.1.先决条件

ROS安装额外的ROS pacakge:

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

3.2.在ROS上构建VINS-Mono

在ROS上构建VINS-Mono,克隆存储库和catkin_make:

    cd ~/catkin_ws/srcgit clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.gitcd ../catkin_makesource ~/catkin_ws/devel/setup.bash

3.3.公共数据集上的视觉 - 惯性测距和姿势图重用

测试包文件下载路径:EuRoC MAV Dataset
打开三个终端,分别启动vins_estimator,rviz和播放包文件。以MH_01为例:

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

测试成功

4.后续问题

一天想重新运行一下程序发现以下错误:

$ roslaunch vins_estimator euroc.launch程序“roslaunch”尚未安装。 您可以使用以下命令安装:
sudo apt install python-roslaunch

按照提示安装报错:

正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:python-roslaunch : 依赖: python-roslib 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

尝试使用roscore同样报错:

$ roscore
程序“roscore”尚未安装。 您可以使用以下命令安装:
sudo apt install python-roslaunch

于是动手检查ros安装情况

dpkg -l "ros*"
 
期望状态=未知(u)/安装(i)/删除(r)/清除(p)/保持(h)
| 状态=未安装(n)/已安装(i)/仅存配置(c)/仅解压缩(U)/配置失败(F)/不完全安装(H)/触发器等待(W)/触发器未决(T)
|/ 错误?=(无)/须重装(R) (状态,错误:大写=故障)
||/ 名称           版本         体系结构:   描述
+++-==============-============-============-=================================
ii  ros-kinetic-ac 1.11.13-0xen amd64        The actionlib stack provides a st
ii  ros-kinetic-ac 1.12.6-0xeni amd64        actionlib_msgs defines the common
ii  ros-kinetic-ac 0.1.10-0xeni amd64        The actionlib_tutorials package
ii  ros-kinetic-an 1.9.11-0xeni amd64        This package provides a set of si
ii  ros-kinetic-bo 1.8.1-0xenia amd64        A bond allows two processes, A an
...#一堆安装项还在,似乎没什么大问题

尝试重新初始化ROS环境变量

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

加入后roscore运行正常:

ros_comm version 1.12.14
summry
PARAMETERS* /rosdistro: kinetic* /rosversion: 1.12.14
NODES
auto-starting new master
process[master]: started with pid [10380]
ROS_MASTER_URI=http://wanghuidan-N501JW:11311/
setting /run_id to 2c90f326-d28a-11e8-a529-acfdce69c639
process[rosout-1]: started with pid [10393]
started core service [/rosout]

重新尝试运行程序:

$ source ~/catkin_ws/devel/setup.bash
$ roslaunch vins_estimator euroc.launch
程序“roslaunch”尚未安装。 您可以使用以下命令安装:
sudo apt install python-roslaunch

继续报开始的错,而且ros命令继续失效。。。

兜兜转转两三次以后感觉是程序这边的问题,于是重新catkin_make程序

$ catkin_make
$ source ~/catkin_ws/devel/setup.bash
重新按3.3节跑测试
测试成功

5.openCV与cvbridge兼容问题

本部分转自:http://www.cnblogs.com/Jessica-jie/p/6959309.html

error:cv_bridge---opencv和ros连接起来的桥

有多个warning出现。。。版本冲突

解决办法:

cv_bridge[opencv和ros连接起来的桥],默认依赖的opencv版本是2.4.8,如果安装了新的opencv版本,比如3.1.0,那么在编译cv_bridge时候会提示无法找到opencv 2.4.8.so的库。

1.必须要先把旧版本的cv_bridge卸载掉:

sudo apt-get remove ros-indigo-cv-bridge

2.然后下载新版本的cv_bridge:

git clone https://github.com/ros-perception/vision_opencv.git

3.修改cv_bridge中的cmakelists.txt

find_package(OpenCV 3.1 REQUIRED)  //将opencv的版本指定为3.1

4.将里面的cv_bridge包拿出来,放到工作空间中,重新编译:

catkin_make --pkg cv_bridge  //catkin_make --pkg[package包],单独编译工作空间catkin_ws中的包;catkin_make编译所有的

也可以通过cmake编译

cd ~/catkin_ws/src/cv_bridge
mkdir build
cd build
cmake ..
make
sudo make install

结束之后你就可以更改你的其他代码了,由于以前的cv_bridge不见了,所以要在其他代码的cmakelists.txt添加一句话,后面的路径是自己的路径,查找cv_bridge.config.cmake所在的路径即可

set(cv_bridge_DIR /usr/local/share/cv_bridge/cmake)  //在find_package前面
5.python调用cv_bridge相关的工作
在~/.bashrc中添加
export LD_LIBRARY_PATH=/usr/local/lib/
 

【转载】VINS-Mono环境配置与测试笔记相关推荐

  1. VINS-Mono环境配置与测试笔记

    VINS-Mono环境配置与测试笔记 标签: 旭 linux SLAM 1.简介 VINS-Mono和VINS-Mobile是香港科技大学沈劭劼团队开源的单目视觉惯导SLAM方案.是基于优化和滑动窗口 ...

  2. YOLOv4 资源环境配置和测试样例效果

    YOLOv4 资源环境配置和测试样例效果 基本环境:cuda=10.0,cudnn>=7.0, opencv>=2.4 一.下载yolov4 git clone https://githu ...

  3. USRP环境配置及测试

    USRP环境配置及测试 文章目录 **USRP环境配置及测试** **安装Ubuntu18.04(非虚拟机)** **安装UHD** **安装GNU Radio** **USRP B210测试** * ...

  4. MSP432安装与环境配置(ccs) 学习笔记

    MSP432安装与环境配置(ccs) 学习笔记   关闭电脑病毒防护 继续 选择ccs的安装文件路径 选择要安装的类型 选择使用工作区目录存储其首选项和开发文件路径 使用usb接入432 关闭安装ms ...

  5. win10java配置环境变量msi_Windows10+eclipse+hadoop2.7.1环境配置+wordcount-折腾笔记

    刚用Ambari搭建好Hadoop,就开始写Hello World! 一.背景 1.Hadoop版本 经查看为2.7.1 Shell 1 2 3 4 5 6 7 [root@TJ1-000~]# ha ...

  6. 点云目标检测BRNET || 1. 基于MMDetection的BRNet工程环境配置与测试

    1. BRNET 的环境配置 工程链接:https://github.com/cheng052/BRNet 改工程是基于MMDetection3D的框架下实现的,所以在配置环境时,需要先安装MMDet ...

  7. ionic+angularjs开发hybrid App(环境配置+创建测试项目)

    本文使用的系统是win10 因为后期需要使用nodejs 所以先把node装好 https://nodejs.org/download/ 下载JDK并配置Java运行环境 http://www.ora ...

  8. Windows10 + Visual Studio 2017 + CMake +OpenCV编译、开发环境配置及测试

    由于最近需要使用OpenCV,本人需要在自己的PC上使用OpenCV,因此最近一直在研究如何使用Visual Studio编译OpenCV源代码并搭建开发环境,折腾了很长时间,查阅了很多相关资料,终于 ...

  9. C连接MySQL数据库开发之Windows环境配置及测试

    一.开发环境 Win8.1 64位.VS2013.MySQL5.5.3764位 MySQL安装目录为:C:\Program Files\MySQL\MySQL Server 5.5 二.配置工程环境 ...

最新文章

  1. python基础指令-Python基础——与Python的指令交互
  2. sublime配置随笔提示
  3. 图解.Net Telerik 控件教程
  4. 大数据和个性化设计是用户体验(UX)的未来
  5. 创建一个QT for Android的传感器应用应用程序(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇)
  6. Pin code码已被重置
  7. C++中面向对象的理解
  8. 从零开始学 Web 之 Ajax(七)跨域
  9. Struts2前身Struts1是如何转起来的呢
  10. 虚拟机全知道_12个使用技巧
  11. 【医疗影像处理】使用前景像素的均值和方差(mean,std)对图像进行归一化(背景像素为0)【numpy-code】
  12. 一个盒子两个摄像头,你就不知道怎么办了?
  13. adb命令logcat抓取日志
  14. Ubuntu 挂载ISO文件
  15. 爬取天天基金排行榜上的基金信息
  16. 【java1234】java学习路线图2018
  17. 详细讲解WIN7系统上Virtualbox4.2.8安装RedHat Enterprise Linux 6.4
  18. iVMS-4200 Vs区别_【5G科普】5G知识知多少?#之5G与4G的区别
  19. 软件测试实习——第二十五天
  20. NRF24L01P(nrf24l01+)从入门到使用

热门文章

  1. html手机页面加音效,为你的html5网页添加音效示例
  2. Bugly Android热更新总结篇
  3. vue token过期后的处理和网关白名单
  4. 20200218软件or专业名词摘录
  5. ChatGPT+MidJourney 3分钟生成你的动画故事
  6. 车云计算不是“空中楼阁”,智能汽车的数据引擎“激活”新赛道
  7. php下载excel文件模板文件,PHP下载excel文件变得腐败
  8. 用tkinter写出you-get下载器界面,并用pyinstaller打包成exe文件
  9. 计算机考研369,369和199考研数学的区别 考研王一鸣老师为你解析!
  10. react 之零基础入门