replaceBody

Замените тело на роботе

Описание

пример

replaceBody(robot,bodyname,newbody) заменяет тело в модели робота новым телом. Все свойства тела обновляются соответственно, кроме Parent и Children свойства. Остальная часть модели робота не затронута.

Примеры

свернуть все

Чтобы использовать функции динамики для вычисления моментов в соединениях и ускорений, задайте свойства динамики для rigidBodyTree объект и rigidBody.

Создайте модель древовидного твердого тела. Создать два твёрдых тела для присоединения к нему.

robot = rigidBodyTree('DataFormat','row');
body1 = rigidBody('body1');
body2 = rigidBody('body2');

Укажите соединения для присоединения к телам. Установите фиксированное преобразование body2 на body1. Это преобразование равняется 1m в направлении x.

joint1 = rigidBodyJoint('joint1','revolute');
joint2 = rigidBodyJoint('joint2');
setFixedTransform(joint2,trvec2tform([1 0 0]))
body1.Joint = joint1;
body2.Joint = joint2;

Задайте свойства динамики для двух тел. Добавьте тела к модели робота. В данном примере основные значения для штока (body1) с присоединенной сферической массой (body2) даны.

body1.Mass = 2;
body1.CenterOfMass = [0.5 0 0];
body1.Inertia = [0.001 0.67 0.67 0 0 0];

body2.Mass = 1;
body2.CenterOfMass = [0 0 0];
body2.Inertia = 0.0001*[4 4 4 0 0 0];

addBody(robot,body1,'base');
addBody(robot,body2,'body1');

Вычислите положение центра масс всего робота. Постройте график положения на роботе. Переместите вид в плоскость xy.

comPos = centerOfMass(robot);

show(robot);
hold on
plot(comPos(1),comPos(2),'or')
view(2)

Figure contains an axes. The axes contains 6 objects of type patch, line. These objects represent base, body1, body2.

Измените массу второго тела. Заметьте изменение центра масс.

body2.Mass = 20;
replaceBody(robot,'body2',body2)

comPos2 = centerOfMass(robot);
plot(comPos2(1),comPos2(2),'*g')
hold off

Figure contains an axes. The axes contains 7 objects of type patch, line. These objects represent base, body1, body2.

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

свернуть все

Модель робота, заданная как rigidBodyTree объект. Твердое тело добавляется к этому объекту и присоединяется к твердому телу, заданному bodyname.

Имя тела, заданное как строковый скаляр или вектор символов. Это тело должно быть на модели робота, указанной в robot.

Типы данных: char | string

Твердое тело, заданное как rigidBody объект.

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

.
Введенный в R2016b