Ubuntu16.04安装+ROS kinetic安装+ORB-SLAM2算法安装(小白详细教程操作+常见错误解决方法)
如果想了解更多, 可以查阅我博客中的其他文章: https://dingyuqi.com
前言
本篇博客将详细讲述我是如何在裸机状态下安装Ubuntu16.04双系统,并安装对应版本的ROSkinetic系统。外加在安装了这两个系统之后,如何成功安装调试INDEMIND双目摄像头并实现ORB-SLAM算法。
我使用的是DELL-inspirion5488, 对于摄像头配有3.0的USB接口,请各位在安装过程中不要低于这个配置,以免安装之后算法无法执行。
一、安装Ubuntu16.04
IDEMIND这款双目摄像头可以匹配ubuntu18.04和ubuntu16.04两个版本的ubuntu,但是最好使用ubuntu16.04版本。
由于我安装了太多遍,忘记截图,详细过程还请参考这位博主的文章:https://blog.csdn.net/wyx100/article/details/51582617
二、安装ROS
安装过程主要参考:https://blog.csdn.net/softimite_zifeng/article/details/78632211
辅助参考ROS kinetic官网:http://wiki.ros.org/kinetic/Installation/Ubuntu
辅助参考18.04版本:https://blog.csdn.net/sinat_34130812/article/details/81666728
在安装过程中请注意ROS的版本,一定要与自己Ubuntu的版本相匹配。 Ubuntu16.04对应的ROS版本是kinetic。如果不清楚自己的Ubuntu对应什么版本的ROS可以自行百度。
有能力的朋友可以直接去ROS kinetic的官网上面跟着官方的安装指南走,网上多数的安装过程都是官网上的翻译。而且官网上面能够保证使用的是最新的key。(官网的链接一件在上面给出)
1.配置Ubuntu的资源库
其中Download from的网址使用阿里云的链接最为有效(如图中所示)。安装过程中一定要使用稳定的网络!!!!使用手机热点最好。绝大部分的错误都是因为网络不稳定导致
2. 设置Ubuntu的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'
3. 设置key
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
如果无法连接上述服务器,可以尝试hkp://pgp.mit.edu:80或者hkp://keyserver.ubuntu.com:80
4. 更新package
sudo apt-get update
5. 安装ROS kinetic完整版
sudo apt-get install ros-kinetic-desktop-full
安装完可以查看可用的package:apt-cache search ros-kinetic
6. 初始化rosdep
在使用ROS之前必须要初始化
sudo rosdep init
rosdep update
7. 配置环境
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
其中:sourc ~/.bashrc 是更新配置文件的代码,每次更改bash文件之后都要执行该命令才能生效。
8. 安装building package的依赖
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
9. 测试ROS安装成功
- 打开Termial,输入以下命令,初始化ROS环境:
roscore
- 打开新的Termial,输入以下命令,弹出一个小乌龟窗口:
rosrun turtlesim turtlesim_node
- 打开新的Termial,输入以下命令,可以在Termial中通过方向键控制小乌龟的移动:
rosrun turtlesim turtle_teleop_key
4) 打开新的Termial,输入以下命令,弹出新的窗口查看ROS节点信息:
rosrun rqt_graph rqt_graph
三、安装INDEMIND中ORB-SLAM算法
以下过程多为ubuntu18.04版本下的安装操作过程记录。第二次ubuntu16.04版本的安装稍有不同,以标注的形式体现,没有截图记录。
1. 配置环境
1.1 安装pangolin
参考:https://www.cnblogs.com/liufuqiang/p/5618335.html
安装一些必要的库:
Glew:
sudo apt-get install libglew-dev
CMake:
sudo apt-get install cmake
Boost:
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
Python: ubuntu16.04和18.04自带Python2,无需重新安装
在安装完上述依赖后,就可以开始安装Pangolin了
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake -DCPP11_NO_BOOST=1 ..
make -j
一定要注意网络的问题!!使用热点比较保险。如果中间报错不是’XXX package not found’ 这种错误,多半是网络不稳定造成的,多次重新执行失败的命令即可成功。
我在Ubuntu18.04下遇到如下问题,仅供参考:
ERROR1:
解决方法:
ERROR2:
解决方法:
还有可能出现一些package找不到的错误,只需要按照提示去安装相应的包即可。在安装包完成之后重新执行下面两行代码即可:
cmake -DCPP11_NO_BOOST=1 ..
make -j
1.2. 安装opencv3.4.3
opencv一定要安装3.4.3版本,否则INDEMIND无法运行。
安装过程主要参考:https://blog.csdn.net/qq_32408773/article/details/83346816
虽然是18.04的安装教程,但是用于16.04也完全没有问题。
- 在opencv官网上下载对应的版本:https://opencv.org/releases/
- 安装cmake和其他依赖项
sudo apt-get update
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
- 下载完之后对文件进行解压
- 进入解压后的文件夹并创建build文件夹,并进入build
mkdir build
cd build
- cmake
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
- 编译
sudo make
- 执行安装命令
sudo make install
- 配置环境
sudo gedit /etc/ld.so.conf.d/opencv.conf
在打开的空白文档中添加:
/usr/local/lib
之后执行使得修改生效:
sudo ldconfig
- 配置bash
sudo gedit /etc/bash.bashrc
在打开的文件末尾添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
之后执行以下命令进行更新:
source /etc/bash.bashrc
sudo updatedb
配置完成!
- 测试
进入opencv-3.4.3/samples/cpp/example_cmake,这里面是一些cmake官方程序,执行调用摄像头程序:
cmake .
make
./opencv_example
如果能够调用自己电脑的摄像头,说明安装成功!
1.3. 安装Eigen3
sudo apt-get install libeigen3-dev
1.4 安装DBoW2
安装DBoW2的时候需要OpenCV的支持
git clone https://github.com/dorian3d/DBoW2
cd DBow2
mkdir build
cd build
cmake ..
make
sudo make install
1.5 安装g2o
安装过程主要参考:https://blog.csdn.net/Coderii/article/details/87606036
- 到官网下载压缩包
- 安装依赖项
sudo apt-get install cmake libeigen3-dev libsuitesparse-dev qtdeclarative5-dev qt5-qmake libqglviewer-dev
其中linqglviewer-dev安装不了,如果不需要g2o的viewer模块,则不必装该依赖项,如果需要可以去官网直接下载,然后mkdir build;cd build;cmake …;make;sudo make install单独安装
- 编译
mkidr build
cd build
cmake ..
make
- 安装
sudo make install
2. 安装SDK依赖环境
2.1 安装google-glog +gflags
sudo apt-get install libgoogle-glog-dev
2.2 安装BLAS&LAPACK
sudo apt-get install libatlas-base-dev
2.3 安装SuiteSparse and CXSparse
sudo apt-get install libsuitesparse-dev
3. 安装SDK
注意:ubuntu16.04必须使用GCC5.4进行编译,否则可能链接失败。
参考教程:
1.https://indemind-sdk.readthedocs.io/zh_CN/latest/src/sdk/ros%20SDK%20anzhuang.html
2. INDEMIND微信公众号上ORB-SLAM的教程
3.1 下载SDK和源码
下载地址:
SDK: https://github.com/INDEMIND/SDK-Linux
ORB-SLAM: https://github.com/INDEMINDtech/run.ORB
3.2 进行SDK的安装
- 下载好SDK 后,进入SDK-Linux/demo_ros/src目录。将下载好的ORB-SLAM2放在该目录下.
- 将下载的CMakeList.txt替换到…SDK/demo_ros/src目录下
- 进入sdk/demo_ros/src/ORB_SLAM2/Vocabulary目录下执行:
tar -xf ORBvoc.txt.tar.gz
- 在Linux SDK的demo_ros文件夹下打开终端使用命令来进行编译:
catkin_make
执行成功之后会在demo_ros 文件夹之下生成两个执行文件:
module_driver
stereo_euroc
- 打开一个新的终端,执行:
roscore
- 将module_driver拷贝到SDK/lib/1604下,打开终端执行
sudo -s
sudo chmod 777 ./run.sh
./run.sh
- 进入SDK/demo_ros目录下,打开终端,执行
./stereo_euroc
即可得到实时ORB
如果想了解其他关于模型的知识, 可以前往我的技术博客