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://www.icode9.com/i/ll/?i=20210426151937808.png?,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