exponenta event banner

wheelEncoderOdometryAckermann

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

Описание

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

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

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

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

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

Создание

Описание

пример

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

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Описание

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

пример

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

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

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

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

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

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

Примеры

свернуть все

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

whlEncOdom = wheelEncoderOdometryAckermann;

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

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

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

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

    0.0053689   1.0368e-06   0.00038621
    0.0075165   2.0321e-06   0.00054069

vel = 2×3

      0.53689   0.00020735     0.038621
      0.21476   0.00011612     0.015448

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

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

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