这是我第一次写CSDN,首要目的是记录学习VIO的过程,其次这些年在网上看了这么多的技术分享,享受着知识共享的便利,觉得自己也是时候做出一些贡献了,再次顺便锻炼一下语言表述能力。
因为本系列文章是随做随写,记录的是本人从VO小白开始,学习VIO的一点一滴。由于本人没有受到过相关专业的系统教育,对于基础知识的学习可能不具备系统性、连贯性、徐徐渐进性,相反基本是遇到不懂的就要去翻翻书并记录在文章内,不过基础知识部分会以tips形式嵌入到文章主体框架中去,尽量不影响阅读的通顺。
本人是惯性导航专业,对于VO知识一无所知,在开始本次学习之前先花了一周的时候把高博的《视觉SLAM十四讲》粗略的翻看了一遍,主要关注点在SLAM的理论框架,并没有详细去试验书中的代码。
闲话少叙,书归正传,下面咱们正式开始我们的VIO旅程。首先我们要做的工作是搭建VINS的环境。
本人Ubuntu使用的是虚拟机,关于虚拟机的安装请自行百度。
1.从阿里云的镜像下载64位系统镜像文件ubuntu-16.04.5-desktop-amd64.iso 链接如下
http://mirrors.aliyun.com/ubuntu-releases/16.04/
这里说一句,amd64不是指AMD公司的64位芯片,而是代指所有x64系统,关于该命名的历史渊源,有兴趣的同学可以自行百度 。
Ubuntu版本和ROS版本有对应关系,Ubuntu14.04对应Indigo,Ubuntu16.04对应Kinetic,不要和博主一样蠢萌蠢萌的用16.04安Indigo,折腾了一晚上。。。。
sudo sh -c 'echo "deb http://mirrors.ustc.edu.cn/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
sudo apt-get install ros-kinetic-desktop-full
1、unable to lock the administration directory (/var/lib/dpkg/) is another process using it
可以用 https://linux.cn/article-8040-1.html 方法解决。
2、Unable to locate package
可以用 http://www.cnblogs.com/pipci/p/8676313.html 方法解决。
sudo rosdep init
rosdep update
如果sudo rosdep init
出现
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
请参照rosdep init报错之网络不通解决办法或者rosdep init 或者rosdep update 连接错误的解决办法
如果rosdep update
出现
ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml]:
(https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml)
是网络问题,请多试几次rosdep update
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
在当前Terminal输入以下命令,初始化ROS环境:
roscore
打开新的Termial,输入以下命令,弹出一个小乌龟窗口:
rosrun turtlesim turtlesim_node
如果能看到一个蓝色背景上的小龟,说明ROS已经正确安装了。
这里介绍一个命令用于查看ROS node信息,以后我们会用于查看VINS的节点信息
rosrun rqt_graph rqt_graph
只给出以下命令,详细解释可参考创建一个ROS工作空间(ROS Workspace)
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc #配置环境变量
source ~/.bashrc
查看ROS环境变量
echo $ROS_PACKAGE_PATH
如输出/home/你的用户名/你的工作空间名/src:/opt/ros/kinetic/share
则ROS工作空间已搭建好
Kinetic自带opencv3.3.1,我们就不需要再安装了
安装时多行命令请一行行执行,以免漏装,以后不再重复
sudo apt install git #安装git
Kinetic自带Eigen3.2.92,我们需要重新安一下3.3.3
关于如何查看Eigen版本可以参考查看正在使用的Eigen版本
sudo wget https://github.com/eigenteam/eigen-git-mirror/archive/3.3.3.tar.gz #下载Eigen3.3.3
sudo tar -xzvf 3.3.3.tar.gz
sudo mv eigen-git-mirror-3.3.3/ eigen-3.3.3/
cd eigen-3.3.3/
sudo mkdir build
cd build
sudo cmake ..
sudo make install
sudo ldconfig -v
sudo rm -r ~/3.3.3.tar.gz ~/eigen-3.3.3/
这里libcxsparse3.1.4的版本,我们用的Ubuntu16.04 对应于3.1.4
sudo sh -c 'echo "deb http://cz.archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe" > /etc/apt/sources.list' #添加源
sudo apt-get update #更新源
sudo apt-get install libsuitesparse-dev libcxsparse3.1.4 libgflags-dev libgoogle-glog-dev
sudo wget http://ceres-solver.org/ceres-solver-1.14.0.tar.gz #下载ceres-solver-1.14.0
sudo tar -xzvf ceres-solver-1.14.0.tar.gz
cd ceres-solver-1.14.0/
sudo mkdir build && cd build
sudo cmake ..
sudo make -j8 #-jx 是使用CPU的多线程,x是要使用的线程数量。
sudo make install
Ceres库的头文件安装在"/usr/local/include/ceres/"
目录下,库文件安装在"/usr/local/lib/"
目录下。安装完成后查看是否有对应的文件,如果有则说明安装成功。
下面终于接触到VINS了
cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git
cd ..
catkin_make
source ~/catkin_ws/devel/setup.bash
建立数据集文件夹
mkdir -p ~/datasets
从EuRoC MAV Dataset手动下载数据集放到新建立的datasets文件夹中
打开三个终端, 分别输入the vins_estimator , rviz 和运行包文件. 例如MH_05
终端1
roslaunch vins_estimator euroc.launch
终端2
roslaunch vins_estimator vins_rviz.launch
终端3
rosbag play ~/datasets/MH_05_difficult.bag
一直出现[ INFO] [1543765321.506212846]: IMU excitation not enouth!
[ INFO] [1543765321.506681148]: Not enough features or parallax; Move device around
[vins_estimator-2] process has died
尝试了安装AMCL 还是不行
sudo apt-get install ros-kinetic-amcl
以下是其他尝试列表
sudo apt-get install libatlas-base-dev
sudo apt-get install libdc1394-22-dev
sudo apt-get install libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev
git clone https://github.com/ros-planning/navigation.git
按照这篇记录VINS-Mono环境配置与测试笔记安装也是出现同样问题,难道不能用虚拟机????
将Ceres Solver由静态库改为动态库 依然不行
Linux下安装glog和gflags
可能遇到的问题
1、Could NOT find Bullet
解决办法ROS编译时(catkin_make)找不到bullet
请一步一步执行
sudo apt-get install git libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg8-dev libtiff5-dev libjasper-dev libdc1394-22-dev # 处理图像所需的包
sudo apt-get install libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
sudo apt-get install libatlas-base-dev # 优化opencv功能
sudo apt-get install libgtk-3-dev
wget https://github.com/opencv/opencv/archive/3.3.1.zip
unzip 3.3.1.zip
cd opencv-3.3.1
mkdir build && cd build#创建编译目录并进入
从Ubuntu图形界面手动下载 ippicv_2017u3_lnx_intel64_general_20170822.tgz并将下载好的文件放在~/Downloads文件夹中
修改~/opencv-3.3.1/3rdparty/ippicv/ippicv.cmake中第将47行的
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
改为
"file:~/Downloads/" #(如果没有按照我上面说的做,需要根据自己的路径填写)
回到命令行来
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/user \
-D PYTHON_INCLUDE_DIR=/usr/include/python2.7 \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D PYTHON_EXCUTABLE=/usr/bin/python2.7 \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \
-D WITH_GTK=ON \
-D WITH_OPENGL=ON \
-D BUILD_EXAMPLES=ON ..
其中:
CMAKE_INSTALL_PREFIX:安装的python目录前缀,其实就是指定了python模块的安装路径。如下命令的输出即是该路径:
python -c "import sys; print(sys.prefix)"
PYTHON_EXCUTABLE:指定python的执行文件路径。如下命令的输出即是该路径
which python
上述配置命令执行成功后,继续执行编译命令
sudo make -j7
其中 -jx 是使用CPU的多线程,x是要使用的线程数量。
执行安装命令
sudo make install
加入到动态链接库
sudo ldconfig
执行如下命令:
python -c "import cv2; print (cv2.__version__)"
正常会输出已经安装的opencv版本号
3.3.1
至此opencv3.3.1安装成功
作者:pkokocl
来源:CSDN
原文:https://blog.csdn.net/pkokocl/article/details/78777651
版权声明:本文为博主原创文章,转载请附上博文链接!
作者:weixin_40494464
来源:CSDN
原文:https://blog.csdn.net/weixin_40494464/article/details/80135983
版权声明:本文为博主原创文章,转载请附上博文链接!