一些参考:
1.官网教程Azure-Kinect-Sensor-SDK
官网教程Azure_Kinect_ROS_Driver
2.Azure Kinect SDK Ubuntu 16.04 18.04安装配置方法
3、ubuntu16.04安装配置azure_kinect驱动和ros驱动
2020.3.13更新,因为疫情被迫在自己电脑上重复一遍这个过程,回来填坑+系统记录一下遇到的所有问题
注:其实网上很多教程的操作都有些冗余,如果版本一致的话,建议直接按照官网教程走,遇到问题再去查。
执行官网的教程配置存储库、安装包,然后运行sudo /usr/bin/k4aviewer
即可使用。但是如果
If you are making changes to the SDK, you can build your own copy of the SDK from source
我们要配置ros版,就得按照下面的步骤啦。
1、在官网下载Azure Kinect SDK源码驱动包
git clone 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、下载依赖项目
在 Azure-Kinect-Sensor-SDK文件夹下
sudo ./scripts/bootstrap-ubuntu.sh
如果直接按照教程运行bootstrap.sh脚本,有一些依赖项可能无法下载,导致后面操作出现一些问题。可在这一步直接打开脚本,手动sudo apt install
确保所有依赖项都成功安装,不然后续cmake时会报错。
3、
Kinect SDK的编译要求cmake在3.9以上,安装好后检查cmake版本
cmake --version
不符合要求的话安装新版本3.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
4、修改url
在cmake时候需要克隆一些文件
打开Azure-Kinect-Sensor-SDK文件夹,ctrl+h打开隐藏显示项,找到.gitmodules文件或者直接运行gedit .gitmodules打开该文件
可以看到libyuv的Url在国外,因此将其改为github上的链接。
https://github.com/lemenkov/libyuv.git
另一种方法是,直接在https://github.com/lemenkov/libyuv.gitgit clone下来,并将clone下来的libyuv文件夹改名为src,放到extern/libyuv/里。
5、进入到Azure-Kinect-Sensor-SDK文件夹中
mkdir build
cd build
cmake .. -GNinja
可以看到cmake的这个过程就是按照cmakelists里执行的,如果哪一步遇到了问题,可能是相应的包缺失,可以参考2中提到的方法手动安装一次。
这一步在克隆的过程中可能会报错,原因可能是缓冲区溢出或者网速
Error 克隆失败,两个解决办法
(1)修改hosts文件
(2)找到github的镜像库【码云】上的url替换github,亲测速度从10k提升到了1M
就不展开写了,见知乎这个回答
这里cmake还可能报错
参照官网和其他博客的解决办法
ninja
然后就可以打开了!
sudo /usr/bin/k4aviewer
【ERRIR1】
libusb:error [libusb_get_bos_descriptor] failed to read BOS(-1)
emm 就是usb插拔的问题,重启一下kinect就好了
【ERROR2】
failed to start device!
If you unplugged the device,you must close and reopen the device.
看终端的报错
安装一下相关程序
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
我这边解决了
照理来说,无法获取深度流图像的问题,通过上面的命令也能解决。
【ERROR3】
获得不了彩色图和深度图
7.去掉管理员权限也能启动
进入Azure Kinect sdk 源码根目录中 scripts 文件夹,复制99-k4a.rules文件至/etc/udev/rules.d/
cp scripts/99-k4a.rules /etc/udev/rules.d/.
注意!!!
如果后续还要配置ros版本的话,这一步一定要做,因为ros是不考虑你有没有权限的,直接就报错然后无法启动k4a
Error :[2020-02-26 22:39:38.407] [critical] [t=2928] /__w/1/s/extern/Azure-Kinect-Sensor-SDK/src/usbcommand/usbcommand.c (360): find_libusb_device(). libusb device(s) are all unavalable. Is the device being used by another application?
[ERROR] [1564506111.686955539]: Failed to open K4A device at index 0
[ERROR] [1564506111.687012324]: Failed to open a K4A device. Cannot continue.
**
**
官方教程https://github.com/microsoft/Azure_Kinect_ROS_Driver/blob/melodic/docs/building.md
官方里提到的ROS Melodic版也就是对应了ubuntu18.04下的ros,按照官方教程就可以顺利完成安装!不用
注意版本问题:
1、下载ros驱动
在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/地址里把把libk4a1.3/里的deb文件和k4a1.3-deb/里的deb文件下载下来并解压
在catkin_ws/src/Azure_Kinect_ROS_Driver 里 创建文件夹mkdir -p ext/sdk
.
结构如下
.\ext\sdk\
bin\
include\
lib\
bin文件夹: 把编译SDK时build文件夹里面的那个bin文件夹拷贝过来
include文件夹:SDK源码里的include文件夹和从deb文件里提取出的include文件夹合并,拷贝过来
lib文件夹:从deb文件里提取出的两个lib文件夹合并,拷贝过来
3、
cd catkin_ws
catkin_make
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_;
头文件声明的问题
打开catkin_ws/src/Azure_Kinect_ROS_Driver/include/azure_kinect_ros_driver/k4a_ros_device.h
修改如下所示
如果报错catkin_make: command not found 让你用sudo apt install catkin
重装
先看看是不是环境变量没设好!
source /opt/ros/melodic/setup.bash
正常来说catkin都是自带装好的,不要去网上搜什么用apitude装什么的,没用!
其他教程后面还有一步catkin install
但是我会报错
Parse error.Function missing ending ")".
Instead found unterminated string with text ")
不管他,后面没影响
以上是ubuntu18.04的过程,16.04会有问题
报错
这里是因为我们下的是1.2版本的k4a,打开报错里提到的那个cmakelist改一下版本就行
4、
然后
source ./devel/setup.bash
roslaunch azure_kinect_ros_driver driver.launch
都没有报错的话 看看rostopic list有没有kinect的节点
然后命令行输入rviz打开
就成功了!!!
ubuntu16.04可能则需要进行一些修改
总之,我写的真的是手把手教学了,希望像我一样的小白们能成功,也希望过几年我会嘲笑自己现在,配置这点东西就要这么多天,这点报错都要查那么久。
欢迎讨论!