arm架构、xavier-nx-dk、ubuntu18.04 、ros-melocdic 驱动 Azure Kinect dk 相机
设备 xavier-nx-dk Azure Kinect dk 相机
系统:ubuntu18.04 ros melodic
X86架构下的设备,驱动Azure 相机可看上一篇博客:
x86 架构、ubuntu18.04 、ros-melocdic 驱动 Azure Kinect dk 相机
前言: 因为xavier-nx-dk为nvidia的arm产品,具有自带CUDA加速功能,所以本次在arm架构下驱动Azure Kinect dk相机,在SDK配置上,与x86有些许不同。
参考博客:
nvidia agx xavier 跑azure kinect DK ros
ubuntu18.04驱动官方SDK
1.下载官方SDK包
添加代码仓库:
curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
arm 下更新软件源:
sudo apt-get update -y && apt-get install curl -y
arm64下添加仓库
sudo apt-add-repository https://packages.microsoft.com/ubuntu/18.04/multiarch/prod
sudo apt-get update
x86下添加仓库,使用arm系列嵌入式板不需要添加
sudo apt-add-repository https://packages.microsoft.com/ubuntu/18.04/prod
源码安装:因为后续项目使用到的是SDK1.4版本,所以这里安装 1.4版本
git clone -b v1.4.0 https://github.com/microsoft/Azure-Kinect-Sensor-SDK.git
2.libdepthengine.so.2.0 下载
因为使用的是arm架构,所以这里安装的libdepthengine.so.2.0 最好从arm源下载的文件中获取比较好
sudo apt install k4a-tools
sudo apt install libk4a1.4-dev #注意 libk4a 有很多个版本,这里选择的是1.4版本,可根据SDK的选择安装
拷贝到 /usr/lib/x86_64-linux-gnu 目录下
cd /usr/lib/aarch64-linux-gnu/libk4a1.4
sudo cp libdepthengine.so.2.0 /usr/lib/aarch64-linux-gnu
如果是x86架构下,则拷贝到 /usr/lib/x86_64-linux-gnu 目录下
cd /usr/lib/x86_64-linux-gnu
sudo cp libdepthengine.so.2.0 /usr/lib/x86_64-linux-gnu
3.编译安装Azure-Kinect-Sensor-SDK
cd Azure-Kinect-Sensor-SDK
mkdir build
cd build
cmake .. -GNinja -DCMAKE_BUILD_TYPE=Debug
ps:cmake … -GNinja是生成ninja的配置,ninja是一个小型的编译系统,并行编译,速度比较快
完成后,执行
ninja
sudo ninja install
在执行 cmake … -GNinja 时会遇到的问题:
ERROR 1:
解决:添加源
sudo apt-add-repository https://packages.microsoft.com/ubuntu/18.04/multiarch/prod
sudo apt-get update
ERROR 2:
sudo apt install libsoundio-dev
cmake .. -GNinja
ninja
ERROR 3:
sudo apt-get install libudev-dev
4.启动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
重点参考:机器人抓取(三)—— Azure Kinect SDK 及 ROS 驱动安装
安装 opencv3.4.3
从官网下载 opencv3.4.3
cd ~/opencv-3.4.13
mkdir build
cd build
cmake ..
build -j6
sudo make install
安装 Azure_Kinect_ROS_Driver 包
不需要像网上的过气教程说的,移植/ext文件啥的
# 下载Azure_Kinect_ROS_Driver源码
cd catkin_ws/src
git clone https://github.com/microsoft/Azure_Kinect_ROS_Driver.git
# 编译工作空间
cd catkin_ws
catkin_make
ERROR
编译过程中,可能会遇到显示cv::bridge缺乏的问题,这是因为xavier自带的opencv4,而ros melodic自带的cv::bridge 是链接到opencv目录下的,会找不到
解决办法:
法一:修改cv_bridge configcmake 路径,使得和当前的opencv版本兼容
重点参考博客:
解决Ubuntu环境下ROS Kinetic中的cv_bridge和自己安装OpenCV 2.4.xx兼容性笔记
法二(推荐):在工作空间中下载编译自己的cv_bridge
参考博客:
NX入门教程软件篇-安装VINS-Mono
cd catkin_ws/src
git clone -b melodic https://github.com/ros-perception/vision_opencv
catkin_make
source devel/setup.bash
roslaunch azure_kinect_ros_driver driver.launch
打开rviz image 话题,即可订阅到图像
工程下载
为了方便快速开发,可在以下链接下载配置好的ros工程和库文件
https://github.com/rainbowrooster/RoboticsX-Study/tree/main/ubuntu%2018.04%20%2B%20xavier%20nx%20%2B%20ros%20melodic%20%2B%20Azure_Kinect%20camera
一共有三个文件
将 Azure_Kinect_ROS_Driver 和 vision_opencv 这两个功能包放到自己的catkin_ws/src 工作空间下,进行编译,将 libdepthengine.so.2.0 执行指令
sudo cp libdepthengine.so.2.0 /usr/lib/aarch64-linux-gnu
转载:https://blog.csdn.net/weixin_41281151/article/details/116233955