一.建图实际操作

  1. 下载源码测试源码,depthimage_to_laserscan,参考https://blog.csdn.net/u010925447/article/details/56494680
  2. 解压到你的ros工作空间路径中。
  3. 使用catkin_make编译功能包。
  4. 分析launch文件,修改使其在自己的平台上可用:参考https://www.jianshu.com/p/429e59d48322
  5. 运行launch文件 启动转换节点:roslaunch depthimage_to_laserscan sample_node.launch(包含主节点和深度相机启动节点)

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

  1. 下载hector_slam_example:下载地址 https://github.com/chenxingzhe/hector_slam_example,编译(cmake)(无需里程计即可建图,核心节点hector_mapping订阅/scan话题)
  2. sudo apt-get install ros-indigo-hector-slam
  3. Install the dependency packages:rosdep install hector_slam_example
  4. 在启动之前如果你用的是kinect,那就修改一下launch文件
  5. 然后就是roslaunch hector_slam_example hector_openni.launch
  6. 只需要让移动平台移动就可以去构建地图了,当然这里面用的生成模拟激光的方法是depthimage_to_laserscan节点,但是要求KINECT要相对稳定,并且尽量水平放置。
  7. 在rviz中就可以看到hector_slam的效果了

三.终端操作

  • 启动摄像头 : $ roslaunch freenect_launch freenect.launch
  • 启动深度转scan信息:$ rosrun depthimage_to_laserscan depthimage_to_laserscan image:=/camera/depth/image_raw
  • 启动自己添加的三个launch文件:$ roslaunch hector_slam_launch slam.launch
  • 查看tree图:$ rosrun rqt_tf_tree rqt_tf_tree
  • 接下的是我自己通过手柄控制机器人的程序
  • $ rosrun joy joy_node
  • $ rosrun input_js_control logitech
  • $ rosrun ros_car_py base.py
  • $ python 22-tcp_client_joy.py
  • 利用预先准备好的bag文件运行的SLAM
  • $rosbag record -o foo scan tf
  • $rosbag play --clock foo.bag
  • $rosbag info foo.bag
  • 创建完成之后,启动地图以及查看地图
  • $ rosrun map_server map_server map.yaml
  • $ rosrun map_server map_server -f map
  • $ roscd ~/maps
  • $ rosrun map_server map_server map.yaml

使用hector-slam和Kinect V1建图的更多相关文章

  1. SLAM+语音机器人DIY系列:(六)SLAM建图与自主避障导航——2.google-cartographer机器人SLAM建图

    摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在前面的学习铺垫后,终于迎来了最大乐趣的时刻,就是赋予我们的miiboo机器人能自由行走的生命.本章将围绕机器人SLAM建图.导航避障 ...

  2. 通过gmapping和伪造的odom,完成Kinect建图

    传感器信息: 环境深度信息:sensor_msgs/laserScan -----> RGBD三维点云数据:通过ros功能包depthimage to laserscan完成深度相机数据转换成激 ...

  3. TurtleBot3 Waffle (tx2版华夫)(12)建图-hector建图

    1)[Remote PC] 启动roscore $ roscore 2)[TurBot3] 启动turbot3 $ roslaunch turbot3_bringup minimal.launch 3 ...

  4. rplidar & hector slam without odometry

    接上一篇:1.rplidar测试 方式一:测试使用rplidar A2跑一下手持的hector slam,参考文章:用hector mapping构建地图 但是roslaunch exbotxi_br ...

  5. cartographer环境建立以及建图测试(详细级)

  6. Hector SLAM解读(1)原文翻译

      一种带有3D运动状态估计的slam系统 A Flexible and Scalable SLAM System with Full 3D Motion Estimation 摘要: 在许多应用场景 ...

  7. 【Hector slam】A Flexible and Scalable SLAM System with Full 3D Motion Estimation

    作者总结了SLAM前端和后端的区别 While SLAM frontends are used to estimate robot movement online in real-time, the ...

  8. 【ros】rplidar Hector Slam

    想用rplidar跑一下hector slam,在网上发现了几个教程写的都不错,但是亲测发现都有点不足,综合了一下,进行补充. 1. 安装ros 和 创建工作空间 http://blog.csdn.n ...

  9. 【翻译】Kinect v1和Kinect v2的彻底比较

      本连载主要是比较Kinect for Windows的现行版(v1)和次世代型的开发者预览版(v2),以C++开发者为背景介绍进化的硬件和软件.本文主要是对传感的配置和运行条件进行彻底的比较.   ...

随机推荐

  1. Go VSCode配置编译task

    菜单栏Tasks->Configure Tasks { "version": "2.0.0", "tasks": [ { " ...

  2. 如何使用LinkedHashMap来实现一个LruCache

    最近在看mybatis的源代码,发现了mybatis中实现的LruCache使用到了LinkedHashMap,所以就探究了一下LinkedHashMap是如何支持Lru缓存的 LinkedHashM ...

  3. 对于已经添加引用,还找不到类型或名字空间的错误及svn客户端清除用户帐号密码

    1 已经添加过引用,却找不到类型或名字空间. 可以看下项目的的.net framework版本是否一致. 项目(例如类库项目)右键(vs解决方案资源管理器)——>属性——>应用程序——&g ...

  4. ArcGIS AddIN 10.3项目与10.1项目的相互转换

    1. .sln修改 用记事本打开.sln文件,在最上面将10的I昂么修改为12的项目 将下图 修改为下图 反之亦然 2. .csproj项目修改 用记事本打开.csproj文件, vs 2010文件如 ...

  5. VM装mac10.9教程+报错信息解决办法

    VM装mac10.9教程+报错信息解决办法 教程1: 教你在Vmware 10下安装苹果Mac10.9系统 地址:http://tieba.baidu.com/p/2847457021 教程2: VM ...

  6. css学习_css文字阴影、盒子阴影

    文字阴影和盒子阴影的用法: 多阴影

  7. Codeforces 1136 - A/B/C/D/E - (Done)

    链接:https://codeforces.com/contest/1136/ A - Nastya Is Reading a Book - [二分] #include<bits/stdc++. ...

  8. 【转载】word2vec原理推导与代码分析

    本文的理论部分大量参考<word2vec中的数学原理详解>,按照我这种初学者方便理解的顺序重新编排.重新叙述.题图来自siegfang的博客.我提出的Java方案基于kojisekig,我 ...

  9. iptables 分析(1)

    原文:http://blog.chinaunix.net/uid-24207747-id-2622900.html iptables 是用户空间中用于管理包过滤及NAT 等的工具应用程序.它设置防火墙 ...

  10. 数据格式XML、JSON详解

    一. XML数据格式 1.1 XML的定义  扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类 ...