kinect_v1-RGBD相机depth深度图像三维重建及八叉图显示

1 kinect_v1相机拍摄的rgb和depth环境
郝奇图像匹配及三维重建
2 ROS的RVIZ显示相机点云
郝奇相机三维点云

3 使用相机拍摄的depth图进行三维重建,并使用八叉图显示
3.1 八叉图
  SLAM的目的有两个:估计机器人的轨迹,并建立正确的地图。地图有很多种表达方式,比如特征点地图、网格地图、拓扑地图等。VSLAM一般使用点云地图,在程序中,要根据优化后的位姿,拼接点云,最后构成地图。
  这种做法很简单,但有缺陷明显:点云地图通常规模很大,所以一个pcd文件也会很大。一张640x480的图像,会产生30万个空间点,需要大量的存储空间。即使经过一些滤波之后,pcd文件也是很大的。点云地图提供了很多不必要的细节。在构建点云时,我们直接按照估计位姿拼在了一起。在位姿存在误差时,会导致地图出现明显的重叠,难以用于导航.地图的用处第一就是导航,有了地图,就可以指挥机器人从A点到B点运动.但是点云地图怎么导航?怎么知道哪些地方可通过,哪些地方不可通过,因此光有点是不够的.
  octomap就是为此而设计的,它可以优雅地压缩、更新地图,还可以调节分辨率!它以octotree八叉树的形式存储地图,每个树节点都有八个子节点!八叉树地图是由很多个小方块组成的,当分辨率较高时,方块很小;分辨率较低时,方块很大。每个方块表示该格被占据的概率。因此你可以查询某个方块或点“是否可以通过”,从而实现不同层次的导航。
  不同分辨率的octomap建立的地图如下所示,最后一个图8个正方体只占用了6个:
郝奇八叉图1
郝奇八叉图2
郝奇八叉图3郝奇八叉图43.2 八叉图octomap库的安装/配置和使用
 八叉图octomap使用需要安装octomap库,具体在
 https://github.com/OctoMap/octomap,库主要包含octomap和octovis(可视化程序),安装前需要安装依赖:

 $sudo apt-get install doxygen
 $sudo apt-get install ros-<version>-octovis
 库下载后,解压缩,在build中直接
 cmake ..
 make
 sudo make install

使用时需要在CmakeLists.txt中添加库路径和程序链接库

# octomap 
find_package( octomap REQUIRED )
include_directories( ${OCTOMAP_INCLUDE_DIRS} )

add_executable(aa.cpp )
target_link_libraries( a ${OpenCV_LIBS} ${PCL_LIBRARIES} ${OCTOMAP_LIBRARIES} )

图像内容原创,转载请注明链接:https://blog.csdn.net/qq_39534332/article/details/89368335

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值