exponenta event banner

wheelEncoderOdometryBicycle

Вычислить велосипедную одометрию с помощью клещей кодировщика колес и угла поворота

Описание

wheelEncoderOdometryBicycle Система object™ вычисляет велодометрию с использованием тактов кодировщика колес и угла поворота транспортного средства.

Для вычисления велодометрии:

  1. Создать wheelEncoderOdometryBicycle и задайте его свойства.

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

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

Создание

Описание

пример

whlEncOdom = wheelEncoderOdometryBicycle создает wheelEncoderOdometryBicycle Системный объект со значениями свойств по умолчанию.

whlEncOdom = wheelEncoderOdometryBicycle(encoder) создает wheelEncoderOdometryBicycle Системный объект с использованием указанного wheelEncoderBicycle Системный объект, encoder, для установки свойств.

whlEncOdom = wheelEncoderOdometryBicycle(Name,Value) Задает свойства, используя одну или несколько пар имя-значение. Неопределенные свойства имеют значения по умолчанию. Заключите каждое имя свойства в кавычки.

Например, whlEncOdom = wheelEncoderOdometryBicycle('SampleRate',100) устанавливает частоту дискретизации датчика равной 100 Гц.

Свойства

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

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

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

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

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

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

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

Число делений кодировщика на оборот колеса, указанное как положительное целое число. Это значение соответствует заднему колесу велосипеда.

Пример: 'TicksPerRevolution',2048

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

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

Пример: 'WheelRadius',0.35

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

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

Пример: 'WheelBase',2.818

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

Начальная поза транспортного средства, определяемая как трехэлементный вектор вида [X Y Yaw]. X и Y указывают положение транспортного средства в метрах. Yaw указывает ориентацию транспортного средства в радианах. Все значения находятся в локальной навигационной системе координат.

Пример: 'InitialPose',[0 0 0]

Настраиваемый: Нет

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

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

Описание

pose = whlEncOdom(ticks,steer) вычисляет одометрию велосипеда с помощью указанных засечек кодировщика колес ticks и угол поворота рулевого управления steerи возвращает положение и ориентацию транспортного средства в локальной навигационной системе координат.

пример

[pose,velocity] = whlEncOdom(ticks,steer) дополнительно возвращает линейную и угловую скорость транспортного средства в локальной навигационной системе координат.

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

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

Число засечек кодера колеса, указанное как вектор столбца n-элемента. n - число выборок в текущем кадре. Каждый элемент - это количество клещей для заднего колеса велосипеда в соответствующем образце.

Пример: [5; 2]

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

Угол поворота транспортного средства, определяемый как вектор колонки n-элементов в радианах. n - число выборок в текущем кадре.

Пример: [0.2; 0.2]

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

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

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

Положение и ориентация транспортного средства, возвращенные в виде матрицы n-by-3. n - число выборок в текущем кадре. Каждая строка матрицы определяет положение и ориентацию образца в форме [X Y Yaw]. X и Y указывают положение транспортного средства в метрах. Yaw указывает ориентацию транспортного средства в радианах. Все значения находятся в локальной навигационной системе координат.

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

Линейная и угловая скорость транспортного средства, возвращаемая в виде матрицы n-by-3. n - число выборок в текущем кадре. Каждая строка матрицы определяет линейную и угловую скорость образца в виде [velX velY yawRate]. velX и velY определяют линейную скорость транспортного средства в метрах в секунду. yawRate - угловая скорость транспортного средства в радианах в секунду. Все значения находятся в локальной навигационной системе координат.

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

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

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

release(obj)

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

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

Примеры

свернуть все

Создать wheelEncoderOdometryBicycle Системный объект.

whlEncOdom = wheelEncoderOdometryBicycle;

Укажите количество засечек кодировщика колеса и угол поворота.

ticks = [5; 2];
steer = [0.2; 0.2];

Вычислите велодометрию.

[pose,vel] = whlEncOdom(ticks,steer)
pose = 2×3

    0.0054    0.0000    0.0004
    0.0075    0.0000    0.0005

vel = 2×3

    0.5369    0.0002    0.0386
    0.2148    0.0001    0.0154

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2020b