gmapping matlab实现_gmapping学习

gmapping matlab实现_gmapping学习一、机器人地图机器人地图一般分为三种类型:栅格地图,拓扑地图,特征地图1、栅格地图栅格地图栅格地图,在物流信息技术中有所涉猎,其就是构建一个个“小方块”,利用颜色信息来区分的地图的位置信息。在机器人建图中,栅格地图容易构建,表示且保存位置的唯一,对于短路径的规划方便;但栅格地图的路径规划效率不高,空间浪费(栅格的分辨率不依赖于环境的复杂度)并且也需要精确的机器人位置估计,其对于物体识别的人机交互问…

大家好,又见面了,我是你们的朋友全栈君。

一、机器人地图

机器人地图一般分为三种类型:栅格地图,拓扑地图,特征地图

1、栅格地图

2f20196f2046?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

栅格地图

栅格地图,在物流信息技术中有所涉猎,其就是构建一个个“小方块”,利用颜色信息来区分的地图的位置信息。在机器人建图中,栅格地图容易构建,表示且保存位置的唯一,对于短路径的规划方便;但栅格地图的路径规划效率不高,空间浪费(栅格的分辨率不依赖于环境的复杂度)并且也需要精确的机器人位置估计,其对于物体识别的人机交互问题效果不好。

2、拓扑地图

是指地图学中一种统计地图,一种保持点与线相对位置关系正确而不一定保持图形形状与面积、距离、方向正确的抽象地图。

2f20196f2046?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

拓扑地图

对于使用gmapping建图,所构建的是二维栅格地图。

二、gmapping与SLAM

对于建图,SLAM (simultaneous localization and mapping),也称为CML (Concurrent Mapping and Localization), 我们从名字就可以得知,其包含机器人的定位与地图的构建两部分,或者说并发建图与定位。对于这个问题的模型,就是如果将一个机器人放入未知环境中的未知位置,是否有办法让机器人一边移动一边逐步描绘出此环境完全的地图(完全的地图是指不受障碍行进到房间可进入的每个角落,也就是熟知地图的障碍点)。定位与建图相辅相成、互相影响。

首先,构建地图要知道机器人的精确位姿,精确定位又需要给定的地图做参考。先讲已知精确位姿(坐标和朝向)的地图创建,机器人位置已知,通过激光雷达扫描到环境特征,即障碍物距离。可通过机器人坐标和朝向以及障碍物距离计算出障碍物的坐标,采用bresenham直线段扫面算法,障碍物所处的栅格标注为occupy,机器人所处的栅格与障碍物所处的栅格之间画直线,直线所到之处都为free。当然每个栅格并不是简单的非0即1,栅格的占据可用概率表示,若某一个栅格在激光束a扫描下标识为occupy,在激光束b扫描下也标识为occupy,那该栅格的占据概率就变大,反之,则变小。这样,机器人所处的环境就可以通过二维栅格地图来表征。

三、实现gmapping功能包的条件

1、一台安装了ROS并运行虚拟机的笔记本(或者其它的平台)。

对于ROS环境,所需要的ROS功能包有激光雷达的ROS功能包,gmapping功能包,机器人的驱动包,3个功能包都运行起来后需要编译节点连接,从而构建地图。当然,如果运行顺利,还可以插入一个按键,利用ROS包用来控制机器人的移动。

2、一台激光雷达

(未研究)在国内,现阶段激光雷达的效果也不错,能达到运行要求。

对于建图,机器人应该能检测深度信息与里程计信息。

3、以上都是之前学习的内容。但是除此以外,还必要一台机器人或者机器车,如irobot create或者turtlesim,此平台是必须的。

在这之前,除了在仿真环境里运行建图功能以外,一直没考虑到的问题是,是否只有小车才能承载激光雷达建图,用其他的工具是否可以。答案是不可以,因为运行gampping包需要里程计信息,也就是这个包需要知道你的机器人相对于你的开始位置运动了多少,转了多少角度等信息才可用进行地图的构建,里程计的信息是必须的,一般机器人的ROS驱动程序里都会包含,一般的里程计信息由车轮的转速编码器得到。

四、ROS中的gmapping功能包

slam-gmapping节点接收传感器/激光扫描信息并构建地图。可以通过ROS主题或服务检索地图。

1、订阅

gmapping订阅的其实非常简单,只有两种

tf (tf/tfMessage)

(需要进行激光,基准和测距的相关框架转换)

scan (sensor_msgs/LaserScan)

(激光扫描从中创建地图)

2、发布

(1) map_metadata(nav_msgs / MapMetaData)

从此主题获取地图数据,将其锁定并定期更新。

(2) map(nav_msgs / OccupancyGrid)

从此主题获取地图数据,将其锁定并定期更新

(3) 〜entropy (std_msgs / Float64)

机器人姿态分布的熵的估计值(较高的值表示较大的不确定性)。

3、 服务

dynamic_map(nav_msgs / GetMap)

调用此服务以获取地图数据。

五、gmapping参数

gmapping功能包采用粒子滤波算法。(待研究)

2f20196f2046?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

其中关键的参数为:

1. particles (int, default: 30) 这个参数决定gmapping算法中的粒子数,因为gmapping使用的是粒子滤波算法,粒子在不断地迭代更新,所以选取一个合适的粒子数可以让算法在保证比较准确的同时有较高的速度。

2. minimumScore (float, default: 0.0) 最小匹配得分,这个参数很重要,它决定了对激光的一个置信度,越高说明对激光匹配算法的要求越高,激光的匹配也越容易失败而转去使用里程计数据,而设的太低又会使地图中出现大量噪声,所以需要好好调整。

六、launch文件

启动节点:node pkg=”gmapping” type=”slam_gmapping” name=”slam_gmapping” output=”screen”

移动初始值(距离):param name=”lstep” value=”0.05”/

移动初始值(角度):param name=”astep” value=”0.05″/

param name=”lskip” value=”0″/(!–为0,表示所有的激光都处理,尽可能为零,如果计算压力过大,可以改成1–)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149349.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 世界人工智能大会在哪里举办_中国人工智能大会2021

    世界人工智能大会在哪里举办_中国人工智能大会20219月17日至19日,2018世界人工智能大会将在上海西岸举办。经国务院批准,大会由国家发展改革委、科技部、工业和信息化部、国家网信办、中国科学院、中国工程院和上海市人民政府共同主办。对于这场规模空前、大咖云集、专业尖端的全球AI盛会,上海市表示:这是上海服务服从国家战略、打造国家人工智能发展高地的一次重要亮相;将对标全球最高标准、汇集世界最优资源、展现最新创新成果、提供最佳现场体验、拿出上海最好…

  • idea激活码2022破解方法

    idea激活码2022破解方法,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 安全狗:云时代的服务器安全守护者

    安全狗:云时代的服务器安全守护者

  • 课后作业2

    课后作业2

  • 基于java的项目开发过程_软件开发项目管理整个流程图

    基于java的项目开发过程_软件开发项目管理整个流程图完整项目开发过程原型的设计有产品经理负责。界面的美化有专门的美工负责。前端有专门的前端开发人员负责。研发:研发主要工作就是根据项目的需求文档设计系统架构、设计数据库、编写调试程序代码。对于普通的码农来说,主要的就是编写和调试程序。基于Java的项目开发:1、要想编写程序,需要一个能编写源代码的编辑工具。例如:Notepad++;2、要想测试程序,需要一个编译、执行

    2022年10月26日
  • Django(1)初识Django「建议收藏」

    Django(1)初识Django「建议收藏」前言Django是一个开放源代码的Web应用框架,由Python写成,最初用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站,即CMS(内容管理系统)软件,于2005年7月在BSD许可证下发布,这

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号