工作原因,需要运行港科大的VINS-Mono代码,期间踩了不少的坑,作为此方向的一只小透明,记录本人这两天的踩坑记!由于从头到尾都是参考大神们的帖子,所以记录下最好用最work的教程!
一、Ubuntu16.04系统安装(基于VMware)
-
Ubuntu16.04的安装参考如下链接,此链接为Ubuntu18.04的安装,但与安装Ubuntu16.04的区别仅在于下载的ubuntu版本。
https://blog.csdn.net/qq_41653487/article/details/106166192 -
VMware虚拟机上ubuntu显示屏幕太小解决办法
https://blog.csdn.net/weixin_39759247/article/details/107055283 -
Ubuntu 16.04 网速慢解决办法(开始下载和配置环境前,按照此链接的方法解决下载网速慢的问题,会大幅节约下载时间~)
https://blog.csdn.net/qq_45642410/article/details/105654023 -
Vm虚拟机扩展Ubuntu系统磁盘空间(备选)
安装ubuntu时,可能默认了分配空间大小(20G),这个大小是不够运行VINS-Mono的,所以可以按照以下连接扩容ubuntu的磁盘空间。
https://blog.csdn.net/weixin_39510813/article/details/78387334
至此,ubuntu16.04的环境已经装好~
二、ROS Kinetic的安装
参考链接:https://blog.csdn.net/weixin_44417938/article/details/107294330
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
3.更新package
$sudo apt-get update
4.安装ROS kinetic完整版
$sudo apt-get install ros-kinetic-desktop-full
5.初始化rosdep
$sudo rosdep init
$rosdep update
==注意:这一步通常会失败,因为网站的原因,直接跳过即可==
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是否安装成功
1)CTRL+ALT+T打开终端(Termial),输入以下命令,初始化ROS环境:
$roscore
2)再CTRL+ALT+T打开一个新的终端,输入以下命令,弹出一个小乌龟窗口:
$rosrun turtlesim turtlesim_node
3)再CTRL+ALT+T打开一个新的终端,输入以下命令:
$rosrun turtlesim turtle_teleop_key
在上图的终端中,输入“上”、“下”、“左”、“右”,即可操纵小乌龟移动,如下图:
4) 最后CTRL+ALT+T打开新的终端,输入以下命令,可以查看ROS节点信息:
$rosrun rqt_graph rqt_graph
至此,ROS安装成功啦~
三、opencv3.3.1的安装
- 安装依赖
$sudo apt-get install build-essential
$sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
$sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
在安装libjasper-dev时,可能提示如下错误:
提示:errorE: unable to locate libjasper-dev
解决办法为:
$sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
$sudo apt update
$sudo apt install libjasper1 libjasper-dev
可以新建一个文件夹(如 opencv_install),将上述两个zip下载(移动)到其中
- 用 CMake 编译
- 在cmake编译前,先下载“ippicv_2017u3_lnx_intel64_general_20170822.tgz”文件,否则cmake时会出现下载此文件失败的情况。记录好此文件存放的位置。
- 解压下载好的包
cd到2中所述的文件夹中(如opencv_install),执行:
- 解压下载好的包
- 在cmake编译前,先下载“ippicv_2017u3_lnx_intel64_general_20170822.tgz”文件,否则cmake时会出现下载此文件失败的情况。记录好此文件存放的位置。
$sudo unzip opencv-3.3.1.zip
$sudo unzip opencv_contrib-3.3.1.zip
- 修改ippicv目录下的ippicv.cmake文件
$cd opencv-3.3.1/3rdparty/ippicv/ $vim ippicv.cmake
将iooicv.cmake中的"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/”修改为**ippicv_2017u3_lnx_intel64_general_20170822.tgz**文件所在的路径,例如笔者的路径为 "file:///home/vins/slam/",所以修改如下图所示:
修改好后保存关闭即可。 - 建立、进入编译文件夹
$cd opencv-3.3.1 $sudo mkdir build $cd build
$sudo cmake -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.3.1/modules/ \ ..
- 编译、安装
$make $sudo make install
至此,opencv3.3.1就安装成功啦~
四、eigen3.3.7的安装
$sudo apt-get install libeigen3-dev
$sudo updatedb
$locate eigen3
上述安装方法会在ceres安装的时候报“找不到要求版本3.3的Eigen3”的错误,但请先执行了上述三条语句! 然后按照这个教程操作一遍即可完成Eigen3的安装。
五、Ceres1.14的安装
参考教程:https://blog.csdn.net/weixin_44417938/article/details/107294330
其中可能会出现错误:
- Could not find a package configuration file provided by "cv_bridge"
解决办法:https://blog.csdn.net/qq_33269490/article/details/103031180 - error: ‘integer_sequence’ is not a member of ‘std‘
解决办法:https://blog.csdn.net/hitljy/article/details/109451706
==此问题的正解在评论中!==
六、数据集的下载与运行
参考教程:https://blog.csdn.net/weixin_44417938/article/details/107294330
七、装了ZSH后报错:zsh:command not found : roscore
参考教程:https://blog.csdn.net/HUXU666/article/details/105774485
本文集合了各位大牛的教程,初涉此领域,才疏学浅,如有错误还请大家批评指正!