利用深度摄像头生成仿激光数据并构建地图

前言

博主本来是想自己将生成的激光数据和ros中的地图构建工具生成地图的,结果搜了一下github发现这项工作已经被大牛们写好并且打包上传了,可以只利用激光数据不需要里程计数据来构建地图,不过还是把过程写一下,mark一下。

准备

  1.  ros,openni的准备就参考前文吧~
  2.  安装hector_slam,最简单的方式是直接apt-get  
     sudo apt-get install ros-indigo-hector-slam
     当然你可以从github上下载源码编译一下:hector_slam github.网站上还有ros wiki的介绍链接大家可以去学习一下
  3.  下载hector_slam_example:下载地址,编译好之后,记住需要将这个文件加入ros包中  
     ROS_PACKAGE_PATH=/home/cxz/projects/hector_slam_example:$ROS_PACKAGE_PATH 
     当然路径改成你自己的路径。
  4.  Install the dependency packages:
     rosdep install hector_slam_example 
  5.  然后就是喜闻乐见的roslaunch了:
     roslaunch hector_slam_example hector_openni.launch

结果

只需要移动摄像头就可以去构建地图了,当然这里面用的生成模拟极光的方法是depthimage_to_laserscan并不是博主前文提到的pointcloud_to_laserscan,代码的方法速度更快但是要求摄像头要相对稳定,并且尽量水平放置,大家最好固定好再去生成地图。
无图无真相~
map
ps:这种方法没有使用里程计来矫正激光数据,所以误差会比较大,而且稳定性也不强,可以作为一种测试方法,不过真正用到机器人上还是要跟其他数据融合一下才能更精准。


后面会有更精准的地图构建的敬请期待

猜你喜欢

转载自blog.csdn.net/dddxxxx/article/details/80493602
今日推荐