uavDubinsPathSegment

Сегмент пути Dubins, соединяющий два положения UAV

Описание

uavDubinsPathSegment объект содержит информацию для сегмента пути Dubins, который подключения запускают и целевые положения UAV как последовательность движений в северо-восточной вниз системе координат.

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

  • Прямо

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

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

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

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

  • Никакое движение

Направление поворота задано, как просматривается от верхней части UAV. Спиральные движения используются, чтобы возрасти или убывать.

Создание

Описание

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

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

В частности задавать сегмент пути:

pathSegObj = uavDubinsPathSegment(connectionObj,start,goal) создает сегмент пути Dubins, чтобы соединиться, запускаются и целевые положения UAV. uavDubinsConnection объект обеспечивает радиус превращения минимума и угол угла тангажа. Это внутренне вычисляет оптимальный путь и присваивает его pathSegObj.

пример

pathSegObj = uavDubinsPathSegment(connectionObj,start,goal,motionTypes) создает сегмент пути Dubins, чтобы соединиться, запускаются и целевые положения UAV с данным motionTypes. motionTypes введите устанавливает значение свойства MotionTypes.

pathSegObj = uavDubinsPathSegment(start,goal,flightPathAngle,airSpeed,minTurningRadius,helixRadius,motionTypes,motionLengths) создает сегмент пути Dubins, чтобы соединиться, запускаются и целевые положения UAV путем явного определения всех параметров. Входные значения установлены в свои соответствующие свойства в объекте.

Свойства

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

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

Начальное положение UAV в начале сегмента пути в виде четырехэлементного числового вектора [x, y, z, headingAngle].

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

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

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

Целевое положение UAV в конце сегмента пути в виде четырехэлементного числового вектора [x, y, z, headingAngle].

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

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

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

Радиус превращения минимума UAV в виде положительного числового скаляра в метрах. Это значение соответствует радиусу круга в максимальном крене и постоянной скорости полета UAV.

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

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

Спиральный радиус пути UAV в виде положительного числового скаляра в метрах.

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

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

Угол угла тангажа UAV, чтобы достигнуть целевой высоты в виде положительного числового скаляра в радианах.

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

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

Скорость полета UAV в виде положительного числового скаляра в m/s.

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

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

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

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

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

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

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

Прямо

"L"

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

"R"

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

"Hl"

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

"Hr"

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

"N"

Никакое движение

Примечание

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

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

Для 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'}.

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

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

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

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

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

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

interpolateИнтерполируйте положения вдоль UAV сегмент пути Dubins
showВизуализируйте 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 = uavDubinsPathSegment(connectionObj,startPose,goalPose,{'L','S','L','N'});

Покажите сгенерированный путь.

show(pathSegObj)

Figure contains an axes object. The axes object 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