主要内容

刚体树机器人模型

刚体树模型代表一个机器人结构。你可以用它来表示机器人如操纵者或其他运动树。使用rigidBodyTree对象来创建这些模型。

一个刚体树由刚体(rigidBody)通过关节连接(rigidBodyJoint)。每个刚体有共同定义了如何,身体动作相对于母公司在树上。指定的转换从一个身体下通过设置固定的转换在每个关节(setFixedTransform)。

您可以添加、替换或删除的身体从刚体树模型。你也可以替换为特定的身体关节。的rigidBodyTree对象维护和更新的关系rigidBody对象属性以反映这种关系。你也可以使用不同的身体框架之间的转换getTransform

刚体树组件

基地

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

刚体

刚体是刚体的基本构建块创建树模型和使用rigidBody。一个刚体,有时被称为一个链接,代表着一个坚实的身体,不能变形。任意两点之间的距离在一个刚体保持不变。

当添加到刚体树与多个机构,刚体有父母或孩子身体相关(孩子们属性)。父是身体这个刚体相连,可机器人基地。孩子们所有的身体连接到这个身体下游刚体树的基础。

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

联合

每个刚体有一个关节,它定义了刚体的运动相对于母公司。是连接两个刚体的附着点机器人模型。代表一个单一的身体与多个关节或不同的运动轴,使用多个rigidBody对象。

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

这些关节允许以下运动,取决于他们的类型:

  • “固定”——没有运动。身体是刚性连接的母公司。

  • “转动”——旋转运动。相对于其父身体周围旋转接头。头寸限制定义最小和最大弧度的角位置轴的运动。

  • “移动”——平移运动。身体移动线性相对于其父沿轴的运动。

定义的每个关节都有一个轴的运动JointAxis财产。关节轴是一个3 d单位向量,定义了旋转轴转动关节或轴的翻译(移动关节)。的HomePosition属性定义了特定关节的中心位置,这是一个点的位置范围内。使用homeConfiguration回到家里配置机器人,这是所有回家的关节位置的集合模型。

关节也有属性定义转换固定父母和孩子之间的身体协调框架。只能设置这些属性使用setFixedTransform方法。根据您的输入转换参数的方法,要么JointToParentTransformChildToJointTransform属性设置使用这种方法。其他属性设置为单位矩阵。以下图片描述每个属性意味着什么。

  • JointToParentTransform定义了孩子身体的关节是在关系到父体框架。当JointToParentTransform是一个单位矩阵,父母身体和关节坐标系一致。

  • ChildToJointTransform定义了孩子身体的联合关系对孩子的身体框架。当ChildToJointTransform是一个单位矩阵,孩子身体和关节坐标系一致。

请注意

实际的关节位置不属于这联合对象。机器人模型是无状态的。父母和孩子之间有一个中间变换联合框架定义的位置联合沿轴的运动。这种转变是机器人配置中定义的。看到机器人的配置

机器人的配置

后完全装配机器人和定义不同机构之间的转换,您可以创建机器人配置。配置定义所有机器人的关节位置,他们的联合名义出版。

使用homeConfiguration得到HomePosition每个关节和创建的配置的属性。

机器人配置作为一个结构数组。

配置= homeConfiguration(机器人)
配置= 1×6结构体数组字段:JointName JointPosition
数组中的每个元素是一个结构,包含一个机器人的关节的名称和位置。
配置(1)
ans =结构体字段:JointName:“jnt1”JointPosition: 0

你也可以生成一个随机的配置,遵循所有的联合限制使用randomConfiguration

使用机器人配置当你想把一个机器人在图使用显示。此外,你可以得到两个身体坐标系之间的转换与特定的配置使用getTransform

得到机器人末端执行器配置与指定的姿势,使用inverseKinematics。该算法解决了所需的关节角实现刚体指定一个特定的姿势。

另请参阅

|

相关的话题