plan

Запланируйте путь с помощью RRT для манипуляторов

Описание

пример

path = plan(rrt,startConfig,goalConfig) планирует путь между заданным запуском и целевыми настройками с помощью манипулятора, быстро исследуя случайные деревья (RRT) планировщик rrt.

[path,solnInfo] = plan(rrt,startConfig,goalConfig) также возвращает информацию о решении о результатах планировщика RRT.

Примеры

свернуть все

Используйте manipulatorRRT возразите, чтобы запланировать путь модель робота дерева твердого тела в среде с препятствиями. Визуализируйте запланированный путь с интерполированными состояниями.

Загрузите модель робота в рабочую область. Используйте LBR KUKA рука манипулятора iiwa©.

robot = loadrobot("kukaIiwa14","DataFormat","row");

Сгенерируйте среду для робота. Создайте объекты столкновения и задайте их положения относительно основы робота. Визуализируйте среду.

env = {collisionBox(0.5, 0.5, 0.05) collisionSphere(0.3)};
env{1}.Pose(3, end) = -0.05;
env{2}.Pose(1:3, end) = [0.1 0.2 0.8];

show(robot);
hold on
show(env{1})
show(env{2})

Создайте планировщика RRT для модели робота.

rrt = manipulatorRRT(robot,env);

Задайте запуск и целевую настройку.

startConfig = [0.08 -0.65 0.05 0.02 0.04 0.49 0.04];
goalConfig =  [2.97 -1.05 0.05 0.02 0.04 0.49 0.04];

Запланируйте путь. Из-за случайности алгоритма RRT, набор rng отберите для воспроизводимости.

rng(0)
path = plan(rrt,startConfig,goalConfig);

Визуализируйте путь. Чтобы добавить больше промежуточных состояний, интерполируйте путь. По умолчанию, interpolate возразите, что функция использует значение ValidationDistance свойство определить количество промежуточных состояний. for цикл показывает каждый 20-й элемент интерполированного пути.

interpPath = interpolate(rrt,path);
clf
for i = 1:20:size(interpPath,1)
    show(robot,interpPath(i,:));
    hold on
end
show(env{1})
show(env{2})
hold off

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

свернуть все

Манипулятор планировщик RRT в виде manipulatorRRT объект. Этот планировщик для определенной модели робота дерева твердого тела, сохраненной как rigidBodyTree объект.

Начальная настройка робота в виде n - вектор элемента из объединенных положений для rigidBodyTree объект сохранил в планировщике RRT rrt. n является количеством нефиксированных соединений в модели робота.

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

Желаемая настройка робота в виде n - вектор элемента из объединенных положений для rigidBodyTree объект сохранил в планировщике RRT rrt. n является количеством нефиксированных соединений в модели робота.

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

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

свернуть все

Запланированный путь на объединенном пробеле, возвращенном как r-by-n матрица объединенных настроек, где r является количеством настроек в пути и n, является количеством нефиксированных соединений в rigidBodyTree модель робота.

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

Информация о решении от планировщика, возвращенного как структура с этими полями:

  • IsPathFound — Логическое указание, если путь был найден

  • ExitFlag — Целое число, указывающее, почему отключенный планировщик:

    • 1 — Целевая настройка достигнута

    • 2 — Максимальное количество итераций достигнуто

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

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

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

Введенный в R2020b