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] Thrun, Sebatian, Wolfram Burgard, and Dieter Fox. Вероятностная робототехника. MIT Press, 2005.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2019b