signed

QiShunwang

“诚信为本、客户至上”

ubuntu18.04 、ros-melocdic 驱动 Azure Kinect dk 相机

2021/4/26 15:28:10   来源:

ubuntu18.04 、ros-melocdic 驱动 Azure Kinect dk 相机

设备 NUC i7 Azure Kinect dk 相机
系统:ubuntu18.04 ros melodic

参考博客:
主要参考:
ubuntu18.04使用azure kinect
重点!!!: ubuntu16.04上的安装Kinect Azure
Azure-Kinect ROS版本在ubuntu16.04上的安装

辅助参考:
ubuntu16.04安装配置azure_kinect驱动和ros驱动
ubuntu16.04\18.04安装Azure Kinect SDK+配置ros版 超全详细踩坑记录
ubuntu16.04/ubuntu18.04 Azure Kinect SDK安装过程常见问题记录
Azure Kinect SDK ubuntu安装脱坑指南

ubuntu18.04驱动官方SDK

1.下载官方SDK包

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

2.libdepthengine.so.2.0 下载

1.下载文件

下载网址: https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/
在该网页中找到lib4a1.2/ , 打开后下载xxx.deb 文件

2.解压deb文件

解压deb文件

dpkg -X ./xxx.deb extract

在解压后的文件中找到 libdepthengine.so.2.0
在这里插入图片描述

3.解压deb文件

将该文件复制到系统的/usr/lib/x86_64-linux-gnu目录下
在第二步含有libdepthengine.so.2.0文件的文件夹下打开终端复制

sudo cp ./libdepthengine.so.2.0 /usr/lib/x86_64-linux-gnu/

3.依赖安装

进入Azure-Kinect-Sensor-SDK文件,执行如下命令,安装依赖

sudo ./script/bootstrap-ubuntu.sh

如果遇到有些依赖安装不成功的情况,打开script/bootstrap-ubuntu.sh文件,尝试单个依赖进行安装,安装过程中,可能存在依赖关系出问题的情况,按照如下命令修复后继续安装完所有的依赖即可。

sudo apt-get install -f

4.升级cmake版本

该SDK要求的cmake版本在3.9以上,可以查看下自己的cmake版本(cmake --version),如果不满足则进行升级。

1.下载cmake

wget https://cmake.org/files/v3.14/cmake-3.14.0.tar.gz

2.解压后进行编译安装,进入解压后的文件夹

./bootstrap
make -j8
sudo make install

最后,查看当前的版本

cmake --version

5.编译安装Azure-Kinect-Sensor-SDK

cd   Azure-Kinect-Sensor-SDK
mkdir build
cd build
cmake .. -GNinja

ps:cmake … -GNinja是生成ninja的配置,ninja是一个小型的编译系统,并行编译,速度比较快

完成后,执行

ninja

6.安装相关环境

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

7.启动k4aviewer

连接相机,仍然是在build文件夹下,启动查看器

sudo ./bin/k4aviewer

注意!一定要加上sudo,不然权限不够
在这里插入图片描述
将相机串口型号写进rule脚本里,使得权限更高,免sudo

sudo cp    /Azure-Kinect-Sensor-SDK/scripts/99-k4a.rules /etc/udev/rules.d/

安装ROS Melodic 版本的azure kinect

主要参考博客:
ubuntu16.04\18.04安装Azure Kinect SDK+配置ros版 超全详细踩坑记录
ubuntu16.04安装配置azure_kinect驱动和ros驱动

1、下载ROS驱动

cd  catkin_ws/src
 git clone https://github.com/microsoft/Azure_Kinect_ROS_Driver.git

2、收集库文件

下载库

从 https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/
地址中下载 两个deb包(libk4a1.2-dev/ 和libk4a1.2/)
在这里插入图片描述

在工作空间中的 /Azure_Kinect_ROS_Driver 里 创建文件夹:

cd  Azure_Kinect_ROS_Driver
mkdir -p ext/sdk

ext/sdk 中的结构是:

.\ext\sdk\
          bin\
          include\
          lib\

ext\sdk\bin: 在之前编译安装的Azure-Kinect-Sensor-SDK/build/文件夹中有个bin文件夹,拷贝到sdk文件夹中

ext\sdk\include: SDK源码里的include文件夹和从deb文件里提取出的include文件夹合并,拷贝过来

ext\sdk\lib: 从deb文件里提取出的两个lib文件夹合并,拷贝过来

在这里插入图片描述

3、修改源码

错误如下所示,头文件声明的问题:

ERROR:
k4a_ros_device.h:166:8: error: ‘atomic_int64_t’ in namespace ‘std’ does not name a type
std::atomic_int64_t last_capture_time_usec_;
cd   catkin_ws/src/Azure_Kinect_ROS_Driver/include/azure_kinect_ros_driver/k4a_ros_device.h

sudo cp /Azure-Kinect-Sensor-SDK/scripts/99-k4a.rules /etc/udev/rules.d/在这里插入图片描述

4、编译

回到工作空间

catkin_make
catkin_make install

5、报错

错误1:k4a 版本不匹配

k4a 的版本不匹配问题,最低要求版本是1.3,现存版本是1.2,需要升级
在这里插入图片描述
删除1.2版本

sudo apt-get remove  libk4a1.2
sudo apt-get  remove k4a-tools 

下载1.3版本

sudo apt-get  install libk4a1.3-dev
sudo apt-get  install  k4a-tools 

错误2:[2021-04-26 11:45:51.672] [error] [t=11725] /__w/1/s/extern/Azure-Kinect-Sensor-SDK/src/sdk/k4a.c (133): depthmcu_create(index, &device->depthmcu) returned failure in k4a_device_open()

[ERROR] [1619408751.672081450]: Failed to open K4A device at index 0
[ERROR] [1619408751.672105885]: Failed to open a K4A device. Cannot continue.
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210426151937808.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_### 4、编译aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTI4MTE1MQ==,size_16,color_FFFFFF,t_70)

串口权限没被打开,把串口芯片型号写进rules脚本中

sudo cp    /Azure-Kinect-Sensor-SDK/scripts/99-k4a.rules /etc/udev/rules.d/

6、继续编译

回到工作空间

catkin_make
catkin_make install

运行roslaunch

source ./devel/setup.bash
roslaunch azure_kinect_ros_driver driver.launch

在这里插入图片描述