天天看點

ubuntu16.04安裝配置azure_kinect驅動和ros驅動0序言1更新cmake2下載下傳libdepthengine.so.2.0檔案3修改子子產品4安裝k4a-tools5編譯6下載下傳ros驅動7收集庫檔案

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/

效果:

ubuntu16.04安裝配置azure_kinect驅動和ros驅動0序言1更新cmake2下載下傳libdepthengine.so.2.0檔案3修改子子產品4安裝k4a-tools5編譯6下載下傳ros驅動7收集庫檔案

///分割線///

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
           
ubuntu16.04安裝配置azure_kinect驅動和ros驅動0序言1更新cmake2下載下傳libdepthengine.so.2.0檔案3修改子子產品4安裝k4a-tools5編譯6下載下傳ros驅動7收集庫檔案

大功告成。

繼續閱讀