ubuntu16.04\18.04安装Azure Kinect SDK+配置ros版 超全详细踩坑记录

2023-11-11

一些参考:
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版,就得按照下面的步骤啦。

二、安装配置azure_kinect驱动

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还可能报错

参照官网其他博客的解决办法

在这里插入图片描述
6、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.

**

三、安装ROS版本的azure kinect

**
官方教程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可能则需要进行一些修改

总之,我写的真的是手把手教学了,希望像我一样的小白们能成功,也希望过几年我会嘲笑自己现在,配置这点东西就要这么多天,这点报错都要查那么久。
欢迎讨论!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu16.04\18.04安装Azure Kinect SDK+配置ros版 超全详细踩坑记录 的相关文章

随机推荐

  • NLP系列(2)_用朴素贝叶斯进行文本分类(上)

    作者 寒小阳 龙心尘 时间 2016年1月 出处 http blog csdn net longxinchen ml article details 50597149 http blog csdn net han xiaoyang arti
  • 【OpenMMLab实践】01MMSegmentation官方教程实现过程记录(mmcv,mmsegmentation,torch)

    本文主要根据mmsegmentation的官方教程 教程链接在这里 并且看了b站的视频 一步步实现代码中的demo教程 主要包含以下两方面的功能 通过MMSeg加载预训练好的权重 输入单张图片 实现分割 并可视化分割图 自定义数据集 修改配
  • 注意力&Transformer

    注意力 注意力分为两步 计算注意力分布 alpha 其实就是 打分函数进行打分 然后softmax进行归一化 根据 alpha 来计算输入信息的加权平均 软注意力 其选择
  • nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping:

    原因是使用idea快捷键时 添加的注释为 注释里面我写了另外一条SQL 但是mybatis执行时仍然把里面的 routeId 执行了 导致报错 参数异常 需要参数两个 实际传参才只有一个 注意xml中的注释要使用 上图
  • 终于刷进去了联想官方固件

    联想官方社区 第四步 设置检验所有校验和 解决 tool dl image fail 若解决线刷时出现BROM ERROR S COM PORT OPEN FAIL 1013 教程 找不到端口 多试试吧 重启电脑 重换插口 重装驱动 注意
  • 基于netty游戏服后台搭建

    项目要转游戏开发了 所以搭个游戏服 游戏一般是长连接 自定义协议 不用http协议 BIO NIO AIO这些我就不说了 自己查资料 我现在用spring netty搭起简单的游戏服 思路 1自定义协议和协议包 2spring netty整
  • python元组列表里追加元素_Python元祖 tuple 内部列表添加元素相关

    面试python遇到的一道数据类型基础题 我们都知道python中不可变类型有tuple 但是如果tuple里面的列表增加元素会怎么样呢 先看代码 a 1 2 3 4 5 print a 3 4 5 a 3 append 6 print a
  • 学习笔记(5):MySQL数据库从入门到实战应用-数据完整性

    立即学习 https edu csdn net course play 27328 362521 utm source blogtoedu 实体完整性 要求每张表都有唯一标识符 每张表主键字段不为空且不能重复 唯一性约束 主键约束 标识列
  • MVC框架增删改查

    mvc对表单内容的增删改查 1 首先把所需的包导入项目内 2 连接数据库的帮助类DBAccess package com Liuyujian Dao import java io InputStream import java sql Co
  • 邮件服务器-postfix服务器

    Postfix 是一种电子邮件服务器 它是由任职于IBM华生研究中心 T J Watson Research Center 的荷兰籍研究员Wietse Venema为了改良sendmail邮件服务器而产生的 最早在1990年代晚期出现 是一
  • Java设计模式之策略模式+工厂模式(反射和注解)

    现在我们有一个需求 我们通常的实现方式是这样的 假设有3种会员 分别为会员 超级会员以及金牌会员和普通顾客 针对不同类别的会员 有不同的打折方式 并且一个顾客每消费10000就增加一个级别 以上四种级别分别采用原价 普通顾客 九折 会员 八
  • [Android] Toast问题深度剖析(二)

    欢迎大家前往云 社区 获取更多腾讯海量技术实践干货哦 作者 QQ音乐技术团队 题记 Toast 作为 Android 系统中最常用的类之一 由于其方便的api设计和简洁的交互体验 被我们所广泛采用 但是 伴随着我们开发的深入 Toast 的
  • ORA-00936: missing expression

    关注微信公共号 小程在线 关注CSDN博客 程志伟的博客 造成这个错误的原因是 选取的最后一个字段与from之间有逗号 解决方法 将字段与from之间的逗号去掉
  • Spring MVC使用JSON的过程与步骤

    活动地址 CSDN21天学习挑战赛 目录 JSON数据交互 RESTful支持 JSON数据交互 1 用eclipse创建一个动态web项目 将项目依赖的jar包放到lib目录下 2 在WEB INF目录下创建web xml 对Spring
  • 关于JPEG的那点事儿:JPEG原理篇

    前言 本文其实于差不多正好1年前写成 是关于JPEG的那点事儿的补充 但是由于实战篇一直烂尾 拖到现在 前几天看到Google发了个JPEG新算法 说是可以将JPEG的体积同质量情况下再压缩35 突然想起了这文了 为了说清楚Google为什
  • python题目55:单词接龙

    单词接龙的规则是 可用于接龙的单词首字母必须要与前一个单词的尾字母相同 当存在多个首字母相同的单词时 取长度最长的单词 如果长度也相等则取词典序最小的单词 已经参与接龙的单词不能重复使用 现给定一组全部由小写字母组成的单词数组 并指定其中的
  • 勿以专家自居

    对于权威 我心存芥蒂 我在 StrongOpinions Weakly Held 观点鲜明 但不固执己见 一文中曾经说过 当我了解到别人把我视为专家或者权威 而不是像伙伴一样的志趣相投者时 我就会觉得非常困扰 如果非要说我在迄今为止的职业生
  • PCL学习之点云可视化:坐标字段、随机、单一颜色、法向量

    pcl中几种常见的点云渲染方式 1 颜色区别深度 此方法在PointCloudColorHandlerGenericField类中实现 该将不同的深度值显示为不同的颜色 实现以颜色区分深度的目的 PointCloudColorHandler
  • TCP/IP校验和计算算法

    ICMP IP UDP TCP报头部分都有checksum 检验和 字段 ICMP和IP报头校验和的计算都很简单 过程如下 1 把校验和字段置为0 2 对IP头部中的每16bit进行二进制求和 3 如果和的高16bit不为0 则将和的高16
  • ubuntu16.04\18.04安装Azure Kinect SDK+配置ros版 超全详细踩坑记录

    一些参考 1 官网教程Azure Kinect Sensor SDK 官网教程Azure Kinect ROS Driver 2 Azure Kinect SDK Ubuntu 16 04 18 04安装配置方法 3 ubuntu16 04