wheelEncoderAckermann

Симулируйте показания датчика энкодера колеса для транспортного средства Акерманна

Описание

wheelEncoderAckermann Система object™ вычисляет показания метки деления энкодера колеса на основе входа положения транспортного средства Акерманна.

Чтобы получить энкодер отмечают показания:

  1. Создайте wheelEncoderAckermann объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.

Создание

Описание

пример

encoder = wheelEncoderAckermann создает wheelEncoderAckermann Системный объект, encoder.

encoder= wheelEncoderAckermann(Name,Value) свойства наборов для энкодера с помощью одной или нескольких пар "имя-значение". Например, wheelAckermann('SampleRate',120) устанавливает частоту дискретизации энкодера к 120 Гц. Незаданные свойства имеют значения по умолчанию. Заключите каждое имя свойства в кавычки.

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Частота дискретизации энкодера в виде положительной скалярной величины в Гц.

Пример: 'SampleRate',100

Типы данных: double

Количество энкодера отсчитывает на оборот колеса в виде четырехэлементного вектора из положительных целых чисел. Первые, вторые, третьи, и четвертые элементы для оставленного спине, заднего права, оставленного передней стороне, и передние правильные колеса, соответственно.

Типы данных: double

Радиус колеса в виде четырехэлементного вектора из положительных скалярных величин в метрах. Первые, вторые, третьи, и четвертые элементы для оставленного спине, заднего права, оставленного передней стороне, и передние правильные колеса, соответственно.

Типы данных: double

Смещение радиуса колеса в виде четырехэлементного вектора из скаляров в метрах. Первые, вторые, третьи, и четвертые элементы для оставленного спине, заднего права, оставленного передней стороне, и передние правильные колеса, соответственно.

Типы данных: double

Стандартное отклонение ошибки положения колеса в виде четырехэлементного вектора из неотрицательных скаляров в радианах. Первые, вторые, третьи, и четвертые элементы для оставленного спине, заднего права, оставленного передней стороне, и передние правильные колеса, соответственно.

Типы данных: double

Ускользните или скользите отношение колеса в виде четырехэлементного вектора из скаляров, в которых каждый скаляр больше, чем или равен –1. Первые, вторые, третьи, и четвертые элементы для оставленного спине, заднего права, оставленного передней стороне, и передние правильные колеса, соответственно.

  • Для колеса, которое уменьшается (по вращению), задайте его как положительное значение. Более высокое значение обозначает больше скольжения.

  • Для колеса, которое скользит (при вращении), задайте его как отрицательную величину, больше, чем или равный –1. Нижнее значение обозначает больше скольжения. Для колеса, которое не вращается, задайте его как –1.

Типы данных: double

Расстояние между осями колеса в виде двухэлементного вектора из положительных скалярных величин в метрах. Первый элемент для задней дорожки, и второй элемент для передней дорожки.

Типы данных: double

Смещение ширины дорожки в виде двухэлементного вектора из скаляров в метрах. Первый элемент для задней дорожки, и второй элемент для передней дорожки.

Типы данных: double

Расстояние между передней стороной и задними осями в виде положительной скалярной величины в метрах.

Типы данных: double

Источник случайных чисел в виде вектора символов или строки:

  • 'Global stream' – Случайные числа сгенерированы с помощью текущего глобального потока случайных чисел.

  • 'mt19937ar with seed' – Случайные числа сгенерированы с помощью mt19937ar алгоритма с seed, заданным Seed свойство.

Типы данных: char | string

Начальный seed mt19937ar алгоритма генератора случайных чисел в виде неотрицательного целого числа.

Зависимости

Чтобы включить это свойство, установите RandomStream к 'mt19937ar with seed'.

Использование

Описание

ticks = encoder(velocity,angularVelocity,orientation) возвратите показания метки деления колеса, ticks, сформируйте скорость, скорость вращения и информацию об ориентации.

Входные параметры

развернуть все

Скорость транспортного средства в локальной навигации структурирует в виде N-by-3 матрицу скаляров в m/s. N является количеством выборок.

Скорость вращения транспортного средства в локальной навигации структурирует в виде N-by-3 матрицу скаляров в rad/s. N является количеством выборок.

Ориентация транспортного средства в локальной навигации структурирует в виде N - вектор элемента из quaternion или 3 3 N массивом матриц вращения. N является количеством выборок. Каждая матрица кватерниона или вращения является вращением системы координат от локальной системы координат навигации до текущей системы координат кузова.

Выходные аргументы

развернуть все

Количество колеса отмечает транспортное средство, перемещенное на временной шаг, возвращенный как N-by-4 матрица неотрицательных целых чисел. N является количеством выборок. Первые, вторые, третьи, и четвертые столбцы для оставленного спине, заднего права, оставленного передней стороне, и передние правильные колеса, соответственно.

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

cloneСоздайте объект дублированной системы
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта
isLockedОпределите, используется ли Системный объект

Примеры

свернуть все

Создайте датчик энкодера колеса.

encoder = wheelEncoderAckermann;

Задайте положения транспортного средства.

orient = [quaternion([60 0 0],'eulerd','ZYX','frame'); quaternion([45 0 0], 'eulerd', 'ZYX', 'frame')];
vel = [1 0 0; 0 1 0];
angvel = [0 0 0.2; 0 0 0.1];

Сгенерируйте метки деления колеса от положений.

ticks = encoder(vel,angvel,orient)
ticks = 2×4

     3     6     6     8
     6     7     6     7

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

Введенный в R2020b
Для просмотра документации необходимо авторизоваться на сайте