zoukankan      html  css  js  c++  java
  • ros学习笔记

    前提条件:1,确保读者已经安装了kinect或者其他深度摄像头的驱动,如果未安装,可以直接在网盘下载:http://pan.baidu.com/s/1hqHB10w 提取密码:wrmn

    利用深度相机仿激光数据创建地图:


    所依赖包的下载与安装:

    1,安装hector_slam

    2,下载hector_slam_example:下载地址,编译好之后,记住需要将这个文件加入ros包中  

     ROS_PACKAGE_PATH=/home/用户名/catkin_ws/hector_slam_example:$ROS_PACKAGE_PATH
     当然路径改成你自己的路径。
    3,Install the dependency packages: 
     
      rosdep install hector_slam_example
     
    4,在启动之前如果你用的是kinect,那就请你修改一下launch文件吧。
     
       <include file="$(find openni_launch)/launch/openni.launch">  
    #由于我们使用的kinect,openni2已近不支持了。所以用openni然后就是roslaunch
      
      roslaunch hector_slam_example hector_openni.launch
     
    只需要让移动平台移动就可以去构建地图了,当然这里面用的生成模拟极光的方法是depthimage_to_laserscan,代码的方法速度更快但是要求摄像头要相对稳定,并且尽量水平放置。
     
    效果:
     
    从单帧来看,还是不错的,
    但是移动一下后就发现问题了:
     
    查了一下后才知道:
     
    ros中常用的2d slam算法主要有gmapping和hector_slam,其中
    hector_slam是个性能非常好的算法,但是作者在论文中说的很明白,hector_slam通过最小二乘法匹配扫描点,且依赖高精度的激光雷达数据,但是不需要里程计。因此扫描角很小且噪声较大的kinect是不行的,我试过,匹配的时候会陷入局部点,地图非常混乱。
  • 相关阅读:
    laravel本地化
    laravel加载javascript库
    laravel安装第三方包3rd generators
    openfire的smack和asmack
    openfire+spark+smack实现即时通讯
    openfire开发
    即时通信Spark安装和配置
    ubuntu eclipse CDT 问题
    网络编程TCP总结及实践-C语言
    [Openstack]使用devstack自己主动化安装
  • 原文地址:https://www.cnblogs.com/yoyo-sincerely/p/5661616.html
Copyright © 2011-2022 走看看