1、查询Jetson设备与开发环境版本的基础信息
地址:http://www.gpus.cn/gpus_list_page_techno_support_content?id=39
2、TX2基本信息
opencv版本:
问题出现,opencv版本太高了,很多都用低版本的
解决办法是:卸载原来的,安装一个低版本的
3、安装opencv3.2
这部分可以不看
根据教程1操作,卸载原来的opencv4,结果发现默认卸载了很多ROS中的文件,后面一路安装
可能的原因是运行了
sudo apt autoremove
所以这条语句一定要慎重运行,但是已经卸载了,也没有办法了,只能一路走下去。
按照上面的教程 到编译的时候会出现问题,会很慢也一直编译不通过,所以要执行到下载了opemcv 包
重新理一下流程
1、卸载原来的opencv版本 (虽然有问题,但是没有发现如何没有后遗症的卸载)
sudo apt-get purge libopencv*
sudo apt autoremove
sudo apt-get update
2、 下载要安装的opencv版本
在opencv下载官网:https://opencv.org/releases/
下载source文件然后解压,我这里要在ros的工作的空间里使用。所以放在了catkin_ws/src里
3、 解压之后进入opencv文件,创建文件夹
mkdir release
cd release/
4、编译安装
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DBUILD_PNG=OFF \
-DBUILD_TIFF=OFF \
-DBUILD_TBB=OFF \
-DBUILD_JPEG=OFF \
-DBUILD_JASPER=OFF \
-DBUILD_ZLIB=OFF \
-DBUILD_EXAMPLES=ON \
-DBUILD_opencv_java=OFF \
-DBUILD_opencv_python2=OFF \
-DBUILD_opencv_python3=ON \
-DENABLE_PRECOMPILED_HEADERS=OFF \
-DWITH_OPENCL=OFF \
-DWITH_OPENMP=OFF \
-DWITH_FFMPEG=ON \
-DWITH_GSTREAMER=OFF \
-DWITH_GSTREAMER_0_10=OFF \
-DWITH_CUDA=ON \
-DWITH_GTK=ON \
-DWITH_VTK=OFF \
-DWITH_TBB=OFF \
-DWITH_1394=OFF \
-DWITH_OPENEXR=OFF \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-DCUDA_ARCH_BIN=6.2 \
-DCUDA_ARCH_PTX="" \
-DINSTALL_C_EXAMPLES=OFF \
-DINSTALL_TESTS=OFF \
..
make
sudo make install
然后就可以了
4、验证opencv是否安装
pkg-config opencv --modversion
显示安装opencv版本是3.2!!!
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
题外话
如果使用sudo apt install ros-melodic-desktop-full
安装的ros,那么会默认安装opencv3.2
版本到/usr/include
,/usr/lib
,/usr/share
三个目录。但是如果我们从opencv官网源码编译安装的(以最常用的opencv3.4.10为例)opencv会默认安装到usr/local
下对应的三个子目录。
(此处提醒,不要安装opencv4.0及4.0以上的版本,因为这与ros1不兼容。)待验证
ubuntu系统中一般都会安装有pkg-config
这个工具,那么派生出来的PKG_CONFIG_PATH
一般含有常用的一些库,PKG_CONFIG_PATH
其中一个路径是/usr/local/lib/pkgconfig
,我们安装opencv后为了方便调用opencv,会在usr/local/lib/pkgconfig
下生成一个opencv.pc
。所以我们如果直接输出查看opencv的版本,那么就是这个opencv.pc
指定的。