show

Класс: робототехника. RigidBodyTree
Пакет: робототехника

Покажите модель робота в фигуре

Синтаксис

show(robot)
show(robot,configuration)
show(___,Name,Value)
ax = show(___)

Описание

show(robot) строит каркасы кузова модели робота в фигуре с предопределенной домашней настройкой. И Frames и Visuals отображены автоматически.

show(robot,configuration) использует объединенные положения, заданные в configuration, чтобы показать каркасы кузова робота.

show(___,Name,Value) предоставляет дополнительные возможности, заданные одним или несколькими аргументами пары Name,Value.

ax = show(___) возвращает указатель осей, на котором построен робот.

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

развернуть все

Модель Robot, заданная как объект RigidBodyTree.

Настройка робота, заданная как вектор объединенных положений или структуры с объединенными именами и положений для всех тел в модели робота. Можно сгенерировать настройку с помощью homeConfiguration(robot), randomConfiguration(robot), или путем определения собственных объединенных положений в структуре. Чтобы использовать векторную форму configuration, установите свойство DataFormat для robot или к "row" или к "column".

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Родительский элемент осей, заданных как пара, разделенная запятой, состоящая из Parent и объекта Axes, в котором можно чертить робота. По умолчанию робот построен в активных осях.

Опция, чтобы зарезервировать график робота, заданный как пара, разделенная запятой, состоящая из "PreservePlot" и true или false. Когда это свойство установлено в true, предыдущие графики, отображенные путем вызова show, не перезаписываются. Эта установка функционирует подобная вызову hold on для стандартной фигуры MATLAB®, но ограничивается каркасами кузова робота. Когда это свойство установлено в false, предыдущие графики робота перезаписываются.

Отобразите каркасы кузова, заданные как "on" или "off". Эти кадры являются координатными кадрами отдельных тел на дереве твердого тела.

Отобразите визуальные конфигурации, заданные как "on" или "off". Отдельные визуальные конфигурации могут также быть выключены путем щелчка правой кнопкой по ним в фигуре.

Можно или задать отдельные визуальные конфигурации с помощью robotics.RigidBody.addVisual или при помощи importrobot, чтобы импортировать модель робота с заданными файлами .stl.

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

развернуть все

Оси графический указатель, возвращенный как объект Axes. Этот объект содержит свойства фигуры, на которую построен робот.

Примеры

развернуть все

Можно импортировать роботов, которым сопоставили файлы .stl с файлом Объединенного формата описания робота (URDF), чтобы описать визуальные конфигурации робота. Каждое твердое тело имеет отдельную визуальную заданную геометрию. Функция importrobot анализирует файл URDF, чтобы получить робота образцовые и визуальные конфигурации. Используйте функцию show, чтобы визуализировать модель робота в фигуре. Можно затем взаимодействовать с моделью путем нажатия на компоненты, чтобы осмотреть их и щелчка правой кнопкой, чтобы переключить видимость.

Импортируйте модель робота как файл URDF. Расположение файлов .stl должно быть правильно задано в этом URDF. Чтобы добавить другие файлы .stl в отдельные твердые тела, смотрите addVisual.

robot = importrobot('iiwa14.urdf');

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

show(robot);

Покажите различные настройки робота, созданного с помощью модели RigidBodyTree. Используйте homeConfiguration или функции randomConfiguation, чтобы сгенерировать структуру, которая задает все объединенные положения.

Загрузите роботов в качестве примера, когда RigidBodyTree возражает.

load exampleRobots.mat

Создайте структуру для домашней настройки робота Пумы. Структура имеет объединенные имена и положения для каждого тела на модели робота.

config = homeConfiguration(puma1)
config = 1x6 struct array with fields:
    JointName
    JointPosition

Покажите домашнюю настройку с помощью show. Вы не должны задавать вход настройки.

show(puma1);

Измените настройку и установите второе объединенное положение на pi/2. Покажите получившееся изменение в настройке робота.

config(2).JointPosition = pi/2;
show(puma1,config);

Создайте случайные настройки и покажите им.

show(puma1,randomConfiguration(puma1));

Используйте параметры Denavit-Hartenberg (DH) робота Puma560®, чтобы создать робота. Каждое твердое тело добавляется по одному, с дочерним элементом к родительскому элементу преобразовывают заданный объединенным объектом.

Параметры DH задают геометрию робота с отношением к тому, как каждое твердое тело присоединено к своему родительскому элементу. Для удобства установите параметры для робота Puma560 в матрице. Робот Пумы является последовательным цепочечным манипулятором. Параметры DH относительно предыдущей строки в матрице, соответствуя предыдущему объединенному прикреплению.

dhparams = [0   	pi/2	0   	0;
            0.4318	0       0       0
            0.0203	-pi/2	0.15005	0;
            0   	pi/2	0.4318	0;
            0       -pi/2	0   	0;
            0       0       0       0];

Создайте объект дерева твердого тела создать робота.

robot = robotics.RigidBodyTree;

Создайте первое твердое тело и добавьте его в робота. Добавить твердое тело:

  1. Создайте объект RigidBody и дайте ему уникальное имя.

  2. Создайте объект Joint и дайте ему уникальное имя.

  3. Используйте setFixedTransform, чтобы задать преобразование от тела к телу с помощью параметров DH. Последний элемент параметров DH, theta, проигнорирован, потому что угол зависит от объединенного положения.

  4. Вызовите addBody, чтобы присоединить первый сустав к опорной раме робота.

body1 = robotics.RigidBody('body1');
jnt1 = robotics.Joint('jnt1','revolute');

setFixedTransform(jnt1,dhparams(1,:),'dh');
body1.Joint = jnt1;

addBody(robot,body1,'base')

Создайте и добавьте другие твердые тела в робота. Задайте предыдущее имя тела при вызове addBody, чтобы присоединить его. Каждое фиксированное преобразование относительно предыдущего объединенного координатного кадра.

body2 = robotics.RigidBody('body2');
jnt2 = robotics.Joint('jnt2','revolute');
body3 = robotics.RigidBody('body3');
jnt3 = robotics.Joint('jnt3','revolute');
body4 = robotics.RigidBody('body4');
jnt4 = robotics.Joint('jnt4','revolute');
body5 = robotics.RigidBody('body5');
jnt5 = robotics.Joint('jnt5','revolute');
body6 = robotics.RigidBody('body6');
jnt6 = robotics.Joint('jnt6','revolute');

setFixedTransform(jnt2,dhparams(2,:),'dh');
setFixedTransform(jnt3,dhparams(3,:),'dh');
setFixedTransform(jnt4,dhparams(4,:),'dh');
setFixedTransform(jnt5,dhparams(5,:),'dh');
setFixedTransform(jnt6,dhparams(6,:),'dh');

body2.Joint = jnt2;
body3.Joint = jnt3;
body4.Joint = jnt4;
body5.Joint = jnt5;
body6.Joint = jnt6;

addBody(robot,body2,'body1')
addBody(robot,body3,'body2')
addBody(robot,body4,'body3')
addBody(robot,body5,'body4')
addBody(robot,body6,'body5')

Проверьте, что ваш робот был создан правильно при помощи функции show или showdetails. showdetails перечисляет все тела в командном окне MATLAB®. show отображает робота с данной настройкой (домой по умолчанию). Вызовы axis изменяют пределы по осям и скрывают подписи по осям.

showdetails(robot)
--------------------
Robot: (6 bodies)

 Idx    Body Name   Joint Name   Joint Type    Parent Name(Idx)   Children Name(s)
 ---    ---------   ----------   ----------    ----------------   ----------------
   1        body1         jnt1     revolute             base(0)   body2(2)  
   2        body2         jnt2     revolute            body1(1)   body3(3)  
   3        body3         jnt3     revolute            body2(2)   body4(4)  
   4        body4         jnt4     revolute            body3(3)   body5(5)  
   5        body5         jnt5     revolute            body4(4)   body6(6)  
   6        body6         jnt6     revolute            body5(5)   
--------------------
show(robot);
axis([-0.5,0.5,-0.5,0.5,-0.5,0.5])
axis off

Советы

Визуальные компоненты

Вашей модели робота сопоставили визуальные компоненты с ним. Каждый объект RigidBody содержит координатный кадр, который отображен как каркас кузова. Каждому телу также можно было сопоставить визуальные сетки с ними. По умолчанию оба из этих компонентов отображены автоматически. Можно осмотреть или изменить визуальные компоненты отображения дерева твердого тела. Кликните по каркасам кузова или визуальным сеткам, чтобы подсветить их в желтом и видеть связанное имя тела, индекс и объединенный тип. Щелкните правой кнопкой, чтобы переключить видимость отдельных компонентов.

  • Каркасы кузова: Отдельные каркасы кузова отображены как координатный кадр с 3 осями. Фиксированные кадры являются розовыми кадрами. Подвижные объединенные типы отображены как оси RGB. Можно кликнуть по каркасу кузова, чтобы видеть ось движения. Призматические соединения показывают желтую стрелку в направлении оси движения и, шарнирные соединения показывают круговую стрелку вокруг оси вращения.

  • Визуальные Сетки: Отдельные визуальные конфигурации заданы с помощью robotics.RigidBody.addVisual или при помощи importrobot, чтобы импортировать модель робота с заданными файлами .stl. Путем щелчка правой кнопкой по отдельным телам по фигуре можно выключить их сетки или задать пару "имя-значение" Visuals, чтобы скрыть все визуальные конфигурации.

Введенный в R2017b