exponenta event banner

wheelEncoderAckermann

Имитация показаний датчиков кодировщика колес для автомобиля Ackermann

Описание

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 собственность.

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

Начальное начальное число алгоритма генератора случайных чисел mt19937ar, определяемое как неотрицательное целое число.

Зависимости

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

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

Описание

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

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

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

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

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

Создайте датчик датчика положения колеса.

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