exponenta event banner

odometryMotionModel

Создание модели движения одометрии

Описание

odometryMotionModel создает объект модели движения одометрии для транспортных средств с дифференциальным приводом. Этот объект содержит определенные параметры модели движения. Этот объект можно использовать для задания параметров модели движения в monteCarloLocalization объект.

Эта модель движения предполагает, что транспортное средство совершает чисто вращательное и поступательное движение для перемещения из одного положения в другое. Модель распространяет точки для движения вперед или назад на основе этих образцов движения. Элементы Noise ссылаются на дисперсию в движении. Чтобы увидеть эффект изменения параметров шума, используйте 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);

Figure Odometry Motion Model contains an axes. The axes with title Noise Parameters: [0.2 0.2 0.2 0.2] contains 4 objects of type line. These objects represent Robot initial pose, Robot final pose, Samples at final pose.

Показать распределение с указанным изменением позы одометрии и количеством образцов. Изменение одометрии используется в качестве конечной позы с гипотезами, распределенными вокруг на основе Noise параметры.

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

Figure Odometry Motion Model contains an axes. The axes with title Noise Parameters: [0.2 0.2 0.2 0.2] contains 4 objects of type line. These objects represent Robot initial pose, Robot final pose, Samples at final pose.

Изменить Noise параметры и визуализация эффектов. Используйте одно и то же изменение позы одометрии и количество образцов.

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

Figure Odometry Motion Model contains an axes. The axes with title Noise Parameters: [0.2 1 0.2 1] contains 4 objects of type line. These objects represent Robot initial pose, Robot final pose, Samples at final pose.

Ограничения

При внесении изменений в модель движения после ее использования с помощью monteCarloLocalization объект, вызов release на этом объекте заранее. Например:

mcl = monteCarloLocalization; 
[isUpdated,pose,covariance] = mcl(ranges,angles); 
release(mcl) 
mcl.MotionModel.Noise = [0.25 0.25 0.4 0.4];

Ссылки

[1] Трюн, Себатиан, Вольфрам Бургард и Дитер Фокс. Вероятностная робототехника. MIT Press, 2005.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2019b