ubuntu16.04下用筆記本攝像頭和ROS編譯運行ORB_SLAM2的單目AR例程

要編譯ORB_SLAM2的ROS例程首先須要安裝ROS,以及在ROS下安裝usb_cam驅動並調用,最後搭建ORB_SLAM2。html

1.ROS的安裝node

個人電腦安裝的是ubuntu16.04系統,因此我安裝的是2016年的發行版本ROS_Kinetic,通常的話ROS的版本是一年一更新,和ubuntu的系統更新保持同步。若是你的系統是ubuntu14.04,你能夠安裝2014年的發行版本ROS_Indigo。git

ROS_Kinetic在ubuntu16.04上的安裝能夠參考個人博客:點擊連接地址github

 

2.usb_cam在ROS中的編譯ubuntu

首先要新建一個ROS的工做空間bash

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace

編譯工做空間測試

cd ~/catkin_ws/
catkin_make

設置環境變量ui

source devel/setup.bash

若是你的終端爲zsh,請用以下命令spa

source devel/setup.zsh

進入到catkin_ws/src目錄下,下載usb_cam的源文件到此目錄下.net

cd ~/catkin_ws/src
git clone https://github.com/bosch-ros-pkg/usb_cam.git

退出到catkin_ws目錄下執行catkin_make命令進行編譯並設置環境

cd ..
catkin_make
source ~/catkin-ws/devel/setup.bash

能夠測試是否配置成功

roscd usb_cam

沒報錯就說明安裝成功了

3.編譯ORB_SLAM2庫

最簡單的根據orb_slam2在github上面的項目地址就能夠安裝成功

項目地址:https://github.com/raulmur/ORB_SLAM2

詳細的能夠參考個人博文:點擊連接地址

 

4.編譯ROS例程

網上編譯ROS例程的教程不少,但我仍是以爲github上面提供的最方便

首先進入到你的ORB_SLAM2源代碼目錄下,而後執行命令

chmod +x build_ros.sh
./build_ros.sh

這個可能不會100%編譯成功,但Mono和MonoAR能夠編譯成功,主要是ros_rgbd不能編譯成功,出現報錯,我就沒管他。

編譯完以後,記得在.bashrc後面加入:

 

source /home/zn/ORB_SLAM2-master/Examples/ROS/ORB_SLAM2/build/devel/setup.bash

 

5. 運行ROS中的Demo

以上步驟都成功後,咱們就能夠運行ros中的demo了

開始以前還有個地方須要改:

 

 

把ros_mono_ar.cc中的

 

ros::Subscriber sub = nodeHandler.subscribe("/camera/image_raw", 1, &ImageGrabber::GrabImage,&igb);

 

改成:

 

ros::Subscriber sub = nodeHandler.subscribe("/usb_cam/image_raw", 1, &ImageGrabber::GrabImage,&igb);

 

(看到沒有,路徑變了喲。由於咱們的圖片都是從/usb_cam/image_raw發送過來的)

 

而後再把Example編譯一下~

 

這下能夠開始了:

 

首先咱們要啓動ros內核,新開一個終端,執行

roscore

啓動usb_cam攝像頭節點,新開一個終端,執行

roslaunch usb_cam usb_cam.launch

啓動 ORB_SLAM2 的 Mono 節點(單目)

rosrun ORB_SLAM2 Mono PATH_TO_VOCABULARY PATH_TO_SETTINGS_FILE
PATH_TO_VOCABULARYORBvoc.txt文件路徑PATH_TO_SETTINGS_FILE是你的攝像機內參數文件路徑

因此能夠在第三個終端輸入以下命令:

rosrun ORB_SLAM2 MonoAR /home/zn/ORB_SLAM2/Vocabulary/ORBvoc.txt  /home/zn/ORB_SLAM2/Examples/Monocular/TUM1.yaml

路徑按照本身的電腦路徑進行更改,TUM1.yaml是參數設置文件,主要是相機的內參,這個得本身標定。若是懶得標定,能夠直接用TUM1.yaml,不影響程序的運行。

 

 

 

 end......

 參考博文:https://blog.csdn.net/u79501/article/details/68942174

http://www.liuxiao.org/2016/07/ubuntu-orb-slam2-%E5%9C%A8-ros-%E4%B8%8A%E7%BC%96%E8%AF%91%E8%B0%83%E8%AF%95/

相關文章
相關標籤/搜索