ZED2相机使用环境搭建(Ubuntu20.04+NVIDIA-470驱动+CUDA-11.4)

10 篇文章 5 订阅

一 安装标定工具

1 安装Kalibr
使用kalibr工具标定ZED2双目相机

1)安装依赖项

sudo apt-get install python-setuptools python-rosinstall ipython libeigen3-dev libboost-all-dev doxygen libopencv-dev ros-melodic-vision-opencv ros-melodic-image-transport-plugins ros-melodic-cmake-modules software-properties-common software-properties-common libpoco-dev python-matplotlib python-scipy python-git python-pip ipython libtbb-dev libblas-dev liblapack-dev python-catkin-tools libv4l-dev

2)安装igraph

sudo pip install python-igraph --upgrade

若出现错误,可尝试

sudo add-apt-repository ppa:igraph/ppa   
sudo apt-get update                       # update your package database 
sudo apt-get install python-igraph

这个方法会自动帮你下载igraph的依赖包,完成之后,查看目录/usr/lib/python2.7/dist-packages/就可以看到python-igraph安装成功.

3)创建工作区间

mkdir -p ~/kalibr_workspace/src
cd ~/kalibr_workspace
source /opt/ros/melodic/setup.bash
catkin init
catkin config --extend /opt/ros/melodic
catkin config --merge-devel # Necessary for catkin_tools >= 0.4. 
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release

4)下载源码

cd ~/kalibr_workspace/src
git clone https://github.com/ethz-asl/Kalibr.git

5)编译源码

cd ~/kalibr_workspace
catkin build -DCMAKE_BUILD_TYPE=Release -j4

时间有点长,耐心等待它完成。

**2 下载编译code_utils、imu_utils **
用imu_utils标定IMU,依次安装编译code_utils、imu_utils。

注意,不要同时把imu_utils和code_utils一起放到src下进行编译。
由于imu_utils 依赖 code_utils,所以先把code_utils放在工作空间的src下面,进行编译。然后再将imu_utils放到src下面,再编译。

~/imu_utils/src$ git clone  https://github.com/gaowenliang/code_utils
catkin_make

编译时出现编译错误,路径错误

解决办法:
在CMakeLists.txt中加入包含路径:include_directories( “include/code_utils”)

重新编译,出现
在这里插入图片描述解决:
执行指令sudo apt-get install libdw-dev

再次编译,通过。

~/imu_utils/src$ git clone  https://github.com/gaowenliang/imu_utils
cd ../
catkin_make

编译成功,此过程完成。

二 安装CUDA(直接跳到 三 吧,这部分就是坑,呜呜呜~ 强烈建议全部下载文件手动安装)

此处加段CUDA介绍

统一计算设备架构(Compute Unified Device Architecture, CUDA),是由NVIDIA推出的通用并行计算架构。解决的是用更加廉价的设备资源,实现更高效的并行计算。

cuda是英伟达(NVIDIA)推出的——这个英伟达是何方神圣?没听说过英伟达,也应该听说过GPU了吧。没错,提出GPU概念的,正是英伟达。和中央处理器(Central Processing Unit, CPU)相对,图形处理器(Graphics Processing Unit, GPU)是显卡的核心芯片。而cuda正是暴露了英伟达开发的GPU的编程接口。

几乎所有的编程语言,不使用特定框架,都只能实现CPU编程——std::thread也是将线程开在CPU中。而不同于每一位程序员都接触过的CPU编程,GPU编程可以使用更多的流处理器、更多的线程数。

1 下载
下载链接的页面中有对应的cuda版本,这里我选择的是cuda 10.2、ZED SDK for Ubuntu 18这两个驱动版本。
ZED2 SDK 官方网站:https://www.stereolabs.com/developers/release/
CUDA10.2下载链接:https://developer.nvidia.com/cuda-10.2-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=deblocal

2 安装Nvidia驱动
快捷安装,打开软件和更新->附加驱动,自动搜索显卡驱动,选择其中一个驱动版本;点击应用更改等待安装完成,重启即可;(如下图)
在这里插入图片描述3 安装CUDA
在这里插入图片描述1)按照下载界面的命令行安装。

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-10-2-local-10.2.89-440.33.01/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

最后一步安装,如果一直回车是同样的界面,可尝试复制粘贴或打入sudo gedit /etc/apt/sources.list再回车也去问题就解决了,因为安装过程出现了,进度也出现了。

在用apt-get安装软件包的时候遇到E: Sub-process /usr/bin/dpkg returned an error code (1)问题,解决方法如下:

1 cd /var/lib/dpkg/
2 sudo mv info/ info_bak          # 现将info文件夹更名
3 sudo mkdir info                 # 再新建一个新的info文件夹
4 sudo apt-get update             # 更新
5 sudo apt-get -f install         # 修复
6 sudo mv info/* info_bak/        # 执行完上一步操作后会在新的info文件夹下生成一些文件,现将    这些文件全部移到info_bak文件夹下
7 sudo rm -rf info                # 把自己新建的info文件夹删掉
8 sudo mv info_bak info           # 把以前的info文件夹重新改回

2)配置CUDA环境变量

sudo gedit ~/.bashrc
在.bashrc末尾添加两行环境变量
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
保存并退出;并执行
source ~/.bashrc

4 重启电脑,并测试CUDA

cd /usr/local/cuda-10.2/samples/1_Utilities/deviceQuery 
sudo make
./deviceQuery

显示失败

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

cudaGetDeviceCount returned 100
-> no CUDA-capable device is detected
Result = FAIL

这个原因是由于Nvidia驱动没有安装成功,关于Ubuntu18.04安装Nvidia驱动问题真是折腾了好久,埋了好多坑依旧无法解决,最终为了放过自己,选择换个系统继续,具体原因和解决过程见博客 ubuntu18.04安装NVIDIA驱动的心酸(失败)经历及解决方法(换系统成功)
在这里插入图片描述
Nvidia 驱动安装成功后,从上面的图中可以看到我的显卡最高可以支持cuda11.4,重复以上CUDA安装过程:

下载cuda:https://developer.nvidia.com/cuda-toolkit-archive

CUDA+SDK版本对应
在这里插入图片描述选择安装CUDA11.0
在这里插入图片描述

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda-repo-ubuntu2004-11-0-local_11.0.2-450.51.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-0-local_11.0.2-450.51.05-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-0-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

查看CUDA

nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Thu_Jun_11_22:26:38_PDT_2020
Cuda compilation tools, release 11.0, V11.0.194
Build cuda_11.0_bu.TC445_37.28540450_0

重启nvidia驱动不显示了,啊啊啊啊啊啊~

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver

经排查,怀疑是CUDA版本与NVIDIA驱动版本不一致导致,想到之前步骤,所以乖乖重新安装CUDA11.4版本。 原谅我的无知,安装CUDA 11.4以下(包括)版本都可以,该问题解决方案请看解决NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver

三、安装CUDA 正确姿势

Nvidia驱动安装见博客ubuntu18.04安装NVIDIA驱动的心酸(失败)经历及解决方法(换系统成功)
找到自己需要的cuda版本如下选择,最下面虚线框内会给出下载和命令下载CUDA
在这里插入图片描述

wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux.run
sudo sh cuda_11.4.0_470.42.01_linux.run

(我没遇到这个问题,建议换网络测试)第一条语句可能执行后下载到99%时,可能会报错 “S段错误”,当时搜了半天有说下载的trunk size太小巴拉巴拉的,捣鼓一通也没解决,后来猜测可能时因为文件太大了直接wget才报错的,这时我们用另一个方法进行下载
使用axel进行下载,axel是一个多线程的下载工具,具体是什么请自行百度

sudo apt install axel
# 下载cuda
# -n 50 指的是使用50个线程进行下载
axel -n 50 http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run

下载完成后进行cuda安装
cd到下载的cuda所在目录执行第二条语句

可能报错解决方案
1)如果报下面的错误提示,是因为下载的cuda出错了,重新下载再安装即可。
Extraction failed.
Ensure there is enough space in /tmp and that the installation package is not corrupt Signal caught, cleaning up

2)ubuntu 20.04LTS下安装cuda时提示/tmp空间不足问题的解决方案
网上查了一下资料,有博客说有两种原因:

1 安装包没下完整。本人在下载这个.run文件的过程中,确实多次遇到过下载到99%后突然报一个错的这种情况。(太坑了,看到报错的一瞬间整个人都裂开了)这一点上没啥特别的解决方案,就是多尝试几次,最后终于下载成功了。确保安装的错误来自第二种情况。

2就是让人心态崩溃的 tmp 上的磁盘空间不足。有博客上说新建一个文件夹,然后用软连接指向这个文件夹,本人尝试过了,也没有成功。下面说一下我的解决方案:
1.在/home下新建一个文件夹tmp。命令:sudo mkdir /home/tmp
2.官网给出的安装命令是:sudo sh cuda_11.4.0_470.42.01_linux.run。这里需要对该安装命令作一点修改,改为:

 sudo sh cuda_11.4.0_470.42.01_linux.run --tmpdir=/home/tmp/

等几十秒,成功。
正常安装的情况下,会出现下面显示:
在这里插入图片描述这是软件协议,跟普通软件安装时一样,这时输入: accept

在这里插入图片描述在Driver处敲回车,选择不安装驱动,因为之前已经安装过驱动程序,这里是因为每个cuda都会自带一套符合当前版本cuda最低要求的驱动程序,如果这里选择安装的驱动的话,在Windows上安装时会将之前安装的驱动覆盖,但是在linux上覆盖安装的话,可能会出现错误,具体没有试过,如果想试试可以自行测试。我们使用之前自己下载的驱动。

然后按方向键将光标选中最后的Install再回车,开始安装,过一会儿会显示如下:
在这里插入图片描述如果显示如上图,则表示安装完成,这时还不算安装成功,根据上面提示需要配置环境变量,进行如下操作:

# 打开.bashrc文件
gedit ~/.bashrc

在文件末尾输入如下内容并保存退出。

# 将下面的11.4替换为你的cuda版本,其他不变,如果不知道自己安装的是哪个版本,就去/usr/local/文件夹下找一下
export PATH=/usr/local/cuda-11.4/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

完事儿以后,执行如下命令更新变量,使其生效

source ~/.bashrc

在终端输入

nvcc -V

如果显示

在这里插入图片描述
至此,cuda的安装就算完成了。

惊心动魄的时候到了,关机重启
在这里插入图片描述终于终于成功啦!!!

在这里插入图片描述

  • 8
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值