uavOrbitFollower

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

Описание

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

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

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

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

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

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

Создание

Описание

пример

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

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

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

Свойства

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

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

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

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (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

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

Описание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Перекрестный дефект записи от положения 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,desiredHeading,desiredYaw,~,~] = orbFollower(pose,lookaheadDistance);

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

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

Введенный в R2019a