Microsoft Azure Kinect DK 深度相机在 Ubuntu 16.04 系统下的安装,以及代码开发所需 CMakeLists.txt 文件编写示例


本人计划安装 v1.3.0 版本,但是git clone后,发现在其目录下并无该文件 “./script/bootstrap-ubuntu.sh”。
所以按照博客中所述,改为安装 1.2.0 版本的sdk。
1 - 已安装成功,可运行 k4aviewer。
2 - 另外,按照下文所述安装方法和 CMakeLists.txt 的编写建议,已成功编译自定义程序(用于数据采集等),连接运行相机没问题。
2020.03.12


这里我安装的是1.2.0版本的sdk。

1.下载sdk

git clone -b v1.2.0 https://github.com/microsoft/Azure-Kinect-Sensor-SDK.git

2.下载libdepthengine.so.2.0文件

到这个网站中下载libk4a1.2里的deb文件:https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/

解压缩deb文件,获得libdepthengine.so.2.0,然后把libdepthengine.so.2.0复制到/usr/lib/x86_64-linux-gnu/文件夹中

3.下载依赖项

cd Azure-Kinect-Sensor-SDK
sudo ./script/bootstrap-ubuntu.sh

注意!!不知道为什么,直接运行它的脚本,有些依赖项可能下载不下来(即并没有安装脚本中的全部内容)。建议打开该脚本,直接按着脚本,自己手动进行apt-get install。

下面附上文件“bootstrap-ubuntu.sh”中的内容
#!/usr/bin/env bash

# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.

# Setup machine to build amd64 and i386
sudo dpkg --add-architecture amd64

# Update list of packages
sudo apt update

# Install tools needed to build
sudo apt install -y \
    pkg-config \
    ninja-build \
    doxygen \
    clang \
    gcc-multilib \
    g++-multilib \
    python3 \
    git-lfs \
    nasm \
    cmake

# Install libraries needed to build
sudo apt install -y \
    libgl1-mesa-dev \
    libsoundio-dev \
    libvulkan-dev \
    libx11-dev \
    libxcursor-dev \
    libxinerama-dev \
    libxrandr-dev \
    libusb-1.0-0-dev \
    libssl-dev \
    libudev-dev \
    mesa-common-dev \
    uuid-dev

4.Kinect SDK的编译要求cmake在3.9以上,若cmake版本不够需要安装新的cmake,这里我们安装cmake3.14.5

wget https://cmake.org/files/v3.14/cmake-3.14.5.tar.gz
tar -xzvf cmake-3.14.5.tar.gz
cd cmake-3.14.5/
./bootstrap
make -j8
sudo make install
cmake --version

看一下cmake版本是否为3.14.5

5.进入到Azure-Kinect-Sensor-SDK文件夹中

mkdir build
cd build
cmake ..

cmake时会自动下载一些文件,但是extern/libyuv/src这个文件下载不下来,因为它的下载地址在墙外

libyuv墙内的下载地址在https://github.com/lemenkov/libyuv

直接从https://github.com/lemenkov/libyuv里把它git clone下来,并将clone下来的libyuv文件夹改名为src,放到extern/libyuv/里。

然后继续

cmake ..

注,从上面这行开始( 使用 cmake 而没有加上 -GNinja )就是分水岭。网上很多帖子,包括我参考的博客,都是按照下面的方式来进行编译安装的。这样确实没问题,可以安装成功SDK,并启动k4aviewer。

# 其他帖子中的方法
cmake .. -GNinja
ninja

但是,但是,但是
在接下来编写 CMakeLists.txt 文件时,编译始终无法通过,总是缺东西(也可能是我没整明白)。
实验表明,我在Ubuntu 18.04 系统下按照官方说明安装了SDK,并编写 CMakeLists.txt ,成功编译并运行了自定义程序。整套流程是可行了。
但同样的 CMakeLists.txt,在这里(Ubuntu16.04,如果按照网上的方法)始终是无法成功的。
所以,这里按照我所述的方法,也就是通常的 cmake 编译的方式,就一切ok。 CMakeLists.txt 文件的编译示例放在本文最后

6.cmake成功后编译并安装

make
sudo make install

从这以下,继续照搬网上的方法,没有区别。

7.安装以下程序

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9
sudo apt-get upgrade libstdc++6

8.然后就可以启动k4aviewer了

sudo ./bin/k4aviewer

接上 KinectDK 设备看看效果吧。

注意!一定要加上sudo,不然权限不够,如果不想使用sudo,那就

sudo cp scripts/99-k4a.rules /etc/udev/rules.d/

然后断开 KinectDK 连接,再重连,就可以不使用sudo打开k4aviewer了。

 

参考博客:
https://blog.csdn.net/u010497704/article/details/102542570
https://blog.csdn.net/weixin_41628710/article/details/98627332

最后,附上 CMakeLists.txt 示例

# cmake needs this line
cmake_minimum_required(VERSION 2.8)
 
# Define project name
project(WDKinectDKDemo)
 
# Kinect DK相机
find_package(k4a REQUIRED)# 关键。因为后面的target_link_libraries中用到了k4a::k4a,所以在这儿加了一行,否则会显示未定义声明
# Find OpenCV
find_package(OpenCV REQUIRED)
 
# Add includes
include_directories( ${CMAKE_CURRENT_LIST_DIR} ) # 包含当前目录下我的头文件
include_directories( ${OpenCV_INCLUDE_DIRS} )
 
# Declare the executable target built from your sources
add_executable(
	WDKinectDKDemo 
	main_demo_Linux.cpp 
)
 
# Link your application with other libraries
target_link_libraries(WDKinectDKDemo k4a::k4a ${OpenCV_LIBS})
 
 
# Enable C++11
set(CMAKE_CXX_FLAGS "-std=c++11")
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
 
 
 
# WD
# 2019/11/29

关于上面的解释和尝试过程,可以参考我的另外一篇博客:
《Azure Kinect DK + Ubuntu 18.04,从相机获取图像和点云数据》,
https://blog.csdn.net/denkywu/article/details/103305714

其中,最关键的有关 KinectDK 配置的其实就两句话:

# 相机驱动相关
find_package(k4a REQUIRED)
# 链接
target_link_libraries(ProjectName k4a::k4a)

完。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值