因為最近想抽空學一下SLAM相關的東西,就打算開個博文記錄一下自己的學習過程,同時也希望對有需要的同學能起到一些幫助。
說到SLAM,即同時定位與建圖,目前有很多種實現方法,主流的便是雷射SLAM(配合雷射雷達)和視覺SLAM(配合視覺傳感器)。其中視覺SLAM又包括單目SLAM、雙目SLAM和RGBD SLAM等,每種類型下面又有很多實現框架,暫時就不一一闡述了,有空的話再去總結一下發出來。
雷射SLAM的話必然需要一個雷射雷達,目前市面上有很多便宜的適合學生和初學者的雷達可供選擇,如思嵐的A1等,某寶價格500元左右,還是可以接受的。
視覺SLAM的話首先需要有一個視覺傳感器,也就是常說的攝像頭,我最近買了個樂視的RGB-D深度相機,因為大家眾所周知的原因,這個相機可以說是目前性價比最高的RGB-D相機了,某寶價格100多元,雖然便宜,但是這小東西因為就是奧比中光代工的,實際幾乎奧比中光的 Astra Pro 一模一樣,可以說是學生黨福利了。
好了,需要的材料設備已經介紹完了,下面開始正式記錄自己的學習過程~
首先把參考資料寫在最最最前面,感興趣的小夥伴還可以移步查看官方文文檔:
Github:
https://github.com/orbbec/ros_astra_camera
官方的SDK:
https://orbbec3d.com/develop/
ROS wiki:
http://wiki.ros.org/Sensors/OrbbecAstra1.1 安裝依賴
sudo apt install ros-$ROS_DISTRO-rgbd-launch ros-$ROS_DISTRO-libuvc ros-$ROS_DISTRO-libuvc-camera ros-$ROS_DISTRO-libuvc-ros和正常開展ROS項目一樣,建立工作空間(我這裡起名叫rgbd_ws 根據需求自己更改工作空間的名稱)然後 catkin_make 一下
mkdir -p ~/rgbd_ws/srccd ~/rgbd_ws/catkin_makesource devel/setup.bash之後克隆Github中的代碼,如果速度很慢的話,可以異步這個網站Github加速,步驟如下:
進入Github連結
右鍵下載Zip複製連結
複製進Github加速下載即可
右鍵 Download Zip 複製連結
沒有網速問題的同學直接shell指令即可:
cd ~/rgbd_ws/srcgit clone https:1.4 添加相機設備rule
roscd astra_camerasudo sh ./scripts/create_udev_rules1.5 編譯源碼包
cd ~/rgbd_wscatkin_make --pkg astra_camera因為樂視這款是奧比中光的貼牌產品,此時還不能直接使用,需要對launch文件進行一些修改才可以使用。
首先將相機插在USB接口上,然後在終端查看相機接口:
其中:
Bus 001 Device 019: ID 2bc5:0502 Bus 001 Device 018: ID 2bc5:0403修改 ros_astra_camera 中 launch 文件夾下的 Astrapro.launch
cd ~/cd rgbd_ws/src/ros_astra_camera/launch/gedit astrapro.launch將 0x0501 改為上面的 0x0502
先 source 一下,此時應該就可以正常啟動了
source ~/rgbd_ws/devel/setup.bash roslaunch astra_camera astrapro.launch此時還暫時不能看到圖像,需要通過訂閱話題查看圖像
打開新終端,啟動rviz
Rviz中點擊左下角Add
依次進行以下操作:Add -> By topic -> 選擇對應的image即可