connect

Соедините положения с UAV путь к связи Dubins

Описание

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

пример

[pathSegObj,pathCost] = connect(connectionObj,start,goal,'PathSegments','all') возвращает все возможные сегменты пути как массив ячеек с их связанными затратами.

Примеры

свернуть все

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

Вычислите все возможные сегменты пути

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

connectionObj = uavDubinsConnection;

Задайте запускаются, и цель изображает из себя [xYZ, headingAngleВекторы.

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

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

[pathSegObj,pathCosts] = connect(connectionObj,startPose,goalPose,'PathSegments','all');

Валидация пути и визуализация

Проверяйте валидность всех возможных сегментов пути и отобразите допустимые пути наряду с их типом движения и стоимостью пути.

for i = 1:length(pathSegObj)
    if ~isnan(pathSegObj{i}.Length)
        figure
        show(pathSegObj{i})
        fprintf('Motion Type: %s\nPath Cost: %f\n',strjoin(pathSegObj{i}.MotionTypes),pathCosts(i));
    end 
end

Motion Type: L S L N
Path Cost: 214.332271

Motion Type: R S R N
Path Cost: 214.332271

Motion Type: R L R N
Path Cost: 138.373157

Motion Type: L R L N
Path Cost: 138.373157

Входные параметры

свернуть все

Тип подключения пути в виде uavDubinsConnection объект. Этот объект задает параметры связи.

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

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

Положение следует за северо-восточной вниз системой координат.

start и goal позируйте входные параметры могут быть любой из этих комбинаций:

  • Одно положение запуска с одним целевым положением.

  • Несколько начинают положения с одного целевого положения.

  • Одно положение запуска с несколькими целевыми положениями.

  • Несколько начинают положения с нескольких целевых положений.

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

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

Положение следует за северо-восточной вниз системой координат.

start и goal позируйте входные параметры могут быть любой из этих комбинаций:

  • Одно положение запуска с одним целевым положением.

  • Несколько начинают положения с одного целевого положения.

  • Одно положение запуска с несколькими целевыми положениями.

  • Несколько начинают положения с нескольких целевых положений.

Выходные аргументы

свернуть все

Сегменты пути, возвращенные как массив ячеек uavDubinsPathSegment объекты. Тип объекта зависит от входа connectionObj. Размер массива ячеек зависит от того, используете ли вы один или несколько start и goal положения.

По умолчанию функция возвращает путь с самой низкой ценой для каждого start и goal положение.

При вызове connect функция с помощью 'PathSegments','all' пара "имя-значение", массив ячеек содержит все допустимые сегменты пути между заданным start и goal положения.

Стоимость сегментов пути, возвращенных или в виде положительного числа, вектора или в виде матрицы. Каждый элемент вектора стоимости соответствует сегменту пути в pathSegObj.

По умолчанию функция возвращает путь с самой низкой ценой для каждого start и goal положение.

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

|

Введенный в R2019b
Для просмотра документации необходимо авторизоваться на сайте