HRG(2)——IntelRealSense for ROS
1. 依照官網教程安裝相機
https://software.intel.com/zh-cn/realsense/zr300/get-started
2. 設定時間
網路時間設定
$ sudo apt update
$ sudo apt install chrony ntpdate
$ sudo ntpdate ntp.ubuntu.com
手動時間設定
$ sudo date -s "16:47 1/23/2017"
3. 設定儲存庫
將英特爾® 實感™ 軟體儲存庫新增至 Ubuntu* 裝置的 package manager(程式包管理器),以便裝置知道何處下載額外軟體。
$ echo 'deb "http://realsense-alm-public.s3.amazonaws.com/apt-repo" xenial main' | sudo tee /etc/apt/sources.list.d/realsense-latest.list
$ sudo apt-key adv --keyserver keys.gnupg.net --recv-key D6FB2970
$ sudo apt update
4.安裝英特爾® 實感™ 攝像頭訪問實用程式,獲得高階攝像頭控制,如反差和曝光設定。
$ sudo apt install librealsense-utils $ cpp-capture
效果如下所示,注意攝像頭的蓋子要開啟,而且ZR300一定要插在USB3.0口。正常應該是有6個畫面。
5.安裝執行時和樣本,此安裝允許執行所有 librealsense 中介軟體樣本。
安裝執行時後,就應能看到攝像頭輸出,並可執行英特爾® 實感™ 中介軟體樣本,例如人體跟蹤、物件庫及同時定位和地圖繪製 (SLAM)。如果在安裝執行時和樣本時,攝像頭已插入,需將其拔出並插回,以確保所有設定均被應用。
$ sudo apt install librealsense-samples beignet-opencl-icd
6.安裝開發工具,此步驟安裝物體識別、人體跟蹤和 SLAM 庫至裝置。
$ sudo apt install build-essentials git cmake libjpeg-dev libopencv-dev
$ git clone http://github.com/IntelRealSense/realsense_samples
$ cd realsense_samples
$ mkdir build
$ cd build
$ cmake
$ make
博主在此處出現了問題,在realsense_samples例子裡面的realsense_ros_camera裡launch檔案,用跑demo_zr300_camera.launch跑不通,問題如下圖。(我是在build資料夾建立之後並不能正常cmake)
Error:catkin_make Coule not find a package configuration file provided by "OpenCV"with anyof the follwoing names:OpenCVConfig.cmakeopencv-config.cmake
錯誤原因:沒有執行roscore
rosnode list
7. cd catkin_ws/進入該資料夾進行cmake,$catkin_make。這裡顯示找不到opencv的路徑(找不到OpenCVConfig.cmake)
是不是之前自己裝ROS沒有裝opencv呢,其實ros的SDK會自動幫安裝opencv3.3.1,所以問題不在這裡,大家可以直接跳到下一步。不過自己還是踩了坑重新安裝了opencv
https://blog.csdn.net/u011511601/article/details/79395713
注意pip和pip3的區別。
這裡要提一句,下載git進行clone真的超級慢,上週開始用翻牆下載就縮短了兩倍以上的時間。需要在ubuntu裡面安裝proxychain。這裡就不展開,等以後總結了這個內容再貼連結過來。
8.發現python3進入以後,import cv2,依然會顯示錯誤。依然是那個路徑的問題,這是因為ubuntu執行預設之前的opencv2.7,所以安裝了3.3.2 import cv會出錯誤。注意,不要嘗試解除安裝操作,卸了之前的或者最新的3.3.1再重新來一遍,步驟太多。
另外,要把catkin資料夾內不相關的資料夾移出去(比如我移走了my_first_ros_pkg realsense_samples open_manipulator).有的在上述的截圖問題中無法編譯也有一部分原因是不相關的資料夾導致,移走會少一部分錯誤。接著找到那兩個檔案的位置:
sudo find / -name openCVConfig.cmake
9.進入目錄$cd /usr/share/OpenCV.可以看到該檔案在這,但是系統在cmake的時候就找不到了,這就是因為python的原因導致系統找不到OpenCVConfig.cmake檔案。
sudo gedit OpenCVConfig.cmake
利用ctrl+f進行搜尋找到CONFIG語句,博主已經將該行程式註釋掉,去掉CATHE語句,並改為下面一行程式。儲存檔案。
https://blog.csdn.net/qq_40313712/article/details/80642553(參考的是這篇文章的Q2)
這樣就會把下面的錯誤解決。同時python3中import cv2錯誤也解決了。
CMake Error in src/CMakeLists.txt:
Imported target "opencv_viz" includes non-existent path
"/usr/local/include/opencv"
* The path was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and references files it does not
provide.
10.返回到catkin_ws
$cd ~/catkin_ws
重新進行編譯,敲上$cm即可(其實就是catkin_make,ROS基礎配置中有很多這種內容的定義需要自己配置,來簡化時間)。結果如圖6所示
11.可以通過輸入命令$rostopic list來檢視當前執行的話題資訊。接著,
$roslaunch realsense_ros_camera camera_zr300.test
$rviz
即可在rviz中看到Intel RealSense ZR300的輸出結果。如圖6:
另外也可以用rqt檢視二維的影象,不過對於點雲來說當然不可以。
12.在rviz中,點Add增加PointCloud2,將話題修改為/camera/points。另外,將Fixed Frame 改為camera_depth_frame即可顯示。
接下來自己會實際進行降噪等處理,之後進行物體識別,目標識別出一個杯子,並控制機械臂實際抓取杯子,還有要依據PCL庫為基礎進行杯子的目標識別。