odometryMotionModel

创建一个测距运动模型

描述

odometryMotionModel创建用于差动驱动车辆的里程计的运动模型对象。这个对象包含特定运动模型参数。您可以使用此对象指定的运动模型参数monteCarloLocalization宾语。

这种运动模型假设车辆进行纯旋转和平移运动从一个位置到其他旅行。为模型传播点向前或向后运动根据这些运动模式。的元素噪声属性是指在运动的方差。要看到的改变噪声参数,使用效果showNoiseDistribution

创建

描述

OMM= odometryMotionModel创建用于差动驱动车辆的里程计的运动模型对象。

属性

展开全部

高斯噪声对车辆运动,指定为4元素矢量。此属性表示为高斯方差参数噪声施加到车辆运动。矢量对应的以下的错误,以便元素:

  • 旋转误差由于旋转运动

  • 旋转误差由于平移运动

  • 平移误差由于平移运动

  • 平移误差由于旋转运动

此属性是只读的。

键入测距运动模型,返回'DifferentialDrive'。这个只读属性指示正在使用的对象测距运动模型的类型。

对象函数

showNoiseDistribution 显示噪声参数的影响

例子

全部收缩

这个例子说明了如何使用odometryMotionModel班来预测车辆的姿态。一个odometryMotionModel对象包含一个差分驱动车辆的运动模型参数。使用对象来预测基于其当前和以前的姿势和运动模型参数的车辆的姿态。

创建测距运动模型对象。

motionModel = odometryMotionModel;

以前的定义姿势和当前的里程计读数。每个姿态预测对应的行previousPoses向量。

previousPoses = RAND(10,3);currentOdom = [0.1 0.1 0.1]。

对象的第一个调用初始化值,并返回以前的姿势,就当前的姿势。

currentPoses = motionModel(previousPoses,currentOdom);

后续调用对象与更新的里程计姿态返回基于运动模型所预测的姿势。

currentOdom = currentOdom + [0.1 0.1 0.05];predPoses = motionModel(previousPoses,currentOdom);

此示例示出了如何可视化在不同的噪声参数的影响odometryMotionModel类。一个odometryMotionModel对象包含一个差分驱动车辆运动模型噪声参数。使用showNoiseDistribution可视化如何改变这些值会影响预测姿势的分布。

创建一个运动模型对象。

motionModel = odometryMotionModel;

显示粒子与现有的噪声参数的分布。每个粒子是预测姿态假设。

showNoiseDistribution(motionModel);

显示与样品的指定测距姿态变化和数量分布。在里程计测的变化作为与周围分布假设的最终姿态基础上,噪声参数。

showNoiseDistribution(motionModel,...'OdometryPoseChange'[0.5 0.1 0.25],...'NUMSAMPLES',1000);

更改噪声参数和可视化效果。使用的样品同样的里程计姿态变化和数量。

motionModel.Noise = [0.2 1 0.2 1];showNoiseDistribution(motionModel,...'OdometryPoseChange'[0.5 0.1 0.25],...'NUMSAMPLES',1000);

限制

如果您在使用它后更改您的运动模型monteCarloLocalization对象,调用释放在该对象中预先。例如:

MCL = monteCarloLocalization(...);[isUpdated,姿势,协方差] = MCL(...);释放(MCL)mcl.MotionModel.PropName =值;

参考

[1]特龙,Sebatian,沃尔夫勒姆·伯加德,和Dieter福克斯。概率机器人。麻省理工学院出版社,2005年。

扩展功能

C / C ++代码生成
生成使用MATLAB®编码器™C和C ++代码。

介绍了在R2019b