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–)

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PhpSpreadsheet读取excel「建议收藏」

    PhpSpreadsheet读取excel「建议收藏」PhpSpreadsheet composerrequirephpoffice/phpspreadsheet支持的格式格式读写OpenDocumentFormat/OASIS(.ods)✓✓OfficeOpenXML(.xlsx)Excel2007andabove✓✓BIFF8(.xls)Excel97anda…

    2022年9月17日
    0
  • SpringMVC-@RequestMapping的参数和用法

    SpringMVC-@RequestMapping的参数和用法RequestMapping里面的注解包含的参数如图:RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。@RequestMapping除了修饰方法,还可来修饰类:类定义处:提供初步的请求映射信息。相对于WEB应用的根目录;方法处:提供进一步的细分映射信息。相对于类定义处的URL。若类定义处未

    2022年5月26日
    65
  • php域名免备案转发,免备案高防CDN支持过墙域名跳转解决域名DNS污染

    php域名免备案转发,免备案高防CDN支持过墙域名跳转解决域名DNS污染免备案服务器联系咨询我QQ:281846000全国节点,自动切换,保证业务的安全和稳定1.301跳转,解决域名被墙,国内免备案不限制内容服务器。2.域名防劫持,DNS防护专属套餐,视频***CDN加速等业务(免&备*案CDN)3.出租海内外高防服务器(TB级防护)4.解决域名DNS被污染问题。(被DNS污染期间不要回源到自己网站,使用过墙DNS24-48小时自动恢复,不要轻易转入他人…

    2022年9月10日
    0
  • clion激活码(破解版激活)[通俗易懂]

    clion激活码(破解版激活),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    68
  • 移动巡检系统_智能巡检app

    移动巡检系统_智能巡检app移动巡检系统我国的石油、燃气、自来水、电力的线路、管道和设备的巡检、陷巡视管理工作主要依靠巡检人员定期定时的人工巡检。传统的巡检工作主要采用手工纸记录的方式,不仅工作量巨大,效率低下,而且纸质的缺陷报

    2022年8月6日
    10
  • Struts2 入门学习总结一

    Struts2 入门学习总结一一、Struts2简介Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2是Struts的下一代产品,这个框架充分发挥了Struts1和WebWork这两种技术的优势,抛弃原来Struts1的缺点,使得Web开发更加容易。struts2还有以下…

    2025年6月25日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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