monteCarloLocalization
利用距离传感器数据和地图对机器人进行定位
描述
的monteCarloLocalization
系统对象™创建一个蒙特卡洛本地化(MCL)对象。MCL算法使用已知的环境地图、激光雷达扫描数据和里程计传感器数据来估计车辆在其环境中的位置和方向。
为了定位车辆,MCL算法使用粒子滤波器来估计车辆的位置。粒子代表车辆可能状态的分布,其中每个粒子代表一种可能的车辆状态。当车辆在环境中移动时,粒子聚集在一个单一的位置,并使用距离传感器感知环境的不同部分。里程计传感器测量车辆的运动。
一个monteCarloLocalization
对象将姿态和激光雷达扫描数据作为输入。输入的激光雷达扫描传感器数据在其自身的坐标坐标系中给出,算法根据该坐标对数据进行变换SensorModel。SensorPose
属性,您必须指定。输入位姿是通过积分里程计传感器随时间的数据来计算的。如果姿势的变化大于任何指定的更新阈值,UpdateThresholds
,然后更新粒子,算法从粒子滤波器中计算新的状态估计。使用以下过程更新粒子:
粒子的传播基于姿态的变化和指定的运动模型,
MotionModel
.粒子根据接收到每个粒子的距离传感器读数的可能性被分配权重。这些似然权值基于您在中指定的传感器模型
SensorModel
.基于
ResamplingInterval
特性,从后验分布中对粒子进行重采样,去除权重较低的粒子。例如,重采样间隔为2意味着粒子在每一次更新后重新采样。
对象的输出是估计的位姿和协方差,以及的值isUpdated
.这个估计状态是最高加权粒子簇的平均值和协方差。方法中指定的映射坐标中给出了输出位姿SensorModel。地图
财产。如果位姿的变化大于任何更新阈值,则状态估计已经更新并且isUpdated
是真正的
.否则,isUpdated
是假
估计值保持不变。为了持续跟踪机器人状态的最佳估计,重复这个传播粒子的过程,评估它们的可能性,并重新采样。
利用激光雷达扫描数据估计机器人的姿态和协方差:
创建
monteCarloLocalization
对象并设置其属性。调用带有参数的对象,就像调用函数一样。
要了解更多关于System对象如何工作的信息,请参见什么是系统对象?
创建
描述
返回一个MCL对象,该对象使用地图、距离传感器和里程计数据来估计车辆的姿态。默认情况下,分配的是一个空映射,因此在使用对象之前需要一个有效的映射分配。制程
= monteCarloLocalization
创建一个MCL对象,该对象具有一个或多个指定的附加选项制程
= monteCarloLocalization (名称,值
)名称,值
对参数。
的名字
属性名和价值
对应的值。的名字
必须出现在单引号内(”
).可以以任意顺序指定多个名值对参数Name1, Value1,…,的家
.
属性
使用
描述
输入参数
输出参数
对象的功能
要使用对象函数,请将System对象指定为第一个输入参数。例如,释放名为obj
,使用以下语法:
发行版(obj)
例子
参考文献
[1]特龙,塞巴斯蒂安,沃尔夫拉姆·伯加德,迪特尔·福克斯。概率的机器人.麻省理工学院出版社,2005年。
Dellaert, F., D. Fox, W. Burgard, S. Thrun。移动机器人的蒙特卡洛定位。1999 IEEE机器人与自动化国际会议论文集。
扩展功能
版本历史
介绍了R2019b