1. 程式人生 > >ORB-SLAM2中ROS+RGBD執行例項

ORB-SLAM2中ROS+RGBD執行例項

最近想實現基於ROS+RGBD相機的ORB-SLAM2,剛好手上有個kinect,雖然是V1版本的,不過有玩的就好了O_O

驅動安裝成功之後就可以使用kinectV1了,博主一次就弄好了,嘿嘿.

(2)ORB-SLAM2(ROS+RGBD)執行

首先成功編譯ORB-SLAM2,網上很多教程,這裡就不多說了給出一個比較完整的地址.

執行可以採用兩種方式

方式一:
roscore
roslaunch freenect_launch freenect-registered-xyzrgb.launch
備註:這條命令輸入後可以開啟終端使用命令 rqt 看到kinect相關影象(深度圖和rgb圖等)

rosrun ORB_SLAM2 RGBD ~/catkin_ORB/src/ORB_SLAM2/Vocabulary/ORBvoc.bin ~/catkin_ORB/src/ORB_SLAM2/Examples/RGB-D/my.yaml

其中my.yaml 根據自己的kinectVI引數設定,博主直接使用傳統的相機標定方法標定了一下,幸運的的是可以使用

方式二:
roslaunch kinect_orbslam2.launch

其中kinect_orbslam的內容如下,紅色部分是需要修改的路徑.

<launch>    <param name="orb_use_viewer" value="false"/>    <node pkg="ORB_SLAM2" type="RGBD" name="ORB_SLAM2"         args="/home/hahaha/catkin_ORB/src/ORB_SLAM2/Vocabulary/ORBvoc.txt           /home/hahaha/catkin_ORB/src/ORB_SLAM2/Examples/RGB-D/my.yaml" cwd="node" output="screen"/> 

  <include file="$(find freenect_launch)/launch/freenect.launch">      <!-- use device registration -->      <arg name="depth_registration" value="true" />      <arg name="rgb_processing" value="true" />      <arg name="ir_processing" value="false" />      <arg name="depth_processing" value="false" />      <arg name="depth_registered_processing" value="true" />      <arg name="disparity_processing" value="false" />      <arg name="disparity_registered_processing" value="false" />      <arg name="sw_registered_processing" value="false" />      <arg name="hw_registered_processing" value="true" />    </include>  </launch> 

執行結果如下:

左上角部分是根據高博的程式碼新增ORB點雲顯示功能,效果還可以,嘿嘿!!!!!!!!!!!!