刚体树机器人模型
刚体树模型是机器人结构的一种表示形式。您可以使用它来表示机器人,如机械手或其他运动学树。使用rigidBodyTree
对象来创建这些模型。
刚体树由刚体(rigidBody
),通过接头连接(rigidBodyJoint
).每个刚体都有一个关节,用来定义该刚体相对于树中的父刚体如何移动。通过在每个关节上设置固定转换来指定从一个物体到下一个物体的转换(setFixedTransform
).
您可以从刚体树模型中添加、替换或删除刚体。你也可以为特定的身体替换关节。的rigidBodyTree
对象维护关系并更新rigidBody
对象属性来反映这种关系。你也可以在不同的身体框架之间使用转换getTransform
.
刚体树组件
基地
每个刚体树都有一个基。底座定义了世界坐标系,是刚体的第一个附着点。基本属性不能被修改,除了的名字
财产。可以通过修改BaseName
刚体树的性质。
刚体
刚体是刚体树模型的基本构件,是用rigidBody
.刚体,有时称为连杆,表示不能变形的固体。单个刚体上任意两点之间的距离保持不变。
当添加到具有多个体的刚体树中时,刚体有与之关联的父体或子体(父
或孩子们
属性)。父节点是刚体所附着的主体,可以是机器人底座。子结点是所有附着在刚体树底部下游的刚体。
每个刚体都有一个与之相关联的坐标系,并包含一个rigidBodyJoint
对象。
联合
每个刚体都有一个关节,用来定义该刚体相对于其父刚体的运动。它是机器人模型中连接两个刚体的连接点。要表示具有多个关节或不同运动轴的单个物理物体,请使用multiplerigidBody
对象。
的rigidBodyJoint
物体支持固定、金宝app转动和移动关节。
这些关节允许以下运动,这取决于它们的类型:
“固定”
-不动。主体与它的父节点是刚性连接的。“转动”
-仅限旋转运动。主体围绕这个关节相对于它的父关节旋转。位置限制定义了以弧度为单位的围绕运动轴的最小和最大角度位置。“移动”
-仅限平移运动。物体沿运动轴相对于父物体线性运动。
每个关节都有一个运动轴JointAxis
财产。关节轴是一个三维单位矢量,它定义了旋转轴(转动关节)或平动轴(移动关节)。的HomePosition
属性定义了特定关节的主位置,这是位置限制内的一个点。使用homeConfiguration
返回机器人的主配置,这是模型中所有关节主位置的集合。
关节还具有定义父和子身体坐标框架之间的固定转换的属性。方法设置这些属性setFixedTransform
方法。根据输入转换参数的方法,可以使用JointToParentTransform
或ChildToJointTransform
属性使用此方法设置。另一个属性是单位矩阵。下面的图像描述了每个属性的含义。
的
JointToParentTransform
定义子主体的关节与父主体框架的关系。当JointToParentTransform
是单位矩阵,母体与关节坐标系重合。的
ChildToJointTransform
定义子主体的关节与子主体框架的关系。当ChildToJointTransform
是单位矩阵,子体与关节坐标系重合。
请注意
实际的关节位置不是其中的一部分联合
对象。机器人模型是无状态的。在父关节框架和子关节框架之间有一个中间转换,它定义了关节沿运动轴的位置。这个转换在机器人构型中定义。看到机器人的配置.
机器人的配置
在完全组装机器人并定义不同主体之间的转换之后,您可以创建机器人配置。构型通过关节名称定义机器人的所有关节位置。
使用homeConfiguration
为了得到HomePosition
属性,并创建主配置。
机器人的构型以结构数组的形式给出。
config = homeConfiguration(robot)
config = 1×6带有字段的struct数组:JointName JointPosition
配置(1)
JointName: 'jnt1' JointPosition: 0
您还可以生成一个随机配置,该配置遵循所有的关节限制randomConfiguration
.
当您想在使用的图形中绘制机器人时,请使用机器人配置显示
.此外,您还可以使用特定配置的两个主体框架之间的转换getTransform
.
要获得具有指定末端执行器姿态的机器人配置,请使用inverseKinematics
.该算法求解给定刚体所需要的关节角度以获得特定的姿态。
另请参阅
rigidBodyTree
|inverseKinematics