exponenta event banner

uavDubinsConnection

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

Описание

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

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

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

  • Прямо

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

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

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

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

  • Без движения

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

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

Создание

Описание

пример

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

пример

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

Свойства

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

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

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

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

Примечание

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

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

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

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

Примечание

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

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

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

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

Прямо

"L"

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

"R"

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

"Hl"

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

"Hr"

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

"N"

Без движения

Примечание

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

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

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

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

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

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

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

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

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

Для соединений БПЛА «Дубины» доступны следующие типы путей: {'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Соединить позы с БПЛА «Дубины»

Примеры

свернуть все

В этом примере показано, как вычислить сегмент пути БПЛА «Дубины» и соединить позы с помощью 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объект.

Соединить позы с помощью пути соединения БПЛА Дубинс

Создать 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] Оуэн, Марк, Рэндал У. Борода и Тимоти У. Маклейн. «Внедрение авиационных путей Дубинса на БПЛА с фиксированным крылом». Справочник беспилотных летательных аппаратов, 2015, стр. 1677-1701.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

Представлен в R2019b