主要内容

jointSpaceMotionModel

树模型的刚体运动关节空间的输入

自从R2019b

描述

jointSpaceMotionModel对象模型的闭环操纵机器人关节空间运动,作为一个指定rigidBodyTree对象。运动模型定义的行为MotionType财产。

关于运动方程为更多的细节,请参阅关节空间运动模型

创建

描述

motionModel= jointSpaceMotionModel创建一个默认2个联合器的运动模型。

例子

motionModel= jointSpaceMotionModel (“RigidBodyTree”,树)创建一个指定的运动模型rigidBodyTree对象。

motionModel= jointSpaceMotionModel(名称,值)设置附加属性指定为名称-值对。您可以指定多个属性在任何顺序。

属性

全部展开

刚体树机器人模型,指定为一个rigidBodyTree对象定义了惯性和机械手的运动学性质。

固有频率误差动力学,指定为一个标量或n在赫兹元向量,n相关nonfixed关节的数量rigidBodyTree对象RigidBodyTree财产。

依赖关系

使用这个属性,设置MotionType财产“ComputedTorqueControl”“IndependentJointMotion”

阻尼比的二阶误差动力学,指定为一个标量或n元向量的值,在那里n相关nonfixed关节的数量rigidBodyTree对象RigidBodyTree财产。如果指定一个标量DampingRatio成为一个n元向量的值年代,在那里年代是指定的标量。

依赖关系

使用这个属性,设置MotionType财产“ComputedTorqueControl”“IndependentJointMotion”

比例增益的比例微分(PD)控制,指定为一个标量或n——- - - - - -n矩阵,n相关nonfixed关节的数量rigidBodyTree对象RigidBodyTree财产。你必须设置MotionType财产“PDControl”。如果指定一个标量Kp就变成了*眼(n),在那里年代是指定的标量。

依赖关系

使用这个属性,设置MotionType财产“PDControl”

导数得到PD控制,指定为一个标量或n——- - - - - -n矩阵,nnonfixed关节的数量rigidBodyTree对象RigidBodyTree财产。如果指定一个标量Kp就变成了*眼(n),在那里年代是指定的标量。

依赖关系

使用这个属性,设置MotionType财产“PDControl”

运动类型,指定为字符串标量或字符向量定义了对象模型的闭环关节空间的行为。选项有:

  • “ComputedTorqueControl”——补偿全身动态和分配中指定的误差动力学NaturalFrequencyDampingRatio属性。

  • “IndependentJointMotion”——每个联合作为一个独立的二阶系统模型使用指定的误差动力学NaturalFrequencyDampingRatio属性。

  • “PDControl”——使用比例微分控制基于指定的关节KpKd属性。

对象的功能

导数 时间导数的机械手模型
updateErrorDynamicsFromStep 更新的值NaturalFrequencyDampingRatio属性给出理想的阶跃响应

例子

全部折叠

这个例子显示了如何创建和使用jointSpaceMotionModel对象在关节空间机器人机械手。

创建一个机器人

机器人= loadrobot (“kinovaGen3”,“DataFormat”,“列”,“重力”[0 0 -9.81]);

建立了模拟

将时间间隔设置为1 s步伐大小为0.01 s。设置初始状态是机器人,家里配置速度为零。

tspan = 0:0.01:1;initialState = [homeConfiguration(机器人);0 (7,1)];

定义一个参考状态与目标位置,零速度,加速度为零。

targetState =[π/ 4;π/ 3;π/ 2;-π/ 3;π/ 4;-π/ 4;3 *π/ 4;0 (7 - 1);0 (7,1)];

创建运动模型

模型与计算转矩控制和误差动力学系统定义为一个相当快的阶跃响应超调为5%。

motionModel = jointSpaceMotionModel (“RigidBodyTree”,机器人);updateErrorDynamicsFromStep (motionModel。3 . 05);

模拟机器人

用导数的函数模型的输入数值解算器模拟行为超过1秒。

[t, robotState] =数值(@ (t,状态)导数(motionModel、州targetState) tspan, initialState);

情节的响应

情节的位置所有的关节驱动他们的目标状态。关节位移之间更高的起始位置和目标位置开动目标速度比那些较低的位移。这导致一个过度,但所有的关节都有相同的沉淀时间。

图绘制(t, robotState (: 1: motionModel.NumJoints));持有所有;情节(t, targetState (1: motionModel.NumJoints) *(1、长度(t)),”——“);标题(“联合位置(固体)和参考(虚线)”);包含(“时间(s)”)ylabel (“位置(rad)”);

图包含一个坐标轴对象。坐标轴对象与标题关节位置(固体)和引用(虚线),包含时间(s), ylabel位置(rad)包含14线类型的对象。

引用

[1]克雷格·约翰·J。介绍机器人:力学和控制。上台北:培生教育,2005年。

[2]Spong马克·W。,Seth Hutchinson, and Mathukumalli Vidyasagar.机器人的建模和控制。新泽西州霍博肯:威利,2006年。

扩展功能

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

版本历史

介绍了R2019b