uavWaypointFollower

Следуйте за waypoints для UAV

Описание

uavWaypointFollower Система object™ следует за набором waypoints для беспилотного воздушного транспортного средства (UAV) с помощью предварительной точки. Объект вычисляет предварительную точку, желаемый курс и желаемое рыскание, учитывая положение UAV, набор waypoints и предварительное расстояние. Задайте набор waypoints и настройте thelookAheadDistance входной параметр и TransitionRadius свойство для навигации по waypoints. Поддержка объектов и мультиротор и фиксированное крыло типы UAV.

Следовать за набором waypoints:

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

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

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

Создание

Описание

wpFollowerObj = uavWaypointFollower создает UAV waypoint последователь со свойствами по умолчанию.

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

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

Свойства

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

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

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

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

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

Waypoint запускают поведение в виде любого 'first' или 'closest'.

Когда установлено в 'first', UAV летит к первому сегменту пути между waypoints, перечисленным в Waypoints. Когда установлено в 'closest', UAV летит к самому близкому сегменту пути между waypoints, перечисленным в Waypoints. Когда waypoints вводят изменения, UAV повторно вычисляет самый близкий сегмент пути.

Набор waypoints для UAV, чтобы следовать в виде n-by-3 за матрицей [x y z] векторы в метрах.

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

Угол рыскания для каждого waypoint в виде скаляра или n - вектор-столбец элемента в радианах. Скаляр применяется к каждому waypoint в Waypoints. Вход [] сохраняет рыскание выровненным с желаемым курсом на основе предварительной точки.

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

Радиус перехода для каждого waypoint в виде скаляра или n - вектор элемента в метре. Когда задано как скаляр, этот параметр применяется к каждому waypoint в Waypoints. Когда UAV в радиусе перехода, объектных переходах к следующему следующий сегмент пути между waypoints.

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

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

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

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

Описание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Состояние waypoint навигации, возвращенной как 0 или 1. Когда последователь переместился по всему waypoints, объектным выходным параметрам 1. В противном случае, объектные выходные параметры 0.

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

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

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

release(obj)

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

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

Больше о

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

Ссылки

[1] Парк, Sanghyuk, Джон Деист и Джонатан, как. "Новая нелинейная логика руководства для отслеживания траектории". Руководство AIAA, навигация, и конференция по управлению и приложение, 2004.

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

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

Введенный в R2018b