Этот пример показывает три способа получить rigidBodyTree
модель с данными о столкновении. Чтобы видеть больше всесторонних примеров, которые проверяют на самостолкновения или обнаружение столкновений среды, смотрите эти другие примеры:
Много роботов идут с сетками столкновения или примитивами, заданными в файле Объединенного формата определения робота (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");
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");