主要内容

轮式编码器错误源

探索轮式编码器的各种误差源以及它们如何影响车轮内径估计。在定义地面真理轨迹后,改变车轮半径偏置的参数,车轮位置噪声,车轮滑动以及各种车轮编码器对象的轨道宽度。请注意,从滚轮编码器传感器模型中更改输出轨迹上的这些参数的影响。

地面真理轨迹

在检查错误参数时创建一个轨迹轨迹。绘制轨迹。

FS = 100;wps = [0 0 0;20 0 0;20 5 0;0 5 0;0 0 0];toa = cumsum([010 1.25 * pi 10 1.25 * pi])。';Vels = [2 0 0;2 0 0;-2 0 0; -2 0 0; 2 0 0]; traj = waypointTrajectory(wps,......'采样率',fs,'参考范围''enu'......'抵达时间',toa,'速度',vels);%获取姿势值。[POS,Orient,Vel,Acc,Angvel] =看起来(TRAJ,TOA(1):1 / FS:TOA(END));angvelbody =旋转框架(东方,agvel);%情节地面真理位置。图绘图(POS(:,1),POS(:,2))标题('位置(地面真相)')xlabel('x(m)')ylabel('y(m)')轴平等的

图包含轴。具有标题位置(地面真相)的轴包含类型线的对象。

在车轮半径的偏见

为单轮循环模型创建一个轮式编码器传感器wheelencoderunicycle.目的。指定非零WheelRadiusbias.并检查它如何影响内径估计。指定正偏压会导致内径测量算法低估车轮的圆周。这导致估计行进较小距离的内径仪。

ercoder = wheelencoderunicycle;Encoder.WheelRadiusBias = 0.05;odom = wheelencoderodometryunicle(编码器);蜱=编码器(Vel,angvel,东方);Essple = Odom(蜱,血管系列(:3));%情节地面真理和估计职位。图绘图(POS(:,1),POS(:,2),SETHESS(:1),SETHESS(:,2))标题('位置(车轮半径偏见)')xlabel('x(m)')ylabel('y(m)') 传奇('真相''odometry')轴平等的

图包含轴。具有标题位置(车轮半径偏置)的轴包含2个类型的线。这些物体代表了地面真理,内径术。

车轮位置测量中的噪音

指定非零携带机械定位并检查它如何影响内径估计值。该噪声增加了随机偏差与车轮编码器的测量蜱增加。

ercoder = wheelencoderunicycle;encoder.wheelpositionAccuracy = 0.1;%使用本地随机流重现结果。encoder.randomstream =.'MT19937AR与种子';odom = wheelencoderodometryunicle(编码器);蜱=编码器(Vel,angvel,东方);Essple = Odom(蜱,血管系列(:3));%情节地面真理和估计职位。图绘图(POS(:,1),POS(:,2),SETHESS(:1),SETHESS(:,2))标题('位置(车轮位置噪音)')xlabel('x(m)')ylabel('y(m)') 传奇('真相''odometry')轴平等的

图包含轴。具有标题位置(车轮位置噪声)的轴包含2个类型的类型。这些物体代表了地面真理,内径术。

滚轮滑动和打滑

指定非零滑动并检查它如何影响内径估计。指定大于零的值模拟轮滑动。这种滑动导致估计距离的内径仪。滑动比率的负值介于滑动。

ercoder = wheelencoderunicycle;Encoder.slipratio = 0.25;odom = wheelencoderodometryunicle(编码器);蜱=编码器(Vel,angvel,东方);Essple = Odom(蜱,血管系列(:3));%情节地面真理和估计职位。图绘图(POS(:,1),POS(:,2),SETHESS(:1),SETHESS(:,2))标题('位置(轮子滑动)')xlabel('x(m)')ylabel('y(m)') 传奇('真相''odometry')轴平等的

图包含轴。带标题位置(车轮滑动)的轴包含2个类型的类型。这些物体代表了地面真理,内径术。

轨道宽度偏差

指定非零TrackWidthbias.并检查它如何影响内径测量估计。指定正偏压将导致机器算法高估车辆的转向角度。这种高估转弯导致在轮转估计的漂移蒸发。对于这种情况,需要一种带轴的车辆,所以使用wheelencoderdifferencedrive目的。

Encoder = wheelencoderdifferentivedrive;Encoder.TrackWidthBias = 0.1;odom = wheelencoderodometrydifferentialdrive(编码器);蜱=编码器(Vel,angvel,东方);SETHESE = ODOM(蜱虫);%情节地面真理和估计职位。图绘图(POS(:,1),POS(:,2),SETHESS(:1),SETHESS(:,2))标题('位置(轨道宽度偏见)')xlabel('x(m)')ylabel('y(m)') 传奇('真相''odometry')轴平等的

图包含轴。具有标题位置(轨道宽度偏置)的轴包含2个类型的线。这些物体代表了地面真理,内径术。

车轮中的不同偏见

为此指定不同的非零值WheelRadiusbias.并检查它如何影响内径估计值。指定不同的偏差导致在整个轨迹中漂移的径流估计。对于这种情况,需要两个轮子,所以使用wheelencoderdifferencedrive目的。

Encoder = wheelencoderdifferentivedrive;Encoder.WheelRadiusbias = [-0.01,0.001];odom = wheelencoderodometrydifferentialdrive(编码器);蜱=编码器(Vel,angvel,东方);SETHESE = ODOM(蜱虫);%情节地面真理和估计职位。图绘图(POS(:,1),POS(:,2),SETHESS(:1),SETHESS(:,2))标题('位置(不同的车轮偏见)')xlabel('x(m)')ylabel('y(m)') 传奇('真相''odometry')轴平等的

图包含轴。具有标题位置(不同的车轮偏置)的轴包含2个类型的类型。这些物体代表了地面真理,内径术。