wheelEncoderAckermann

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

Описание

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

Для получения показаний такта энкодера:

  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

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

Зависимости

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

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

Описание

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

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

расширить все

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

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

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

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

расширить все

Количество меток колеса, которые транспортное средство перемещало за временной шаг, возвращаемое как N на 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