wheelEncoderOdometryAckermann

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

Описание

The wheelEncoderOdometryAckermann System 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-element в радианах. n - количество выборок в текущей системе координат.

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

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

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

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

Создайте 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++ с помощью Coder™ MATLAB ®

.
Введенный в R2020b
Для просмотра документации необходимо авторизоваться на сайте