wheelEncoderOdometryDifferentialDrive

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

Описание

The wheelEncoderOdometryDifferentialDrive System 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-на-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Определите, используется ли системный объект

Примеры

свернуть все

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

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