写在前面的废话:十分惭愧本人虽然是个工科生但几乎是个电脑盲,所以每次安装系统、软件、配环境等等都会比别人多踩很多坑。这次使用Intel RealSense D435 深度相机,首先在安装驱动上就走了很多弯路。现在将超级详(nao)细(can)的安装过程以及我踩过的坑详细整理出来,希望对跟我情况类似的旁友们有帮助,也给总是失败的难友们点信心(看看这个人都这样了还坚持呢,千万别放弃)。若是大家发现有哪里说的不对不全不准确,欢迎提出来一起讨论帮助我成长!现在这里拜谢了!(我师弟知道我的CSDN号,被他看到一定要笑死了。。。)
首先,不是打开Intel® RealSense™ SDK 2.0安装指南。。。
https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md#installing-the-packages
而是,非常重要!更!新!源!
打开系统设置,软件与更新这里,Download from一定是Main server。
我因为没有改源重装了将近十次Ubuntu。我根据上面网址中的指导一步步操作下来,在进行到安装demo这句命令的时候
sudo apt-get install librealsense2-utils
出现了丢失很多依赖项的情况,于是我就一条一条安,依赖项还有依赖项(子又有子,子又有孙,不高兴了。。。),这个时候就应该察觉到不对了,可是我还在坚持,直到提示从“A depends B”变成了“A depends B,但是B可能安装不了”,我尝试直接安装A,然后终端中出现了一大长串“Removing。。。”的提示,再然后重装系统就行了。。。(因为安装A的这条命令删掉了很多东西导致系统崩溃,连关机都做不到,只能强制按电源键)
用改源解决这个问题的思路是来自另一个问题:为什么运行这条命令的时候会删掉很多东西?
我到网上去搜,发现有人说不改源的话有很多依赖项会下不全,所以我改了之后又试一次,这次就成功了,不用再自己添加任何依赖项,直接按照教程里的步骤,复制命令运行就可以了。
这是我遇到的最大的麻烦,下面就可以打开教程,一步一步操作了。
操作之前有一个需要注意的问题,Ubuntu内核版本,RealSenseDKMS内核驱动包(librealsense2-dkms
)仅支持4.4,4.10,4.13和4.15版本Ubuntu LTS内核,不要忽略这个问题,Ubuntu14是装不了的。一般Ubuntu16/18都适用,但是可以查看Ubuntu内核版本验证一下。
查看自己Ubuntu内核版本命令如下:
uname -r
下面配置开发环境
要求:
1. OpenCV 4.0.0
2. CMake版本升到3.6以上
3. 开发工具支持C++11
1. 安装OpenCV 4.0.0
打开这个官网
https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html
记得把OpenCV那几个大字旁边的版本选成4.0.0-pre。然后往下按步骤推进。
必须安装的:build-essential,cmake,git,libgtk2.0-dev,pkg-config,libavcodec-dev,libavformat-dev,libswscale-dev
即运行下面的命令
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
然后它说从git上下载源码(就是OpenCV4.0.0pre的安装包),它给了个链接,点进去就是GitHub
点这个绿色键,会给一个网址,一定要学会这个命令“git clone https://github网址”,要用github的东西这个命令一定要会!那个github网址就像上面那样找,比如从github上下载OpenCV源码,就运行下面这条命令
git clone https://github.com/opencv/opencv.git
当然,注意这条命令运行的位置,也就是终端显示你当前处于哪个文件夹,在哪个文件夹下运行这条命令,源码就下在哪个位置。如果要改工作空间路径,就先建立工作空间(没什么特别的,就是个文件夹,平时喜欢把程序放在哪哪就是工作空间,可以这么理解),进入这个文件夹然后运行命令,就可以看到出现了新下载的东西。
然后它说还有稳定版、阉割版还给了链接,这里都不用管,其他情况有需求的话安装命令就像刚才说的方法一样下载需要的版本。
下一步,用CMake安装OpenCV,首先进入OpenCV文件夹(刚才下载的那个),如果下在了默认路径下(也就是/home/
cd ~/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
第四句运行完,build文件夹里应该是这样的,它原来是空的(因为它是你自己建的,记得么)。
运行下面的命令
make -j7 # runs 7 jobs in parallel
运行时终端大概是这样的,花花绿绿的样子。
运行这一句
sudo make install
最后终端是这样的
前面标注[optional]的步骤都可以跳过。
最后给出了一个测试demo。
第一步:找一个文件夹,把测试数据放在里面,即在文件夹路径下运行
git clone https://github.com/opencv/opencv_extra.git
然后会得到一个叫opencv_extra的文件夹,点进去又有一个叫testdata的文件夹,记住它。
第二步:将环境变量OPENCV_TEST_DATA_PATH设置成文件夹testdata的绝对路径(我在opencv这个文件夹下建了一个文件夹test,把opencv_extra下在了里面,所以我的testdata的路径是/home/<我的用户名>/opencv/test/opencv_extra/testdata)。
运行这句,设置OPENCV_TEST_DATA_PATH值。
export OPENCV_TEST_DATA_PATH=/home/<这里是我名>/opencv/test/opencv_extra/testdata
在终端中显示OPENCV_TEST_DATA_PATH值。
echo $OPENCV_TEST_DATA_PATH
echo就是在终端中显示XXX的命令,$是引用变量的符号,后面紧跟变量名。
输出结果应该和上一句等号后面的内容一致才对。
第三步:运行执行文件。在build文件夹里有个bin文件夹,bin文件夹里有一堆小方块,就是可执行文件。有一个名字叫opencv_test_core,在终端中输入它的绝对路径,回车,运行。
/home/<这里还是我名>/opencv/build/bin/opencv_test_core
我得到的结果是这样的,并不知道对不对,网上也没查到大家得到了什么结果。希望有大佬能指点一下。
2. CMake升级
首先检查自己CMake的版本。
cmake --version
若是3.6以上就不用改了,若不是,继续往下。
删除旧版本,这一步很重要,不删除会和新版本冲突,新版本识别不出来。
我是参考一位大佬的教程,安装了3.9.2,网址贴在这https://blog.csdn.net/fancyler/article/details/78009812
命令贴在这,如果上面链接里的命令运行完不对就试试下面的命令,最后一步一定要有,它会更新CMAKE_ROOT
。
首先下载cmake源码。
wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz
解压,解压方法为(1)终端内运行命令
tar zxvf cmake-3.9.2.tar.gz
(2)双击之后点击extract。
解压后进入文件夹。
cd cmake-3.9.2
总之到这里的最终目的是令终端的位置进入cmake源码解压后的文件夹 ,解压和终端位置进入cmake文件夹都可以鼠标双击操作。然后在cmake文件夹内运行以下命令。
./configure
sudo make
sudo make install
source ~/.bashrc
最后运行
cmake --version
终端是这样的
3. 开发工具支持C++11
检查gcc版本
gcc -v
我看到网上有大佬说gcc4.7才开始支持C++11,总之我不太懂怎么得出的结论,但是我输出的是5.4版本,所以就这样吧。。