exponenta event banner

wheelEncoderOdometryDifferentialDrive

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

Описание

wheelEncoderOdometryDifferentialDrive Система object™ вычисляет дифференциально-приводную одометрию транспортного средства с помощью клещей кодировщика колес.

Для вычисления дифференциально-приводной одометрии транспортного средства:

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

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

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

Создание

Описание

пример

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

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример: 'TrackWidth',1.572

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

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

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

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

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

Описание

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

пример

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

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

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

Число засечек кодера колеса, указанное как матрица n-by-2. n - число выборок в текущем кадре.

Каждый ряд матрицы определяет клещей кодирующего устройства колеса в форме [ticksLeft ticksRight] , где ticksLeft и ticksRight определяют число клещей для левых и правых колес, соответственно.

Пример: [5 5; 2 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

Примеры

свернуть все

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

whlEncOdom = wheelEncoderOdometryDifferentialDrive;

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

ticks = [5 5; 2 2];

Вычислите одометрию транспортного средства с дифференциальным приводом.

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

    0.0054         0         0
    0.0075         0         0

vel = 2×3

    0.5369         0         0
    0.2148         0         0

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

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

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