0序言
azure kinect官方的驅動版本是ubuntu18.04,但是我使用的是ubuntu16.04,安裝配置的踩坑過程說艱難是耗費的時間,說簡單就是配置選項不對。特此記錄
1更新cmake
軟體包編譯要求,首先要更新cmake,可以參考:
在不解除安裝之前舊版本的情況下安全的進行更新cmake,現在我們這裡需要下載下傳cmake-3.14.5.tar.gz檔案,然後按照上面連結裡的步驟走就好。cmake下載下傳位址為:
2下載下傳libdepthengine.so.2.0檔案
下載下傳位址為:
需要下載下傳兩個:libk4a1.2-dev/ 和libk4a1.2/兩個檔案,解壓後獲得libdepthengine.so.2.0檔案,然後把libdepthengine.so.2.0複制到/usr/lib/x86_64-linux-gnu/檔案夾中。剩餘檔案不要删除,還有用。
3修改子子產品
修改方案1
打開Azure-Kinect-Sensor-SDK檔案夾,ctrl+h打開隐藏顯示項,找到.gitmodules檔案,修改在牆外的軟體包url,即libyuv軟體包,改成:
url=https://github.com/lemenkov/libyuv.git
儲存完成。
修改方案2
gedit .gitmodules
然後根據裡面的url下載下傳相應的包,放在extern檔案夾裡面,然後編輯extern檔案夾裡面的cmakelist檔案,将注釋之後,add_subdirectory之前的判斷包存不存在要不要更新的語句删除。
儲存完成。
4安裝k4a-tools
根據官方給的連結配置好 倉庫秘鑰:
https://docs.microsoft.com/en-us/windows-server/administration/linux-package-repository-for-microsoft-software
安裝
sudo apt install libk4a1.2-dev
sudo apt install k4a-tools
如果安裝過程中出現 libsoundio error, 則需要安裝 jack-tools
sudo apt-get install jack-tools
5編譯
這裡有個巨坑:
cd Azure-Kinect-Sensor-SDK
mkdir build
cd build
cmake .. -G Ninja -DYAML_BUILD_SHARED_LIBS=ON ##就是這個選項,不加會編譯錯誤
ninja
sudo ninja install
不出意外可以編譯成功,然後就可以,嘿嘿嘿:
sudo ./bin/k4aviewer
想要去掉管理者權限也能啟動:
進入Azure Kinect sdk 源碼根目錄中 scripts 檔案夾,複制99-k4a.rules檔案至/etc/udev/rules.d/
效果:

///分割線///
6下載下傳ros驅動
git clone https://github.com/microsoft/Azure_Kinect_ROS_Driver.git
找到Azure_Kinect_ROS_Driver/include/azure_kinect_ros_driver/k4a_ros_device.h檔案,更改:
@@ -117,11 +117,11 @@ class K4AROSDevice
volatile bool running_;
// Last capture timestamp for synchronizing playback capture and imu thread
- std::atomic_int64_t last_capture_time_usec_;
+ std::atomic<int64_t> last_capture_time_usec_;
// Last imu timestamp for synchronizing playback capture and imu thread
- std::atomic_uint64_t last_imu_time_usec_;
- std::atomic_bool imu_stream_end_of_file_;
+ std::atomic<uint64_t> last_imu_time_usec_;
+ std::atomic<bool> imu_stream_end_of_file_;
// Threads
std::thread frame_publisher_thread_;
7收集庫檔案
1 在工作空間中的/Azure_Kinect_ROS_Driver 裡 建立檔案夾:
mkdir -p ext/sdk
2 在之前編譯安裝的Azure-Kinect-Sensor-SDK/build/檔案夾中有個bin檔案夾,拷貝到sdk檔案夾中
3 在之前下載下傳的兩個deb包(libk4a1.2-dev/ 和libk4a1.2/)中提取include和bin檔案夾,最終彙內建include檔案夾和bin檔案夾,放在sdk檔案夾中。
4回到工作空間:
catkin_make
catkin_make install
然後:
source ./devel/setup.bash
roslaunch azure_kinect_ros_driver driver.launch
大功告成。