二维slam地图构建
Gmapping功能包
一种粒子滤波算法,将定位与建图分离,先进行定位、再进行建图,适合构建小场景环境下的地图信息。
需要机器人提供里程计信息作为先验知识。
虽然可以降低对激光雷达频率的要求,但是也对机器人硬件提出了需求

Ros对gampping做了很好的封装,通过功能包提供的接口进行使用。要使用gmapping,需要机器人能够发布深度信息(雷达传感器为主,也可以使用三维相机转换成二维雷达信息,LaserScan消息结构的数据)、IMU信息(惯性测量单元获取的加速度信息,可有可无)、里程计信息(编码器通过速度积分得到位置)这三种话题的数据。

Gmapping中的话题、服务和坐标变换

//ros中常用的卡尔曼滤波算法,对里程计信息滤波,提高里程计数据的稳定性

<node pkg="robot_pose_ekf" name="robot_pose_ekf" type="robot_pose_ekf"><param name="output_frame" value="odom" /><param name="base_footprint_frame" value="base_link"/><remap from="imu_data" to="imu" />
</node>

在不同的机器人上,为了充分的发挥出计算平台的性能、满足不同场景的需求,可以通过算法开放的参数进行配置,参数基本都是跟算法原理相关的,对算法不了解的话建议使用默认值。参数说明参考:http://wiki.ros.org/gmapping

<node pkg="gmapping" type="slam_gmapping" name="slam_gmapping" output="screen"><param name="map_update_interval" value="5.0"/><param name="maxUrange" value="16.0"/><param name="sigma" value="0.05"/><param name="kernelSize" value="1"/><param name="lstep" value="0.05"/><param name="astep" value="0.05"/><param name="iterations" value="5"/><param name="lsigma" value="0.075"/><param name="ogain" value="3.0"/><param name="lskip" value="0"/><param name="srr" value="0.1"/><param name="srt" value="0.2"/><param name="str" value="0.1"/><param name="stt" value="0.2"/><param name="linearUpdate" value="1.0"/><param name="angularUpdate" value="0.5"/><param name="temporalUpdate" value="3.0"/><param name="resampleThreshold" value="0.5"/><param name="particles" value="30"/><param name="xmin" value="-50.0"/><param name="ymin" value="-50.0"/><param name="xmax" value="50.0"/><param name="ymax" value="50.0"/><param name="delta" value="0.05"/><param name="llsamplerange" value="0.01"/><param name="llsamplestep" value="0.01"/><param name="lasamplerange" value="0.005"/><param name="lasamplestep" value="0.005"/>
</node>

打开可视化界面,方便看到slam的过程

 <node pkg="rviz"  type="rviz"  name="rviz"  args="-d $(find limo_bringup)/rviz/gmapping.rviz" />

1、 启动机器人底盘
2、 启动gmapping建图文件
3、 启动键盘控制节点

黑色线条是障碍物的位置,白色区域是没有障碍物的空间,灰色区域是机器人还没去过、不确定是否有障碍物的空间。
栅格地图就是把整个空间打散成一系列的正方形的格子,格子的边长表示建图的分辨率,格子的数值表示此处是否有障碍物。

Cartographer功能包
基于图优化的slam算法,可以实现机器人在二维或三维条件下的定位及建图功能,设计目的是在计算资源有限的情况下,实时获取相对较高精度的地图。

分为两部分,第一部分是local slam,也就是slam前端,基于激光雷达信息建立并维护一系列的子图submap(栅格地图),每当有新的雷达数据进来,系统就会通过一些匹配算法将其插入到子图的最佳位置,但是子图会产生累积误差;第二部分是global slam,是slam算法的后端,通过闭环检测来消除累积误差,每当一个子图构建完成后,就不会再有新的雷达数据插入这个子图中,算法也会将这个子图加入到闭环检测中。也就是说,Local slam生成一个个的拼图块,global slam完成整个拼图。

古月 ROS移动机器人实战 二维slam地图构建 笔记相关推荐

  1. 古月 ROS移动机器人实战5.3ROS导航框架介绍笔记

    机器人自主导航流程 机器人躲避障碍物,偏离最优路径,由本地规划器完成.本地规划器实时规划避障路径,还会努力让机器人沿着全局路径运动,也就是规划机器人每时每刻的运动速度,速度通过cmd_vel发送给底盘 ...

  2. 【应用SLAM技术建立二维栅格化地图】

    应用SLAM技术建立二维栅格化地图 一. 设计目标 二. 技术要求 三. 设计方案 1. 激光SLAM简介 2. Cartographer简介与使用 1) Cartographer简介 2) 官方de ...

  3. SLAM 建立局部二维栅格地图的一种方法

    转载请说明出处:http://blog.csdn.net/zhubaohua_bupt/article/details/72923373 二维占据栅格地图(栅格地图)广泛应用于移动机器人导航领域中,比 ...

  4. 【全局地图mapping】二维全局地图的开源方案及对比--gmapping、hector、karto、cartographer

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.gmapping算法建图[基于Raoo-Blackwellize ...

  5. 三维点云地图转二维栅格地图

    文章目录 前言 一.安装octomap 二.安装map_server 三.发布.转换并保存 前言 三维点云地图转二维栅格地图的实现需要1.地图转换工具--octomap:2.栅格地图保存工具--map ...

  6. 三维pcd地图转二维栅格地图

    1.概述 在使用导航时,通常会根据二维栅格地图做路径规划,需要将三维点云地图转化成栅格地图. 本文采用滤波及投影的方法, 主要步骤包括 对输入点云进行直通滤波,获取限定高度范围的数据 在进行半径滤波, ...

  7. (一)路径规划算法---Astar与C++可视化在RVIZ的二维栅格地图

    Astar与C++可视化在RVIZ的二维栅格地图中 文章目录 Astar与C++可视化在RVIZ的二维栅格地图中 1.功能包介绍 2.二维栅格地图以及相关坐标系说明 2.1 世界坐标系 2.2 栅格坐 ...

  8. 【Nav2中文网】六、插件教程(一)编写新的二维代价地图(Costmap2D)插件

    本教程来自:Nav2中文网 Nav2交流社区:https://fishros.org.cn/forum ROS2/Nav2千人交流群:(QQ)139707339 更多精彩教程请关注微信公众号:鱼香RO ...

  9. 矢量切片_数据粒度均衡的二维矢量瓦片构建方法

    作 者 信 息 应 申1,2,王子豪1,杜志强3,丁火平4, 李翔翔4 (1. 武汉大学 资源与环境科学学院,湖北 武汉 430079:2. 自然资源部城市国土资源监测与仿真重点实验室,广东 深圳 5 ...

最新文章

  1. pdf批量添加图章_关于添加图章,过来人有哪些实用经验
  2. ubuntu下创建eclipse桌面快捷方式
  3. 对计算机应用的认识100,计算机应用基础
  4. flask的同一ip域名不同端口的两个网站session冲突
  5. 初识神经网络NeuralNetworks
  6. 解决开机POST提示Strike tne F1 key to continue,F2 to run the setup utility
  7. python基础(文件、异常、模块、类、对象)
  8. 嵌入式linux的学习笔记-pipe管道(二)
  9. Linux包含一个名称是()的调试程序,开发一个 Linux 调试器(九):处理变量
  10. Runner站立会议05
  11. 模型相关:修改模型的坐标原点到用户的自定义位置
  12. Teamviewer远程连接提示疑似商业用途处理替代软件
  13. DirectX 9 游戏汉化详解
  14. HackerRank Twin Arrays 题解
  15. 史陶比尔机器人的 LLI (Low Level Interface)
  16. 他25岁进贝尔实验室,32岁提信息论,40岁办达特茅斯会议,晚年患上阿兹海默 | 人物志
  17. 单细胞测序系列之一:测序技术的发展
  18. 一个简单的log2(x)的快速计算方法
  19. 西南大学计算机2019专业英语秋季答案,西南大学2019年秋《大学英语B》作业资料参考答案...
  20. 用计算机绘制函数图像ppt,如何利用描点画函数图像课件制作

热门文章

  1. 利用IPHONE自带播放器播放视频
  2. [书籍翻译]12周撰写期刊文章 学术出版成功指南——第 7 周:出示证据
  3. 鸿蒙系统2.0崩溃了,集体失声?鸿蒙系统官宣后,鸿蒙系统的真实现状显现
  4. 数据可视化神器,精彩的地图可视化展示
  5. 正则表达式之数字验证
  6. 企业微信公众号运营技巧有哪些
  7. 文档被外泄?如何有效管控文档拷贝行为
  8. 【Git学习笔记二】时光穿梭机
  9. 基于Spring Security和 JWT的权限系统设计
  10. html5创建三次贝塞尔曲线,HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线