exponenta event banner

соединиться

Соединить позы с БПЛА «Дубины»

Описание

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

пример

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

Примеры

свернуть все

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

Figure contains an axes. The axes contains 24 objects of type patch, line. These objects represent Path, Transition Position, Start Position, Goal Position.

Motion Type: L S L N
Path Cost: 214.332271

Figure contains an axes. The axes contains 24 objects of type patch, line. These objects represent Path, Transition Position, Start Position, Goal Position.

Motion Type: R S R N
Path Cost: 214.332271

Figure contains an axes. The axes contains 24 objects of type patch, line. These objects represent Path, Transition Position, Start Position, Goal Position.

Motion Type: R L R N
Path Cost: 138.373157

Figure contains an axes. The axes contains 24 objects of type patch, line. These objects represent Path, Transition Position, Start Position, Goal Position.

Motion Type: L R L N
Path Cost: 138.373157

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

свернуть все

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

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

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

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

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

  • Поза одиночного старта с позой одиночного гола.

  • Несколько стартовых поз с одной целью позы.

  • Одиночный старт позы с несколькими целями позы.

  • Несколько стартовых поз с несколькими целевыми позами.

Поза цели БПЛА в конце сегмента пути, определенного как числовой вектор с четырьмя элементами или матрица [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