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})

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

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

В этом примере показано, как изменить существующий 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})

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

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})

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

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.

Введенный в R2019b