uavDubinsConnection

Связь пути Dubins для UAV

Описание

uavDubinsConnection объект содержит информацию для вычисления uavDubinsPathSegment сегмент пути, чтобы соединиться запускается и целевые положения UAV.

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

Опции движения:

  • Прямо

  • Левый поворот (против часовой стрелки)

  • Правый поворот (по часовой стрелке)

  • Спиральный левый поворот (против часовой стрелки)

  • Спиральный правый поворот (по часовой стрелке)

  • Никакое движение

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

Используйте этот объект связи задать параметры для модели движения UAV, включая радиус превращения минимума и опции для типов пути. Чтобы сгенерировать сегмент пути между положениями с помощью этого типа подключения, вызовите connect функция.

Создание

Описание

пример

connectionObj = uavDubinsConnection создает объект с помощью значений свойств по умолчанию.

пример

connectionObj = uavDubinsConnection(Name,Value) задает значения свойств с помощью пар "имя-значение". Чтобы установить несколько свойств, задайте несколько пар "имя-значение".

Свойства

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

Скорость полета UAV в виде положительного числового скаляра в m/s.

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

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

Примечание

Минимальные и максимальные значения для MaxRollAngle больше 0 и меньше, чем pi/2, соответственно.

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

Угол угла тангажа ограничивает в виде двухэлементного числового векторного [min max] в радианах.

min является минимальным углом угла тангажа, который UAV берет, чтобы потерять высоту, и max является максимальным углом угла тангажа, чтобы получить высоту.

Примечание

Минимальные и максимальные значения для FlightPathAngleLimit больше -pi/2 и меньше, чем pi/2, соответственно.

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

UAV путь Dubins вводит, чтобы отключить в виде массива ячеек четырехэлементных векторов символов или вектора из строковых скаляров. Массив ячеек задает четыре запрещенных последовательности движений.

Тип движенияОписание
"S"

Прямо

"L"

Левый поворот (против часовой стрелки)

"R"

Правый поворот (по часовой стрелке)

"Hl"

Спиральный левый поворот (против часовой стрелки)

"Hr"

Спиральный правый поворот (по часовой стрелке)

"N"

Никакое движение

Примечание

Никакой сегмент "N" движения используется в качестве заполнителя в конце, когда только три сегмента пути необходимы.

Чтобы видеть все доступные типы пути, смотрите свойство AllPathTypes.

Пример: {'RLRN'}

Типы данных: string | cell

Это свойство доступно только для чтения.

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

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

Это свойство доступно только для чтения.

Все возможные типы пути, возвращенные как массив ячеек из символьных векторов. Это списки свойств все типы. Чтобы отключить определенные типы, задайте типы из этого списка в свойстве DisabledPathTypes.

Для UAV связи Dubins доступные типы пути: {'LSLN'} {'LSRN'} {'RSLN'} {'RSRN'} {'RLRN'} {'LRLN'} {'HlLSL'} {'HlLSR'} {'HrRSL'} {'HrRSR'} {'HrRLR'} {'HlLRL'} {'LSLHl'} {'LSRHr'} {'RSLHl'} {'RSRHr'} {'RLRHr'} {'LRLHl'} {'LRSL'} {'LRSR'} {'LRLR'} {'RLSR'} {'RLRL'} {'RLSL'} {'LSRL'} {'RSRL'} {'LSLR'} {'RSLR'}.

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

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

connectСоедините положения с UAV путь к связи Dubins

Примеры

свернуть все

В этом примере показано, как вычислить сегмент пути Dubins UAV и положения подключения с помощью uavDubinsConnection объект.

Создайте uavDubinsConnection объект.

connectionObj = uavDubinsConnection;

Задайте запускаются, и цель изображает из себя [xYZ, headingAngleВекторы.

startPose = [0 0 0 0]; % [meters, meters, meters, radians]
goalPose = [0 0 20 pi];

Вычислите допустимый сегмент пути и соедините положения. Возвращает объект сегмента пути с самой низкой стоимостью пути.

[pathSegObj,pathCosts] = connect(connectionObj,startPose,goalPose);

Покажите сгенерированный путь.

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 24 objects of type patch, line. These objects represent Path, Transition Position, Start Position, Goal Position.

Отобразите тип движения и стоимость пути сгенерированного пути.

fprintf('Motion Type: %s\nPath Cost: %f\n',strjoin(pathSegObj{1}.MotionTypes),pathCosts);
Motion Type: R L R N
Path Cost: 138.373157

В этом примере показано, как изменить существующий uavDubinsPathSegmentобъект.

Соедините положения Используя путь к связи UAV Dubins

Создайте uavDubinsConnection объект.

connectionObj = uavDubinsConnection;

Задайте запускаются, и цель изображает из себя [xYZ, headingAngleВекторы.

startPose = [0 0 0 0]; % [meters, meters, meters, radians]
goalPose = [0 0 20 pi];

Вычислите допустимый сегмент пути и соедините положения. Возвращает объект сегмента пути с самой низкой стоимостью пути.

[pathSegObj,pathCosts] = connect(connectionObj,startPose,goalPose);

Покажите сгенерированный путь.

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 24 objects of type patch, line. These objects represent Path, Transition Position, Start Position, Goal Position.

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

fprintf('Motion Type: %s\nPath Cost: %f\n',strjoin(pathSegObj{1}.MotionTypes),pathCosts);
Motion Type: R L R N
Path Cost: 138.373157

Измените тип подключения и свойства

Отключите эту определенную последовательность движения в новом объекте связи. Задайте AirSpeed, MaxRollAngle, и FlightPathAngleLimit свойства объекта связи.

connectionObj = uavDubinsConnection('DisabledPathTypes',{'RLRN'});
connectionObj.AirSpeed = 15;
connectionObj.MaxRollAngle = 0.8;
connectionObj.FlightPathAngleLimit = [-1.47 1.47];

Соедините положения снова, чтобы получить различный путь. Возвращает объект сегмента пути со следующей самой низкой стоимостью пути.

[pathSegObj,pathCosts] = connect(connectionObj,startPose,goalPose);

Покажите модифицированный путь.

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 24 objects of type patch, line. These objects represent Path, Transition Position, Start Position, Goal Position.

Проверьте тип движения и стоимость пути модифицированного сегмента пути.

fprintf('Motion Type: %s\nPath Cost: %f\n',strjoin(pathSegObj{1}.MotionTypes),pathCosts);
Motion Type: L R L N
Path Cost: 164.674067

Ссылки

[1] Оуэн, Марк, Рэндал В. Бирд и Тимоти В. Маклэйн. "Реализовывая Пути к Самолету Dubins на БПЛА Фиксированного Крыла". Руководство Беспилотных Воздушных Транспортных средств, 2015, стр 1677–1701.

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

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

Смотрите также

Введенный в R2019b