最近想实现基于ROS+RGBD相机的ORB-SLAM2,刚好手上有个kinect,虽然是V1版本的,不过有玩的就好了O_O
(1)在ubuntu上安装kinectV1相关驱动文,参考文章https://blog.csdn.net/Felaim/article/details/79579973
驱动安装成功之后就可以使用kinectV1了,博主一次就弄好了,嘿嘿.
(2)ORB-SLAM2(ROS+RGBD)运行
首先成功编译ORB-SLAM2,网上很多教程,这里就不多说了给出一个比较完整的地址.
https://blog.csdn.net/qq184861643/article/details/53519714
运行可以采用两种方式
方式一:
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>
运行结果如下:
左上角部分是根据高博的代码https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map
添加ORB点云显示功能,效果还可以,嘿嘿!!!!!!!!!!!!