exponenta event banner

uavOrbitFollower

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

Описание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

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

ПРИМЕЧАНИе.В этом примере необходимо установить библиотеку БПЛА для системы робототехники 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++ с помощью MATLAB ® Coder™

.
Представлен в R2019a