uavDubinsPathSegment

Сегмент контура Дубинса, соединяющий два положения БПЛА

Описание

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

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

  • Прямо

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

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

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

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

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

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

Создание

Описание

Чтобы сгенерировать uavDubinsPathSegment объект, использовать connect функция со uavDubinsConnection объект:

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

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

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

пример

pathSegObj = uavDubinsPathSegment(connectionObj,start,goal,motionTypes) создает сегмент контура Дубинса, чтобы соединить начальное и целевое положения БПЛА с заданным motionTypes. The 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.

Для соединений БПЛА 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'}.

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

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

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

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

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

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

interpolateИнтерполируйте положения вдоль сегмента контура БПЛА Dubins
showВизуализация БПЛА 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 = 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++ с помощью Coder™ MATLAB ®

.

См. также

|

Введенный в R2019b