addSubtree

给机器人添加子树

描述

例子

addSubtree (机器人parentname子树附加机器人模型,newSubtree,到现有的机器人模型,机器人,在指定的正文处parentname.子树基不作为主体添加。

例子

全部折叠

对现有的文件进行更改rigidBodyTree对象。你可以在刚体树中替换关节,物体和子树。

将示例机器人加载为rigidBodyTree对象。

负载exampleRobots.mat

查看详细的Puma机器人使用showdetails

showdetails (puma1)
-------------------- 机器人:(6)尸体Idx身体名称联合名称联合类型父母名字(Idx)孩子的名字(s ) --- --------- ---------- ---------- ---------------- ---------------- 1 L1 jnt1转动基地(0)L2 (2) 2 L2 jnt2转动L1 (1) L3 (3) 3 L3 jnt3转动L2 (2) L4 (4) 4, jnt4转动L3(3)一两百(5)5 L5 jnt5转动L4(4) 16种(6)6 16种jnt6转动L5 (5)--------------------

找个专门的人去检查房子。他的独子L3身体是L4的身体。你也可以复制一个特定的身体。

body3 = getBody (puma1,“L3”);childBody = body3。孩子{1}
childBody = rigidBody with properties: Name: 'L4' Joint: [1x1 rigidBodyJoint] Mass: 1 CenterOfMass:[0 0 0]惯性:[1 1 1 0 0 0]Parent: [1x1 rigidBody] Children: {[1x1 rigidBody]} visual: {} Collisions: {}
body3Copy = (body3)复印件;

更换关节上的L3的身体。你必须创建一个新的联合对象和使用replaceJoint确保下游阀体几何形状不受影响。调用setFixedTransform如有必要,定义体之间的转换而不是使用默认的单位矩阵。

newJoint = rigidBodyJoint (“移动”);replaceJoint (puma1“L3”, newJoint);showdetails (puma1)
-------------------- 机器人:(6)尸体Idx身体名称联合名称联合类型父母名字(Idx)孩子的名字(s ) --- --------- ---------- ---------- ---------------- ---------------- 1 L1 jnt1转动基地(0)L2 (2) 2 L2 jnt2转动L1 (1) L3 3 L3棱镜(3)固定L2 (2) L4 (4) 4, jnt4转动L3(3)一两百(5)5 L5 jnt5转动L4(4) 16种(6)6 16种jnt6转动L5 (5)--------------------

删除整个主体,并使用removeBody.删除的主体包含在子树中。

子树= removeBody (puma1,“L4”
subtree = rigidBodyTree with properties: NumBodies: 3 Bodies: {[1x1 rigidBody] [1x1 rigidBody] [1x1 rigidBody]} Base: [1x1 rigidBody] BodyNames: {'L4' 'L5' 'L6'} BaseName: 'L3' Gravity: [0 0 0] DataFormat: 'struct'

删除修改L3的身体。添加原始副本L3身体的L2正文,然后是返回的子树。机器人模型保持不变。看详细的对比showdetails

removeBody (puma1“L3”);addBody (puma1 body3Copy,“外语”) addSubtree (puma1“L3”子树)showdetails (puma1)
-------------------- 机器人:(6)尸体Idx身体名称联合名称联合类型父母名字(Idx)孩子的名字(s ) --- --------- ---------- ---------- ---------------- ---------------- 1 L1 jnt1转动基地(0)L2 (2) 2 L2 jnt2转动L1 (1) L3 (3) 3 L3 jnt3转动L2 (2) L4 (4) 4, jnt4转动L3(3)一两百(5)5 L5 jnt5转动L4(4) 16种(6)6 16种jnt6转动L5 (5)--------------------

输入参数

全部折叠

机器人型号,指定为rigidBodyTree对象。

父体名称,指定为字符串标量或字符向量。这个父体必须已经存在于机器人模型中。新的主体被附加到这个父主体。

数据类型:字符|字符串

子树机器人模型,指定为rigidBodyTree对象。

介绍了R2016b