wheelEncoderUnicycle

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

Описание

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

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

  1. Создайте wheelEncoderUnicycle Объекту и установите его свойства.

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

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

пример

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

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

Свойства

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

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

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

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

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

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

Количество тактов энкодера на оборот колеса, заданное как положительное целое число.

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

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

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

Смещение радиуса колеса, заданное как скаляр в метрах.

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

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

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

Коэффициент скольжения или скольжения колеса, заданный как скаляр, больший или равный -1.

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

  • Для колеса, которое перемещается (при вращении), задайте его как отрицательное значение, больше или равное -1. Меньшее значение обозначает больше заноса. Для колеса, которое не вращается, задайте его как -1.

Типы данных: 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-элементный вектор неотрицательных целых чисел. N - количество выборок.

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

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

release(obj)

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

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

Примеры

свернуть все

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

encoder = wheelEncoderUnicycle;

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

orient = [quaternion([90 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×1

     0
     6

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

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