GMAPPING的参数设置 |
您所在的位置:网站首页 › 效果器参数说明图 › GMAPPING的参数设置 |
二、运行gmapping
我总结了运行gmapping的两种方法: 1.基于命令行rosrun gmapping slam_gmapping scan:=scan _delta:=0.1 _maxUrange:=4.99 _xmin:=-5.0 _ymin:=-5.0 _xmax:=5.0 _ymax:=5.0 _particles:=30 _srr:=0 _srt:=0 _str:=0 _stt:=0.1 _minimumScore:=10000 这段命令scan:=scan是交代了订阅的激光主题,后面都是gmapping的参数设置。 2.基于launchremap也是订阅主题,下面是参数 3.参数解释gmapping的参数很多,详细的你可以取看我上面给的官方链接,我只讲述一下我觉得比较重要的几个参数。 1. particles (int, default: 30) 这个参数决定gmapping算法中的粒子数,因为gmapping使用的是粒子滤波算法,粒子在不断地迭代更新,所以选取一个合适的粒子数可以让算法在保证比较准确的同时有较高的速度。 2. minimumScore (float, default: 0.0) 最小匹配得分,这个参数很重要,它决定了你对激光的一个置信度,越高说明你对激光匹配算法的要求越高,激光的匹配也越容易失败而转去使用里程计数据,而设的太低又会使地图中出现大量噪声,所以需要大家好好调整。
这篇文章写了参数介绍 slam_gmapping参数介绍 说明: 介绍ROS封装了的OpenSlam GMapping,gmapping功能包提供了基于激光的SLAM,在ROS系统中使用slam_gmapping节点表示。 通过该节点用户可以用机器人在移动过程中激光传感器获取的数据创建2D栅格地图。SLAM SLAM(Simultaneous Localization and Mapping)也称为CML(concurrent mapping and localization),即同时定位与地图构建。机器人SLAM问题要解决的是:机器人在未知环境中从未知位置开始移动,在移动过程中依据位置估计和地图进行自身定位,在定位基础上同步增量建立地图,而实现自主定位和导航。slam_gmapping节点 slam_gmapping节点通过消息sensor_msgs/LaserScan获取数据并建立地图。该创建的地图可以通过ROS主题或者服务方式获取。节点订阅主题 tf (tf/tfMessage),用于激光器坐标系,基座坐标系,里程计坐标系之间转换。scan (sensor_msgs/LaserScan ) ,激光器扫描数据节点发布主题 map_metadata (nav_msgs/MapMetaData),周期性发布地图metadata数据map (nav_msgs/OccupancyGrid),周期性发布地图数据~entropy (std_msgs/Float64),发布机器人姿态分布熵的估计服务 dynamic_map (nav_msgs/GetMap),调用该服务可以获取地图数据参数 ~inverted_laser (string, default:"false"), (已经已出在 版本 1.1.1; 用transform data 替换它) 激光器是right side up (scans are ordered CCW),还是 upside down (scans are ordered CW)? ~throttle_scans (int, default: 1),处理的扫描数据门限,默认每次处理1个扫描数据(可以设置更大跳过一些扫描数据) ~base_frame (string, default:"base_link"),机器人基座坐标系 ~map_frame (string, default:"map"),地图坐标系 ~odom_frame (string, default:"odom"),里程计坐标系 ~map_update_interval (float, default: 5.0),地图更新频率 ~maxUrange (float, default: 80.0),探测最大可用范围,即光束能到达的范围。 ~sigma (float, default: 0.05),endpoint匹配标准差 ~kernelSize (int, default: 1),用于查找对应的kernel size ~lstep (float, default: 0.05),平移优化步长 ~astep (float, default: 0.05),旋转优化步长 ~iterations (int, default: 5),扫描匹配迭代步数 ~lsigma (float, default: 0.075),用于扫描匹配概率的激光标准差 ~ogain (float, default: 3.0),似然估计为平滑重采样影响使用的gain ~lskip (int, default: 0),每次扫描跳过的光束数. ~minimumScore (float, default: 0.0),为获得好的扫描匹配输出结果,用于避免在大空间范围使用有限距离的激光扫描仪(如5m)出现的jumping pose estimates问题。 当 Scores高达600+,如果出现了该问题可以考虑设定值50。 ~srr (float, default: 0.1),平移时里程误差作为平移函数(rho/rho) ~srt (float, default: 0.2),平移时的里程误差作为旋转函数 (rho/theta) ~str (float, default: 0.1),旋转时的里程误差作为平移函数 (theta/rho) ~stt (float, default: 0.2),旋转时的里程误差作为旋转函数 (theta/theta) ~linearUpdate (float, default: 1.0),机器人每旋转这么远处理一次扫描 ~angularUpdate (float, default: 0.5),Process a scan each time the robot rotates this far ~temporalUpdate (float, default: -1.0),如果最新扫描处理比更新慢,则处理1次扫描。该值为负数时候关闭基于时间的更新 ~resampleThreshold (float, default: 0.5),基于重采样门限的Neff ~particles (int, default: 30),滤波器中粒子数目 ~xmin (float, default: -100.0),地图初始尺寸 ~ymin (float, default: -100.0),地图初始尺寸 ~xmax (float, default: 100.0),地图初始尺寸 ~ymax (float, default: 100.0),地图初始尺寸 ~delta (float, default: 0.05),地图分辨率 ~llsamplerange (float, default: 0.01),于似然计算的平移采样距离 ~llsamplestep (float, default: 0.01),用于似然计算的平移采样步长 ~lasamplerange (float, default: 0.005),用于似然计算的角度采样距离 ~lasamplestep (float, default: 0.005),用于似然计算的角度采样步长 ~transform_publish_period (float, default: 0.05),变换发布时间间隔. ~occ_thresh (float, default: 0.25),栅格地图栅格值 (i.e., set to 100 in the resultingsensor_msgs/LaserScan). ~maxRange (float),传感器最大范围。如果在传感器距离范围内没有障碍物应该在地图上显示为自由空间。 maxUrange < 真实传感器最大距离范围 //map初始化的大小 重要参数说明: particles (int, default: 30) gmapping算法中的粒子数,因为gmapping使用的是粒子滤波算法,粒子在不断地迭代更新,所以选取一个合适的粒子数可以让算法在保证比较准确的同时有较高的速度。 minimumScore (float, default: 0.0) 最小匹配得分,这个参数很重要,它决定了对激光的一个置信度,越高说明对激光匹配算法的要求越高,激光的匹配也越容易失败而转去使用里程计数据,而设的太低又会使地图中出现大量噪声,所以需要权衡调整。 参考: http://openslam.org/gmapping.htmlhttp://blog.csdn.net/x_r_su/article/details/52723244http://blog.csdn.net/eaibot/article/details/51628371http://www.ncnynl.com/archives/201702/1364.html |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |