uavOrbitFollower

Интересное расположение орбиты с помощью БПЛА

Описание

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

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

Для обращения по орбите с помощью БПЛА:

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

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

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

пример

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

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

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

Свойства

расширить все

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

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

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

Тип БПЛА, указанный как '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) следовать набору точек пути, заданному в последующем объекте путевой точки. Объект занимает текущее положение и расстояние в поиске, чтобы вычислить точку в поиске на пути. Требуемое течение, рыскание и ошибка кросс-трека также основаны на этой интерполяционной точке по сравнению с текущим положением. status возвращает нуль до тех пор, пока БПЛА не перейдет по всем путевым точкам.

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

расширить все

Текущее положение БПЛА, заданное как [x y z course] вектор. Это положение используется для вычисления точки искривления на основе входа LookaheadDistance. [x y z] - текущее положение в метрах. course - текущий курс в радианах. Курс БПЛА является углом направления вектора скорости относительно севера, измеренным в радианах.

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

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

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

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

расширить все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

release(obj)

расширить все

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

Примеры

свернуть все

В этом примере показано, как использовать uavOrbitFollower чтобы сгенерировать команды курса и рыскания для орбиты интересующего места с помощью БПЛА.

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

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

orbFollower = uavOrbitFollower;

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

Укажите положение БПЛА и расстояние между ними для отслеживания пути.

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

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

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

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

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

.
Введенный в R2019a