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

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

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием 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++ с помощью MATLAB® Coder™.

Введенный в R2020b