RGBDSLAM_V2试跑

系统版本:Ubuntu16.04 + ROS-Kinect

一、首先安装rgbdslam_v2需要的环境

  • 安装依赖项
sudo apt-get install libsuitesparse-dev libeigen3-dev
  • 删除之前安装的g2o (保证g2o完全删除)
sudo apt-get purge ros-kinetic-libg2o libqglviewer-dev sudo rm -rf /usr/local/include/g2o
sudo rm -rf /usr/local/lib/libg2o_*
  • 下载作者使用的g2o:
git clone https://github.com/felixendres/g2o.git
mkdir build
cd build
cmake ..
make
sudo make install
  • 下载安装PCL1.8wget https://github.com/PointCloudLibrary/pcl/archive/pcl-1.8.0.tar.gztar -xzvf pcl-1.8.0.tar.gz

修改PCL1.8 中的 cmakelist.txt,在其第146行加入并保存

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
# 随后开始编译安装点云库
cd pcl-pcl-1.8.0
mkdir build
cd build
cmake ..
make VERBOSE=1
sudo make install

二、上述部分环境已经准备就绪,接下来进行rgbdslam_v2的安装

# 创建ros的工作空间
mkdir -p catkin_ws/src
cd ~/catkin_ws/src
# 克隆工程
git clone https://gitee.com/cenruping/rgbdslam-v2.git
cd ~/catkin_ws
catkin_make

注意事项:

a. 确保rgbdslam_v2包下的cmakelist.txt文件的第79行,find_package(PCL 1.7 REQUIRED COMPONENTS common io) 改为 find_package(PCL 1.8 REQUIRED COMPONENTS common io)

b.不使用GPU需要关闭使用GPU ,将rgbdslam_v2包下的cmakelist.txt文件的第7行,set(USE_SIFT_GPU 1 CACHE BOOL “build with support for siftgpu”) ,改为 set(USE_SIFT_GPU 0 CACHE BOOL “build with support for siftgpu”)

c.遇到缺少glew

sudo apt-get install libglew*

d.遇到缺少-lIL

sudo apt-get install libdevil-dev

三、安装完成测试部分

  • 运行rgbdslam
roslaunch rgbdslam rgbdslam.launch

img

修改包中的rgbdslam.launch文件,将算法接收的topic改为rosbag的发布值(根据实际情况修改)。并启动rgbdslam节点

<param name="config/topic_image_mono"             value="/camera/rgb/image_color"/> <param name="config/topic_image_depth"            value="/camera/depth/image"/>

数据集下载地址:

http://vision.in.tum.de/data/datasets/rgbd-dataset/download#freiburg1_xyz

  • play rosbag
rosbag play rgbd_dataset_freiburg1_xyz.bag

效果如下:

img

四、算法流程解析

rgbdslam结合了QT界面,使得保存地图,轨迹和octomap的操作界面化了,rgbdslam的算法并不复杂,该算法主要分为4个部分:

1、对每一帧RGB图像提取特征点、计算特征点描述子。作者使用的特征点包括SIFT特征点和ORB特征点,使用的特征点种类可以通过launch文件进行选择,同时该框架也支持使用GPU加速SIFT

2、利用RANSAC和ICP算法计算两帧图像之间的相对旋转和平移(R,t)

3、作者的核心贡献利用作者提出的EMM测量模型判断估计值是否可以接受(判断投影点的深度),

4、作者使用最小生成树模型进行回环检测(这与BOW词袋库模型有所不同),构建位姿图优化模型,最后利用g2o优化工具求解这个优化问题。

作者将前三个步骤作为前端,第四部分作为后端。作者在后端优化中只优化了相机的位姿,没有像ORB-SLAM那样同时优化3D点的位置和相机位姿,这可能是rgbdslam建图不准确的原因之一。因为深度相机在物体边缘处的深度值通常有很大的跳变,因此我们不能完全相信特征点的值,尤其是边缘处的特征点的深度。这个现象在高博的论文中也提到过,所以高翔博士使用了平面特征和边缘特征对特征进行了分类。

五、详细分析rgbdslam的博客

https://www.cnblogs.com/voyagee/p/7027076.html

参考文献:

3D Mapping with an RGB-D Camera", F. Endres, J. Hess, J. Sturm, D. Cremers, W. Burgard, IEEE Transactions on Robotics, 2014.

参考博客:
熊猫飞天

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值