Advertisement

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.

先激动一下

  1. 按照官方文档的说明要求,核对自己平台的硬件配置是否符合标准。
  2. 怀着激动的心情,解开机箱。

Dependence

首先,【坑1

坑2

坑3

Before Build

  1. docs/building.md中有记载相应步骤.

  2. 但是,在这之前你需要修改个东西:(坑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相关的几行

  3. 删除相关东西 :
    切换到.git目录;
    如果存在libyuv相关配置文件,使用gedit进行编辑;
    如果modules目录不存在,切换回父目录;
    否则,首先删除extern/libyuv/src目录,然后切换到父目录;

  4. 后续清理 :
    执行以下命令:git rm --cached extern/libyuv/src
    确认操作:git ls-files --stage www/topsdk
    如果出现提示,请优先备份当前项目,然后删除.gitmodules。操作步骤如下:

  5. 备份当前项目

  6. 删除.gitmodules

  7. 完成清理操作

第4点:添加新地址:使用git submodule add命令,将地址git@github.com:lemenkov/libyuv.git添加到extern/libyuv/src目录下。

第5点:恢复依赖项:如果之前删除过.gitmodules文件,请确保将.gitmodules文件夹中除libyuv相关的依赖项外的所有其他内容复制回来,并删除与libyuv相关的部分。

Build

  1. 按官方文档编译.
  2. 如果是在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启动设备,需要进行如下操作:

  1. cp scripts/99-k4a.rules /etc/udev/rules.d/.
  2. 重连设备.
在这里插入图片描述

多设备启动时第二设备报错

在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版本。
重启电脑以完成设置生效。

全部评论 (0)

还没有任何评论哟~