uavOrbitFollower

Местоположение орбиты интереса с помощью UAV

Описание

uavOrbitFollower объект является 3-D последователем пути для беспилотных воздушных транспортных средств (БПЛА), чтобы следовать за круговыми путями, который основан на предварительном расстоянии. Учитывая центр круга, радиус и положение, последователь орбиты вычисляет желаемое рыскание и курс, чтобы следовать за предварительной точкой на пути. Объект также вычисляет перекрестный дефект записи от положения UAV до пути и отслеживает, сколько раз была завершена круговая орбита.

Настройте lookaheadDistance введите, чтобы помочь улучшить отслеживание пути. Уменьшение расстояния может улучшить отслеживание, но может привести к колебаниям в пути.

Вращаться вокруг местоположения с помощью UAV:

  1. Создайте uavOrbitFollower объект и набор его свойства.

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

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?

Создание

Описание

пример

orbit = uavOrbitFollower возвращает объект последователя орбиты со значениями свойств по умолчанию.

orbit = uavOrbitFollower(Name,Value) создает последователя орбиты с дополнительными опциями, заданными одним или несколькими Name,Value парные аргументы.

Name имя свойства и Value соответствующее значение. Name должен появиться в одинарных кавычках (''). Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN.

Свойства

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

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

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

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Тип UAV в виде любого 'fixed-wing' или 'multirotor'.

Центр орбиты в виде [x y z] вектор. [x y z] позиция центра орбиты в NED-координатах, (на северо-восток вниз) заданных в метрах.

Пример: [5,5,-10]

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

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

Пример 5

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

Направление орбиты в виде скаляра. Положительные значения указывают по часовой стрелке поворот, как просматривается сверху. Отрицательные величины указывают против часовой стрелки поворот. Значение 0 автоматически определяет значение на основе входа Pose.

Пример 1

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

Минимальный радиус орбиты в виде положительного числового скаляра в метрах.

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

Минимальное предварительное расстояние в виде положительного числового скаляра в метрах.

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

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

Описание

[lookaheadPoint,desiredCourse,desiredYaw,orbitRadiusFlag,lookaheadDistFlag,crossTrackError,numTurns] = orbit(currentPose,lookaheadDistance) следует за набором waypoints, заданного в waypoint объекте последователя. Объект занимает текущую позицию и предварительное расстояние, чтобы вычислить предварительную точку на пути. Желаемый курс, рыскание и перекрестный дефект записи также основаны на этой предварительной точке по сравнению с текущим положением. status возвращает нуль, пока UAV не переместился по всему waypoints.

Входные параметры

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

Текущее положение UAV в виде [x y z course] вектор. Это положение используется, чтобы вычислить предварительную точку на основе входа LookaheadDistancex, y, z текущее положение в метрах. course текущий курс в радианах. Курс UAV является углом направления вектора скорости относительно севера, измеренного в радианах.

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

Предварительное расстояние вдоль пути в виде положительного числового скаляра в метрах.

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

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

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

Предварительная точка на пути, возвращенном как [x y z] радиус-вектор в метрах.

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

Желаемый курс, возвращенный в виде числа в радианах в области значений [-pi, pi]. Курс UAV является углом направления вектора скорости относительно севера, измеренного в радианах. Поскольку фиксированное крыло вводит UAV, значения желаемого курса и желаемого рыскания равны.

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

Желаемое рыскание, возвращенное в виде числа в радианах в области значений [-pi, pi]. Рыскание UAV является прямым направлением UAV независимо от вектора скорости относительно севера, измеренного в радианах. Поскольку фиксированное крыло вводит UAV, значения желаемого курса и желаемого рыскания равны.

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

Флаг радиуса орбиты, возвращенный как 0 или 1. 0 указывает, что радиус орбиты не насыщается, 1 указывает, что радиус орбиты насыщается к минимальному заданному значению радиуса орбиты.

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

Предварительный флаг расстояния, возвращенный как 0 или 1. 0 указывает, что предварительное расстояние не насыщается, 1 указывает, что предварительное расстояние насыщается к минимальному предварительному заданному значению расстояния.

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

Перекрестный дефект записи от положения UAV до пути, возвращенного в виде положительного числа в метрах. Ошибка измеряет перпендикулярное расстояние от положения UAV до самой близкой точки на пути.

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

Число раз UAV завершило орбиту в виде числового скаляра. Когда UAV окружает центральную точку, это повышения стоимости или уменьшения на основе заданного Turn Direction свойство. Десятичные значения указывают на частичное завершение круга. Если перекрестный дефект записи UAV превышает предварительное расстояние, количество поворотов не обновляется.

NumTurns сбрасывается каждый раз, когда Center, Radius, или TurnDirection свойства изменяются.

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

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

release(obj)

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

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

Примеры

свернуть все

В этом примере показано, как использовать uavOrbitFollower сгенерировать курс и команды рыскания для перемещений по кругу вокруг местоположения интереса с UAV.

ПРИМЕЧАНИЕ: Этот пример требует, чтобы вы установили Библиотеку UAV для Robotics System Toolbox®. Вызовите roboticsAddons открыть Проводник Дополнений и установить библиотеку.

Создайте последователя орбиты. Установите центр местоположения интереса и радиуса орбиты. Установите TurnDirection из 1 для против часовой стрелки вращения вокруг местоположения.

orbFollower = uavOrbitFollower;

orbFollower.OrbitCenter = [1 1 5]';
orbFollower.OrbitRadius = 2.5;
orbFollower.TurnDirection = 1;

Задайте положение UAV и предварительного расстояния для отслеживания пути.

pose = [0;0;5;0];
lookaheadDistance = 2;

Вызовите orbFollower объект с положением и предварительным расстоянием. Объект возвращает предварительную точку на пути, желаемом курсе и рыскании. Можно использовать желаемый курс и отклоняться от курса, чтобы сгенерировать команды управления для UAV.

[lookaheadPoint,desiredCourse,desiredYaw,~,~] = orbFollower(pose,lookaheadDistance);

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2019a