uavDubinsConnection

Соединение пути Дубинса для БПЛА

Описание

The uavDubinsConnection объект содержит информацию для вычисления uavDubinsPathSegment сегмент контура для соединения начального и целевого положения БПЛА.

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

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

  • Прямо

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

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

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

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

  • Движения нет

Направление поворота определяется как видно из верхней части БПЛА. Спиральные движения используются для подъема или спуска.

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

Создание

Описание

пример

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

пример

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

Свойства

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

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

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

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

Примечание

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

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

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

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

Примечание

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

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

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

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

Прямо

"L"

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

"R"

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

"Hl"

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

"Hr"

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

"N"

Движения нет

Примечание

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

Для просмотра всех доступных типов путей см. свойство AllPathTypes.

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

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

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

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

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

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

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

Для соединений БПЛА 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Соедините положения с БПЛА Dubins соединительный путь

Примеры

свернуть все

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

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

connectionObj = uavDubinsConnection;

Задайте начальное и целевое положения как [x, y, z, 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. The axes 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объект.

Соедините положения с помощью БПЛА Dubins Путь

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

connectionObj = uavDubinsConnection;

Задайте начальное и целевое положения как [x, y, z, 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. The axes 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. The axes 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++ с помощью Coder™ MATLAB ®

.

См. также

Введенный в R2019b