uavOrbitFollower

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

Описание

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

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

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

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

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

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

Создание

Синтаксис

orbit = uavOrbitFollower
orbit = uavOrbitFollower(Name,Value)

Описание

пример

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

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

Name является именем свойства, и Value является соответствующим значением. Имя должно находиться внутри одинарных кавычек (' '). Можно задать несколько аргументов пары "имя-значение" в любом порядке как 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)

Описание

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

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

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

Текущее положение UAV, заданное как вектор [x y z heading]. Это положение используется, чтобы вычислить предварительную точку на основе входа LookaheadDistance. [x 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