Azure Kinect SDK ubuntu安装脱坑指南
Azure Kinect SDK在Ubuntu上的安装指南涵盖多个关键步骤,包括平台支持(Ubuntu 16.04和18.04)、依赖安装(如克隆SDK源码、下载必要的第三方库)、编译前的准备工作(如修改git模块、处理编译错误)、工具安装(如k4a工具的安装)、不使用root启动设备的方法以及多设备启动时的解决办法(如调整USB缓存大小)。指南还提到了一些常见问题和解决方案,如编译时的错误处理和设备启动时的报错问题。
Azure Kinect SDK ubuntu安装脱坑指南
-
平台
-
先激动一下
-
Dependence
-
Before Build
-
- Build
-
工具安装(包括Direct Energy)
- 非root状态下
- 当启动多个设备时,第二设备出现故障
平台
ubuntu: 16.04, 18.04.
先激动一下
- 按照官方文档的说明要求,核对自己平台的硬件配置是否符合标准。
- 怀着激动的心情,解开机箱。
Dependence
首先,【坑1
坑2
坑3
Before Build
-
docs/building.md中有记载相应步骤.
-
但是,在这之前你需要修改个东西:(坑3)一个submodule的仓库地址. 在官方给的一个submodule地址:
libyuv是在墙外,https://chromium.googlesource.com/libyuv/libyuv, 你可以ping一下,如果能ping通,就不用进行后续蛋疼的操作了, 否则需要将该git submodule的仓库地址改为github上的地址git@github.com:lemenkov/libyuv.git. 修改步骤如下:
1. 删掉子模块 :
rm -rf extern/libyuv/src
gedit ./gitmodules删除libyuv相关的几行 -
删除相关东西 :
切换到.git目录;
如果存在libyuv相关配置文件,使用gedit进行编辑;
如果modules目录不存在,切换回父目录;
否则,首先删除extern/libyuv/src目录,然后切换到父目录; -
后续清理 :
执行以下命令:git rm --cached extern/libyuv/src
确认操作:git ls-files --stage www/topsdk
如果出现提示,请优先备份当前项目,然后删除.gitmodules。操作步骤如下: -
备份当前项目
-
删除.gitmodules
-
完成清理操作
第4点:添加新地址:使用git submodule add命令,将地址git@github.com:lemenkov/libyuv.git添加到extern/libyuv/src目录下。
第5点:恢复依赖项:如果之前删除过.gitmodules文件,请确保将.gitmodules文件夹中除libyuv相关的依赖项外的所有其他内容复制回来,并删除与libyuv相关的部分。
Build
- 按官方文档编译.
- 如果是在16.04上编译
ninja时,我还出现了如下报错 (18.04没有该错误 ):../examples/viewer/opengl/viewerwindow.cpp:73:15: error: ‘runtime_error’ is not a member of ‘std’
../examples/viewer/opengl/viewerutil.h:23:15: error: ‘runtime_error’ is not a member of ‘std’
将#include <stdexcept>加到对应文件即可.
Tools Installation(Including DE)
16.04直接跳到步骤3
按照官方链接的指示,添加Kubernetes仓库至系统中:$KUBERNETES_WAREHOUSE。官方链接为:https://docs.microsoft.com/windows-server/administration/linux-package-repository-for-microsoft-software
安装Kubernetes相关工具包:sudo apt install k4a-tools; sudo apt install libk4a1.1-dev。此操作完成后,系统将能够正常运行Kubernetes相关服务
完成上述操作后,需要将18.04系统中的libdepthengine.so.1.0文件拷贝至16.04系统中的指定目录。同时,还需将16.04系统中的/usr/local/lib/x86_64-linux-gnu/libstdc++.so.6文件拷贝至18.04系统中以便后续使用。如果运行sudo ./bin/k4aviewer失败,可以尝试更新stdc++版本并切换gcc版本
我分享了文件:[链接],提取码为 pdbv。将libdepthengine.so.1.0文件放置于/usr/lib/x86_64-linux-gnu/目录中。如果运行sudo ./bin/k4aviewer仍失败,建议更新stdc++6并切换至4.9版本的gcc
Without Root
要想不用root启动设备,需要进行如下操作:
cp scripts/99-k4a.rules /etc/udev/rules.d/.- 重连设备.

多设备启动时第二设备报错
在Linux环境下同时运行多个Azure Kinect设备时,第二个设备启动时可能会出现libusb报错信息。经过调查发现,这是由于系统默认配置导致的USB IO缓存容量不足(仅支持16MB),建议将USB IO缓存容量进行调整,以解决启动多个设备时的libusb错误问题。具体操作方法如下:
修改GRUB参数文件. 使用命令sudo gedit /etc/default/grub编辑GRUB命令行参数文件,将GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"更改为GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.usbfs_memory_mb=128",并保存修改。
执行GRUB更新命令sudo update-grub以应用最新的GRUB版本。
重启电脑以完成设置生效。
