exponenta event banner

uavDubinsPathSegment

Дубинский сегмент пути, соединяющий две позы БПЛА

Описание

uavDubinsPathSegment объект содержит информацию для отрезка пути Дубинса, который соединяет стартовые и целевые представления БПЛА как последовательности движений в системе координат «север-восток-вниз».

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

  • Прямо

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

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

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

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

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

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

Создание

Описание

Для создания uavDubinsPathSegment объект, используйте connect функция с uavDubinsConnection объект:

pathSegObj = connect(connectionObj,start,goal) соединяет начальный и целевой позы с помощью указанного uavDubinsConnection объект. start и goal входные данные задают значение свойств «» StartPose «» и «» GoloPose «» соответственно.

Для конкретного определения сегмента пути:

pathSegObj = uavDubinsPathSegment(connectionObj,start,goal) создает сегмент пути Дубинса для соединения стартовых и целевых поз БПЛА. uavDubinsConnection объект обеспечивает минимальный радиус поворота и угол траектории полета. Он внутренне вычисляет оптимальный путь и назначает его pathSegObj.

пример

pathSegObj = uavDubinsPathSegment(connectionObj,start,goal,motionTypes) создает сегмент пути Дубинса для соединения стартовых и целевых поз БПЛА с заданным motionTypes. motionTypes устанавливает значение свойства MotionTypes.

pathSegObj = uavDubinsPathSegment(start,goal,flightPathAngle,airSpeed,minTurningRadius,helixRadius,motionTypes,motionLengths) создает сегмент пути Дубинса для соединения стартовых и целевых поз БПЛА путём явного указания всех параметров. Для входных значений устанавливаются соответствующие свойства объекта.

Свойства

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

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

Начальная поза БПЛА в начале сегмента пути, определенного как числовой вектор с четырьмя элементами [x, y, z, headingAngle].

x, y и z определяют положение в метрах. headingAngle определяет направляющийся угол в радианах.

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

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

Поза цели БПЛА в конце сегмента пути, определенного как числовой вектор с четырьмя элементами [x, y, z, headingAngle].

x, y и z определяют положение в метрах. headingAngle определяет направляющийся угол в радианах.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Длина каждого движения в сегменте траектории, заданная как четырехэлементный числовой вектор в метрах. Каждая длина движения соответствует типу движения, указанному в свойстве MotionTypes.

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

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

Тип каждого движения в сегменте пути, определяемый как трехэлементный строковый массив ячеек.

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

Прямо

"L"

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

"R"

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

"Hl"

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

"Hr"

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

"N"

Без движения

Примечание

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

Каждый тип движения соответствует длине движения, указанной в свойстве MotionLengths.

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

Пример: {'L','R','L','N'}

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

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

Длина сегмента траектории или траектории полета, заданная как положительный числовой скаляр в метрах. Эта длина является суммой элементов в векторе MotionLengts.

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

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

interpolateInterpolate позирует вдоль сегмента пути БПЛА «Дубины»
showВизуализация сегмента пути БПЛА «Дубины»

Примеры

свернуть все

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

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

connectionObj = uavDubinsConnection;

Определите начало и цель, представляемые как [x, y, z, headingAngle] векторы.

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

Вычислите допустимый сегмент пути и соедините позы для указанного типа движения.

pathSegObj = uavDubinsPathSegment(connectionObj,startPose,goalPose,{'L','S','L','N'});

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

show(pathSegObj)

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\n',strjoin(pathSegObj.MotionTypes));
Motion Type: L S L N

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

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

.

См. также

|

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