主要内容

odometryMotionModel

创建一个测程运动模型

描述

odometryMotionModel为差动驱动车辆创建里程测量运动模型对象。该对象包含特定的运动模型参数。对象中指定运动模型参数monteCarloLocalization对象。

该运动模型假设车辆从一个位置移动到另一个位置时进行纯旋转和平移运动。该模型基于这些运动模式传播向前或向后运动的点。的元素噪音性质是指运动中的方差。要查看更改噪声参数的效果,请使用showNoiseDistribution

创建

描述

例子

脱石= odometryMotionModel为差动驱动车辆创建里程测量运动模型对象。

属性

全部展开

车辆运动的高斯噪声,指定为4元向量。此属性表示应用于车辆运动的高斯噪声的方差参数。向量的元素按顺序对应以下错误:

  • 旋转运动引起的旋转误差

  • 由平动引起的转动误差

  • 平移运动引起的平移误差

  • 旋转运动引起的平动误差

此属性是只读的。

里程计运动模型的类型,返回为“DifferentialDrive”.此只读属性指示对象使用的里程计运动模型的类型。

对象的功能

showNoiseDistribution 显示噪声参数效果

例子

全部折叠

方法的使用odometryMotionModel类来预测车辆的姿态。一个odometryMotionModel对象包含差动驱动车辆的运动模型参数。根据车辆当前和之前的姿态以及运动模型参数,使用该对象来预测车辆的姿态。

创建里程表运动模型对象。

motionModel = odometryMotionModel;

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

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

对对象的第一次调用初始化值,并将以前的姿态作为当前姿态返回。

currentpose = motionModel(previousPoses, currentOdom);

后续调用具有更新的里程测量姿势的对象将返回基于运动模型的预测姿势。

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

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

创建一个运动模型对象。

motionModel = odometryMotionModel;

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

showNoiseDistribution (motionModel);

图测程运动模型包含一个轴对象。axis对象的标题为Noise Parameters:[0.2 0.2 0.2 0.2]包含4个类型为line的对象。这些对象代表机器人初始姿态,机器人最终姿态,最终姿态的样本。

显示分布与指定的里程,姿态变化和样本数量。测程的变化被用作最终的姿态,假设分布在基于噪音参数。

showNoiseDistribution (motionModel...“OdometryPoseChange”, [0.5 0.1 0.25],...“NumSamples”,1000);

图测程运动模型包含一个轴对象。axis对象的标题为Noise Parameters:[0.2 0.2 0.2 0.2]包含4个类型为line的对象。这些对象代表机器人初始姿态,机器人最终姿态,最终姿态的样本。

改变噪音参数和可视化效果。使用相同的测程姿势变化和样本数量。

motionModel。噪音= [0.2 1 0.2 1]; showNoiseDistribution(motionModel,...“OdometryPoseChange”, [0.5 0.1 0.25],...“NumSamples”,1000);

图测程运动模型包含一个轴对象。标题为Noise Parameters的axis对象:[0.2 1 0.2 1]包含4个类型为line的对象。这些对象代表机器人初始姿态,机器人最终姿态,最终姿态的样本。

限制

控件使用后,如果对运动模型进行更改monteCarloLocalization对象,调用释放事先在那个物体上。例如:

mcl = monteCarloLocalization;[isUpdated,pose,covariance] = mcl(范围,角度);release(mcl) mcl. motionmodel . noise = [0.25 0.25 0.4 0.4];

参考文献

Thrun, sebastian, Wolfram Burgard和Dieter Fox。概率的机器人.麻省理工学院出版社,2005年。

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

R2019b引入