Замените тело на роботе
Чтобы использовать функции динамики, чтобы вычислить объединенные крутящие моменты и ускорения, задайте свойства динамики для rigidBodyTree
объект и rigidBody
.
Создайте модель дерева твердого тела. Создайте два твердых тела, чтобы присоединить к нему.
robot = rigidBodyTree('DataFormat','row'); body1 = rigidBody('body1'); body2 = rigidBody('body2');
Задайте соединения, чтобы присоединить к телам. Установите фиксированное преобразование body2
к body1
. Это преобразование составляет 1 м в направлении 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)
Измените массу второго тела. Заметьте изменение в центре массы.
body2.Mass = 20; replaceBody(robot,'body2',body2) comPos2 = centerOfMass(robot); plot(comPos2(1),comPos2(2),'*g') hold off
robot
— Модель RobotrigidBodyTree
объектМодель Robot в виде rigidBodyTree
объект. Твердое тело добавляется к этому объекту и присоединяется в твердом теле, заданном bodyname
.
bodyname
— Имя телаИмя тела в виде строкового скаляра или вектора символов. Это тело должно быть на модели робота, заданной в robot
.
Типы данных: char |
string
newbody
— Твердое телоrigidBody
объектТвердое тело в виде rigidBody
объект.
Указания и ограничения по применению:
При создании rigidBodyTree
объект, используйте синтаксис, который задает MaxNumBodies
как верхняя граница для добавления тел к модели робота. Необходимо также задать DataFormat
свойство как пара "имя-значение". Например:
robot = rigidBodyTree("MaxNumBodies",15,"DataFormat","row")
Чтобы минимизировать использование данных, ограничьте верхнюю границу номером близко к ожидаемому количеству тел в модели. Все форматы данных поддерживаются для генерации кода. Чтобы использовать функции динамики, формат данных должен быть установлен в "row"
или "column"
.
show
и showdetails
функции не поддерживают генерацию кода.
addBody
| removeBody
| replaceJoint
| rigidBody
| rigidBodyJoint
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.