主要内容

刚体树机器人模型

刚体树模型是机器人结构的一种表示形式。您可以使用它来表示机器人,如操纵器或其他运动学树。使用rigidBodyTree对象来创建这些模型。

刚体树是由刚体(rigidBody)通过关节连接(rigidBodyJoint).每个刚体都有一个关节,用来定义该刚体相对于树中的父刚体如何移动。通过在每个关节上设置固定变换来指定从一个体到下一个体的变换(setFixedTransform).

您可以在刚体树模型中添加、替换或删除物体。你也可以为特定的身体更换关节。的rigidBodyTree对象维护关系并更新rigidBody对象属性来反映此关系。还可以使用。来实现不同主体框架之间的转换getTransform

刚体树组件

基地

每个刚体树都有一个基底。基定义了世界坐标系,是刚体的第一个附着点。底座不能修改,除了名字财产。可以通过修改BaseName刚体树的性质。

刚体

刚体是刚体树模型的基本构件,使用rigidBody.刚体,有时也称为连杆,表示不能变形的实体。单个刚体上任意两点之间的距离保持不变。

当添加到具有多个体的刚体树中时,刚体具有与其关联的父体或子体(孩子们属性)。母体是刚体附着的物体,它可以是机器人的基座。子结点是附着在刚体树底部下游的所有刚体。

每个刚体都有一个与之相关联的坐标系,并且包含一个rigidBodyJoint对象。

联合

每个刚体都有一个关节,它定义了该刚体相对于其父体的运动。它是机器人模型中连接两个刚体的附着点。要表示具有多个关节或不同运动轴的单个物理体,请使用multiplerigidBody对象。

rigidBodyJoint对象支持固定、金宝app转动和移动关节。

根据关节类型的不同,这些关节可以进行以下运动:

  • “固定”-没有动议。身体与母体紧密相连。

  • “转动”-只能旋转运动。物体相对于它的父关节围绕这个关节旋转。位置限制以弧度定义围绕运动轴的最小和最大角度位置。

  • “移动”-仅平移运动。物体沿着运动轴相对于它的母体作线性运动。

每个关节都有一个运动轴,由JointAxis财产。关节轴是一个三维单位向量,它可以定义旋转轴(旋转关节)或平动轴(移动关节)。的HomePosition属性定义该特定关节的主位置,它是位置限制内的一个点。使用homeConfiguration返回机器人的home配置,它是模型中所有关节home位置的集合。

关节还具有定义父体和子体坐标帧之间的固定转换的属性。这些属性只能使用setFixedTransform方法。根据输入转换参数的方法JointToParentTransformChildToJointTransform属性使用此方法设置。另一个属性设置为单位矩阵。下面的图像描述了每个属性的含义。

  • JointToParentTransform定义子主体的关节相对于父主体框架的位置。当JointToParentTransform是一个单位矩阵,母体与关节框架重合。

  • ChildToJointTransform定义子主体的关节相对于子主体框架的位置。当ChildToJointTransform是一个单位矩阵,子体与关节框架重合。

请注意

实际的关节位置不是这个的一部分联合对象。机器人模型是无状态的。在父关节和子关节框架之间有一个中间转换,它定义了关节沿运动轴的位置。这个转换在机器人配置中定义。看到机器人的配置

机器人的配置

在完全组装机器人并定义不同主体之间的转换之后,您可以创建机器人配置。位形通过关节名称定义机器人的所有关节位置。

使用homeConfiguration为了得到HomePosition属性,并创建主配置。

机器人的构型以结构数组的形式给出。

config = homeConfiguration(robot)
配置= 1×6结构数组与字段:JointName JointPosition
数组中的每个元素都是一个结构,包含一个机器人关节的名称和位置。
配置(1)
ans = struct with fields: JointName: 'jnt1' JointPosition: 0

您还可以使用。生成服从所有关节限制的随机配置randomConfiguration

当您想在图形中绘制机器人时,请使用机器人配置显示.此外,您还可以使用特定配置获得两个主体框架之间的转换getTransform

要获得具有指定末端执行器姿态的机器人构型,使用inverseKinematics.该算法求解给定刚体的特定姿态所需的关节角度。

另请参阅

|

相关的话题