要編譯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_VOCABULARY是ORBvoc.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/