在陈述问题简单回顾下ZED SDK安装的步骤
ZED的运行需要显卡支持,cuda加速,因此需要提前安装好显卡驱动以及对应的cuda和cudnn,基础工作在此不再赘述,以下步骤默认已经完成上述准备工作。
建议新建一个虚拟环境以限定ZED使用的python环境,终端执行:conda create -n zed python=3.8
ZED SDK下载
下载链接:ZED SDK(需墙科学上网,如果没有阶梯的话推荐使用:进步的阶梯)
请根据Ubuntu版本选择驱动,驱动版本建议选择3.7或者3.8的版本,本文仅尝试过这两个版本,4.X的还没尝试,按需选择!
赋权限
下载好SDK之后需要赋权限,在文件所在目录打开终端执行
bash
sudo chmod +x ZED_SDK_此处换成你的ZED SDK名称
终端继续执行命令进入环境 :conda activate zed
继续执行安装命令 :./ZED_SDK_此处换成你的ZED SDK名称
执行过程中键入"q"之后全部默认回车或者键入"y",直到最后一次"是否安装ZED API",选择"n"。
此时进入到/usr/local/zed/
目录下,此时会有一个"get_python_api.py"文件,执行conda activate zed
进入环境之后,执行python get_python_api.py
此时会在终端开始下载ZED API,但是基本都以失败告终,此时需要点击终端出现的下载链接,在浏览器单独下载,下载之后离线安装!
执行:pip install xxx此处换成你下载文件的名称.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
至此,ZED SDK安装完成!接下来插上ZED检查是否可以正常打开,注意接USB3.0的口!!!
出现问题:
一切都没那么顺利!
在终端执行ZED_Explorer
或ZED_Depth_Viewer
等开启工具都出现"核心已转储"的闪退现象,此时根据官网提供的自检工具查看,执行ZED Diagnostic
出现了一下情况
报错打印:
Loading ZED binaries : /usr/local/zed/lib/
libsl_zed.so: undefined symbol:
libusb_set_auto_detach_kernel_driver
CUDA version:V11.7.64
这个工具可用来检查显卡安装、USB连接等问题,显示结果可看出ZED SDK自检不通过,且当前界面也出现闪退情况!
问题分析:
开始以为是基础设施与ZED SDK不符合,尝试换显卡版本,cuda版本,也尝试过ZED SDK3.7和3.8,最终都没能解决。虽然注意到到libusb_set_auto_detach_kernel_driver这个报错,但是所用的电脑的7七八个串口都在正常使用,不应该是libusb的问题,最终是在无奈,尝试重新安装一波,且之前配置过的电脑安装ZED SDK时也不需要安装libusb这玩意。但是能尝试的都尝试了,只能抱着试试的心态去了。
安装libusb
下载链接:libusb下载(需墙科学上网)
解压:tar -jxvf libusb-1.0.26.tar.bz2
依次执行以下命令:
bash
cd libusb-1.0.26/
bash
sudo apt-get install lib
键入"y"
bash
sudo apt-get install libudev-dev
执行sudo ./configure
bash
sudo make install
最后进行验证
依次执行:
bash
cd examples/
bash
sudo make listdevs
bash
sudo ./listdevs
如若出现下图内容证明安装完成
至此安装好libusb,再次执行自检命令:ZED Diagnostic
将出现一下
出现这个界面后大功告成了,将可以正常使用ZED!