主要内容

constraintFixedJoint

固定联合约束的身体

描述

constraintFixedJoint对象描述了一个闭环固定联合约束之间的继任者和前任的身体一样rigidBodyTree。约束条件是满足当没有相对取向,和框架一致的起源。这个约束允许中间帧之间没有相对运动,当满足。

创建

描述

例子

fixedConst= constraintFixedJoint (successorbody,predecessorbody)返回一个固定约束对象,fixedConst,表示指定的继任者之间的约束的身体successorbody和前任的身体predecessorbody的关节。的successorbody前任参数设置SuccessorBodyPredecessorBody属性,分别。

fixedConst= constraintFixedJoint (___,名称=值)指定属性使用一个名称-值对参数除了所有输入参数从之前的语法。

属性

全部展开

继任者车身骨架,名称指定为一个字符串标量或特征向量。当使用这个约束的generalizedInverseKinematics逆运动学解算器(反向),在指定的名称必须匹配的身体RigidBodyTreegeneralizedInverseKinematics对象。

前任车身骨架,名称指定为一个字符串标量或特征向量。当使用这个约束的generalizedInverseKinematics逆运动学解算器(反向),在指定的名称必须匹配的身体RigidBodyTreegeneralizedInverseKinematics对象。

固定变换的联合约束的继任者车身骨架,指定为4×4矩阵。

例子:(1 0 0 1;0 1 0 1;0 0 1 1;0 0 0 1)

固定变换的联合约束的前任车身骨架,指定为4×4矩阵。

例子:(1 0 0 1;0 1 0 1;0 0 1 1;0 0 0 1)

位置公差联合约束的米,指定为一个非负标量。

定向公差联合约束的米,指定为负的标量。

重量的限制,指定为一个双元素向量。向量的元素对应的权重PositionToleranceOrientationTolerance属性,分别。使用这些权重与权重中指定的所有约束generalizedInverseKinematics每个约束解算器正确平衡。

例子:(1 - 4)

例子

全部折叠

创建一个转动、移动和固定联合约束的一个简单的刚体树。

使用exampleHelperFourBarLinkageTree辅助函数来创建一个简单的机器人模型,证明了闭环约束。

rbt = exampleHelperFourBarLinkageTree;显示(rbt碰撞=“上”);视图([0 0π])xlim ([1 - 4])

{“字符串”:“图包含一个坐标轴对象。坐标轴对象包含11个补丁,类型的对象。这些对象代表link0, link1、link2 link3, link1_coll_mesh, link2_coll_mesh, link3_coll_mesh link0_coll_mesh。”,“泰克斯”:[],“乳胶”:[]}

转动关节约束

为了演示一个转动关节约束,创建一个四连杆通过连接最后一个链接,link3第一个链接,link0

创建一个广义逆运动学解算器转动关节约束和联合边界约束。

gikSolverWithRevoluteJointConstraint = generalizedInverseKinematics (RigidBodyTree = rbt,ConstraintInputs = {“转动”,“jointbounds”});

确保可重复的本土知识解决方案,随机重启禁用。万博 尤文图斯

gikSolverWithRevoluteJointConstraint.SolverParameters。AllowRandomRestart = false;θ=π/ 2 +π/ 4;

解决第一个关节通过设置θ最小和最大的束缚。

activeJointConstraint = constraintJointBounds (rbt);activeJointConstraint。重量= (1 0 0);:activeJointConstraint.Bounds(1) =(θ,θ);

创建一个转动关节约束的继任者和前任机构设置为最后一个链接link3和第一个链接link0,分别。特定的前任和继任者转换创建中间帧1计,在X设在,从它们各自的身体。一旦定义,这些中间帧移动,这样他们起源时一致的框架Z相互重合一致。

cRev = constraintRevoluteJoint (“link3”,“link0”,PredecessorTransform = trvec2tform ((1 0 0)),SuccessorTransform = trvec2tform ([1 0 0]));

提供(θ0 0)作为一个初始猜解算器,以及约束。

qConst = gikSolverWithRevoluteJointConstraint([θ0 0],cRev activeJointConstraint);

想象机器人机器人作为四连杆。如果第一个关节旋转,解算器试图保持转动关节约束的中间帧同步,作为关节和导致四连杆运动。

图(Name =“转动关节约束”)显示(rbt qConst碰撞=“上”)
ans =轴(初级)属性:XLim: [-2.5000 - 2.5000] YLim: [-2.5000 - 2.5000] XScale:“线性”YScale:“线性”GridLineStyle:“-”位置:[0.1300 0.1100 0.7750 0.8150)单位:“规范化”显示所有属性
视图([0 0π])

{“字符串”:“图转动关节约束包含一个坐标轴对象。坐标轴对象包含11个补丁,类型的对象。这些对象代表link0, link1、link2 link3, link1_coll_mesh, link2_coll_mesh, link3_coll_mesh link0_coll_mesh。”,“泰克斯”:[],“乳胶”:[]}

移动关节约束

使用一个移动关节约束创建一个曲柄滑块。创建一个新的联合解算器移动关节约束和边界约束。

gikSolverWithPrismaticJointConstraint = generalizedInverseKinematics (RigidBodyTree = rbt,ConstraintInputs = {“移动”,“jointbounds”});gikSolverWithPrismaticJointConstraint.SolverParameters.AllowRandomRestart = false;

创建一个移动关节约束link3link0继任者和前任机构,分别设置前任transfrom,前任中间帧1计在X设在和旋转π/ 2Y前任机构设在框架。

cPris = constraintPrismaticJoint (“link3”,“link0”PredecessorTransform = trvec2tform ((1 0 0)) * eul2tform([0π/ 2 0]));

提供(θ0 0)作为一个初始猜解算器的约束。

qConst = gikSolverWithPrismaticJointConstraint([θ0 0],cPris activeJointConstraint);

想象机器人机器人作为曲柄滑块。如果第一个关节旋转,解算器试图保持移动关节约束的中间帧同步,作为关节和导致曲柄滑块运动。

图(Name =“移动关节约束”)显示(rbt qConst碰撞=“上”)
ans =轴(初级)属性:XLim: [-2.5000 - 2.5000] YLim: [-2.5000 - 2.5000] XScale:“线性”YScale:“线性”GridLineStyle:“-”位置:[0.1300 0.1100 0.7750 0.8150)单位:“规范化”显示所有属性
视图([0 0π])

{“字符串”:“图移动关节约束包含一个坐标轴对象。坐标轴对象包含11个补丁,类型的对象。这些对象代表link0, link1、link2 link3, link1_coll_mesh, link2_coll_mesh, link3_coll_mesh link0_coll_mesh。”,“泰克斯”:[],“乳胶”:[]}

固定关节约束

来演示一个固定关节约束,创建一个三角形的链接保存当第一个联合行动。创建一个新的解算器固定关节约束。

gikSolverWithFixedJointConstraint = generalizedInverseKinematics (RigidBodyTree = rbt,ConstraintInputs = {“固定”});

创建固定联合约束link3link0分别作为继任者和前任机构和设置的继任者变换,前任中间帧1计在X前任机构设在框架。

cFix = constraintFixedJoint (“link3”,“link1”SuccessorTransform = trvec2tform ([1 0 0]));

设置的重量取向固定联合约束的约束0

cFix。重量= [1 0];[qConst, solInfo] = gikSolverWithFixedJointConstraint([θ0.1 0],cFix);

想象机器人如何固定约束共同作用于机器人框架。如果第一个关节旋转,解算器试图保持固定接头的中间帧约束重合,作为一个固定的关节。

图(Name =“固定关节约束”)显示(rbt qConst碰撞=“上”)
ans =轴(初级)属性:XLim: [-2.5000 - 2.5000] YLim: [-2.5000 - 2.5000] XScale:“线性”YScale:“线性”GridLineStyle:“-”位置:[0.1300 0.1100 0.7750 0.8150)单位:“规范化”显示所有属性
视图([0 0π])

{“字符串”:“图固定关节约束包含一个坐标轴对象。坐标轴对象包含11个补丁,类型的对象。这些对象代表link0, link1、link2 link3, link1_coll_mesh, link2_coll_mesh, link3_coll_mesh link0_coll_mesh。”,“泰克斯”:[],“乳胶”:[]}

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

版本历史

介绍了R2022a