ubuntu16.04安裝配置azure_kinect驅動和ros驅動

0序言

azure kinect官方的驅動版本是ubuntu18.04,但是我使用的是ubuntu16.04,安裝配置的踩坑過程說艱難是耗費的時間,說簡單就是配置選項不對。特此記錄

1升級cmake

軟件包編譯要求,首先要升級cmake,可以參考:

https://blog.csdn.net/u013834525/article/details/88524603

在不卸載之前舊版本的情況下安全的進行升級cmake,現在我們這裏需要下載cmake-3.14.5.tar.gz文件,然後按照上面鏈接裏的步驟走就好。cmake下載地址爲:

https://cmake.org/files/

2下載libdepthengine.so.2.0文件

下載地址爲:

https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/

需要下載兩個: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/

cp 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

在這裏插入圖片描述
大功告成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章