Получите данные о столкновении для проверки столкновения манипулятора

Этот пример показывает три способа получить rigidBodyTree модель с данными о столкновении. Чтобы видеть больше всесторонних примеров, которые проверяют на самостолкновения или обнаружение столкновений среды, смотрите эти другие примеры:

Импорт URDF

Много роботов идут с сетками столкновения или примитивами, заданными в файле Объединенного формата определения робота (URDF).

Робот KUKA® IIWA идет с набором сеток столкновения, которые являются упрощенными версиями визуальных сеток. Вызовите importrobotфункция, чтобы сгенерировать rigidBodyTree объект из файла URDF. Установите выходной формат для настроек к "column".

iiwa = importrobot("iiwa14.urdf");
iiwa.DataFormat = "column";

Визуально смотрите сетки столкновения робота.

show(iiwa,"Visuals","off","Collisions","on");

Проверяйте на самостолкновения в заданной настройке

Задайте настройку, которая имеет сам столкновение. checkCollision функция указывает, сталкивается ли робот с собой в особой настройке. Визуализируйте настройку.

config = [0 -pi/4 pi 0.9*pi 0 -pi/2 0]';
checkCollision(iiwa,config)
ans = logical
   1

show(iiwa,config,"Visuals","off","Collisions","on");

Загрузка предоставленные модели

Robotics System Toolbox™ предоставляет общим моделям робота использование данных о столкновении, к которому получают доступ, loadrobot функция.

kukaIiwa14 = loadrobot("kukaIiwa14","DataFormat","column");
checkCollision(kukaIiwa14,config)
ans = logical
   1

config = [0 -pi/4 pi 0.9*pi 0 -pi/2 0]';

Визуализируйте робота с видимыми сетками столкновения.

show(kukaIiwa14,config,"Visuals","off","Collisions","on");

Добавление отдельного столкновения Obects

addCollision функция позволяет вам добавить, что столкновение возражает против любого твердого тела на роботе как основные формы (поле, сфера, цилиндр). Вы могли создать своего целого робота с этими конфигурациями столкновения, но это обычно менее точно, чем более высокие определения mesh точности.

В данном примере заметьте, что загруженная модель робота IIWA пропускает механизм захвата. Добавьте механизм захвата, сделанный из примитивов столкновения к iiwa_link_ee тело на роботе.

addCollision(iiwa.Bodies{end},"cylinder",[0.06,0.05])
addCollision(iiwa.Bodies{end},"box",[0.02,0.02,0.15],trvec2tform([0.03,0,0.05]))
addCollision(iiwa.Bodies{end},"box",[0.02,0.02,0.15],trvec2tform([-0.03,0,0.05]))

Визуализируйте робота. Заметьте, что механизм захвата присоединяется.

show(iiwa,"Visuals","off","Collisions","on");