使用范围传感器数据和地图本地化机器人
这Montecarlolocalization
System Object™创建蒙特卡罗本地化(MCL)对象。MCL算法用于估计使用环境,LIDAR扫描数据和内径测量传感器数据的已知地图在其环境中估计车辆的位置和方向。
为了本地化车辆,MCL算法使用粒子过滤器来估计车辆的位置。颗粒代表了车辆的可能状态的分布,其中每个粒子代表可能的车辆状态。当车辆在环境中移动并使用范围传感器感测环境的不同部分时,粒子会聚在单个位置周围。径流传感器测量车辆的运动。
一种Montecarlolocalization
对象将姿势和LIDAR扫描数据作为输入。输入的LIDAR扫描传感器数据在其自己的坐标帧中给出,并且算法根据该算法转换数据Sensormodel.Sensetose.
您必须指定的属性。通过随着时间的推移集成了内径测量传感器数据来计算输入姿势。如果姿势的变化大于任何指定的更新阈值,updatethresholds.
,更新粒子,并且算法计算来自粒子滤波器的新状态估计。使用此过程更新粒子:
粒子基于姿势和指定运动模型的变化传播,MotionModel.
。
基于接收每个粒子的范围传感器读数的可能性,将粒子分配权重。这些似然重量基于您指定的传感器模型visormodel.
。
基于这一点重新采样interval.
性质,颗粒从后部分布重新采样,消除低重量的颗粒。例如,2的重新采样间隔意味着粒子在其他更新之后重新采样。
对象的输出是估计的姿势和协方差,以及价值iSupdated.
。该估计状态是最高加权颗粒的平均值和协方差。输出姿势在地图的坐标帧中给出,该框架visormodel.map.
财产。如果姿势的变化大于任何更新阈值,则状态估计已更新和iSupdated.
是真的
。除此以外,iSupdated.
是错误的
估计仍然是相同的。为了连续跟踪机器人状态的最佳估计,重复传播粒子的此过程,评估它们的可能性和重采样。
使用LIDAR扫描数据估计机器人姿势和协方差:
创造Montecarlolocalization
对象并设置其属性。
用参数调用对象,就像它是一个函数一样。
要了解有关系统对象如何工作的更多信息,请参阅什么是系统对象?。
返回使用地图,范围传感器和测距仪数据估计车辆的姿势的MCL对象。缺省情况下,分配空映射,因此在使用对象之前需要有效的地图分配。蒙
= Montecarlolocalization.
创建一个mcl对象,其中包含一个或多个指定的其他选项蒙
= montecarlolocalization(名称,价值
的)名称,价值
对论点。
姓名
是属性名称和价值
是相应的价值。姓名
必须出现在单引号内(''
)。您可以以任何顺序指定多个名称值对参数name1,value1,...,namen,valuen
。
[
使用MCL算法估计车辆的姿势和协方差。估计基于从指定的车辆内径测量计算的姿势,iSupdated.
那姿势
那协方差
] = MCL(傲慢
那扫描
的)傲慢
,以及指定的LIDAR扫描传感器数据,扫描
。蒙
是个Montecarlolocalization
目的。iSupdated.
指示估计是否已基于此更新updatethreshold.
财产。
要启用此语法,必须设置USELIDARSCAN.
财产真的
。例如:
Mcl = Montecarlolocalization('USELIDARSCAN',真的);......[ISUPDATED,POSE,协方差] = MCL(履历,扫描);
要使用对象函数,请将System对象指定为第一个输入参数。例如,要发布命名的系统对象的系统资源obj.
,使用此语法:
释放(obj)
[1] Thrun,Sebatian,Wolfram Burgard和Dieter Fox。概率机器人学。MIT Press,2005。
[2]大拉特,F.,D. Fox,W.Burgard和S. Thrun。“移动机器人的蒙特卡罗本地化。”诉讼1999年IEEE机器人和自动化国际会议。