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);

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

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

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

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

Ограничения

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

mcl = monteCarloLocalization(...); 
[isUpdated,pose,covariance] = mcl(...); 
release(mcl) 
mcl.MotionModel.PropName = value; 

Ссылки

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

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

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

Введенный в R2019b