使用范围传感器数据和地图本地化机器人
该monteCarloLocalization
系统对象™创造了蒙特卡洛定位(MCL)对象。该MCL算法用于使用环境的一个已知的地图来估计在其环境中的车辆的位置和方向,激光雷达扫描数据,和测距传感器数据。
本地化车辆中,MCL算法使用粒子滤波来估计车辆的位置。所述颗粒代表可能状态的用于车辆,其中每个粒子代表一个可能的车辆状态的分布。颗粒会聚围绕一个位置如在环境中的车辆移动,并感测使用一系列传感器的环境的不同部分。一个测距传感器测量车辆的运动。
一种monteCarloLocalization
对象采用的姿态和激光雷达扫描数据作为输入。激光雷达扫描传感器数据的输入在它自己的坐标系中给出,并且该算法根据所述转换数据SensorModel.SensorPose
属性,您必须指定。输入姿势是由随时间的测距传感器数据积分计算。如果姿势的变化比任何指定的更新阈值时,UpdateThresholds
,则颗粒被更新并且该算法计算从颗粒过滤器一个新的状态估计。该颗粒采用这种工艺更新:
所述颗粒是基于姿势的变化和指定的运动模型传播,MotionModel
。
这些颗粒被指定基于接收到所述范围传感器读数为每个粒子的似然性的权重。这些可能性权重是基于您指定的传感器模型SensorModel
。
基于该ResamplingInterval
属性,颗粒被从后验分布的重采样,和低重量的颗粒被除去。例如,2个装置一个重新采样间隔,所述颗粒被每隔一个更新后重新采样。
对象的输出是估计的姿态和协方差,和的值isUpdated
。这个估计的状态是平均值和颗粒的最高加权群集的协方差。输出姿态在图中给出的坐标是在指定的帧SensorModel.Map
属性。如果姿势的变化比任何更新阈值越大,则状态估计已更新,isUpdated
是真正
。除此以外,isUpdated
是假
以及预算保持不变。对于连续跟踪机器人的状态的最好估计,重复传播的颗粒,评估它们的似然性,并且重采样的这个过程。
要使用激光雷达扫描数据估计机器人姿态和协方差:
创建monteCarloLocalization
对象并设置其属性。
调用带参数的对象,就好像它是一个功能。
要了解更多有关系统对象的方式工作,请参阅什么是系统对象?(MATLAB)。
返回推定车辆的使用地图,一个范围传感器和里程计数据的姿态的MCL对象。默认情况下,空映射分配,所以一个有效的映射分配使用对象之前需要。MCL
= monteCarloLocalization
创建具有额外的选项的一个或多个所指定的MCL对象MCL
= monteCarloLocalization(名称,值
)名称,值
对参数。
名称
是一个属性的名称和值
是对应的值。名称
必须出现内单引号(“”
)。您可以按照任何顺序指定多个名称 - 值对参数名1,值1,...,NameN,值N
。
使用对象函数,指定系统对象作为第一个输入参数。例如,为了释放一个名为System对象的系统资源OBJ
,使用此语法:
释放(OBJ)
[1]特龙,Sebatian,沃尔夫勒姆·伯加德,和Dieter福克斯。概率机器人。麻省理工学院出版社,2005年。
[2] Dellaert,F.,D.福克斯,W. Burgard和S.史朗。“蒙特卡罗定位的移动机器人。”1999年论文集IEEE国际会议机器人与自动化。
lidarScan
|likelihoodFieldSensor
|odometryMotionModel