jointSpaceMotionModel

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

描述

jointSpaceMotionModel对象模型的操纵机器人的闭环关节空间运动,指定为rigidBodyTree宾语。运动模型的行为由定义移动型属性。

创建

描述

motionModel= jointSpaceMotionModel创建一个默认的两关节机械手的运动模型。

motionModel= jointSpaceMotionModel( “RigidBodyTree”,树)创建指定的运动模型rigidBodyTree宾语。

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

属性

展开全部

刚体树机器人模型,指定为rigidBodyTree对象定义操纵器的惯性和运动学特性。

误差动态的固有频率,指定为一个标量或ñ在赫兹,其中 - 元素矢量ñ是不固定关节的在相关的数rigidBodyTree对象在RigidBodyTree属性。

依赖

要使用此属性,设置移动型属性“ComputedTorqueControl”要么“IndependentJointMotion”

二阶误差动力学的阻尼比,指定为一个标量或ñ真实值,其中的 - 元素矢量ñ是不固定关节的在相关的数rigidBodyTree对象在RigidBodyTree属性。如果指定了一个标量,那么阻尼比成为ñ的值 - 元素矢量小号,其中小号是指定的标量。

依赖

要使用此属性,设置移动型属性“ComputedTorqueControl”要么“IndependentJointMotion”

比例增益为比例 - 微分(PD)控制,指定为一个标量或ñ-通过-ñ矩阵,其中ñ是不固定关节的在相关的数rigidBodyTree对象在RigidBodyTree属性。您必须设置移动型属性“PDControl”。如果指定了一个标量,那么KPS *眼(n)的,其中小号是指定的标量。

依赖

要使用此属性,设置移动型属性“PDControl”

微分增益为PD控制,指定为一个标量或ñ-通过-ñ矩阵,其中ñ在非固定接头的数量rigidBodyTree对象在RigidBodyTree属性。如果指定了一个标量,那么KPS *眼(n)的,其中小号是指定的标量。

依赖

要使用此属性,设置移动型属性“PDControl”

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

  • “ComputedTorqueControl”- 补偿在规定的误差动态全体动力学和受让人NaturalFrequency阻尼比属性。

  • “IndependentJointMotion”- 使用误差动力学模型各关节作为一个独立的二阶系统由指定的NaturalFrequency阻尼比属性。

  • “PDControl”- 使用基于所述指定的关节比例微分控制KPKD属性。

对象函数

衍生物 机械手模型状态的时间导数
updateErrorDynamicsFromStep 更新值NaturalFrequency阻尼比特性给定的期望的阶跃响应

例子

全部收缩

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

创建机器人

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

设置仿真

设定时间跨度为1个s的0.01秒的时间步长大小。设置初始状态是机器人,家用配置为零的速度。

TSPAN = 0:0.01:1;初始化状态= [homeConfiguration(机器人);零(7,1)];

与目标位置,零速度和零加速度定义基准状态。

targetState =π/ 4;PI / 3;PI / 2;-pi / 3;PI / 4;-pi / 4;3 * pi / 4的;零(7,1);零(7,1)];

创建运动模型

模型用5%的过冲适度快速阶跃响应定义计算的转矩控制和动态误差的系统。

motionModel = jointSpaceMotionModel(“RigidBodyTree”,机器人);updateErrorDynamicsFromStep(motionModel,0.3,0.05);

模拟机器人

使用该模型的导数函数作为输入到ODE45解算器,以模拟在1秒的行为。

[T,robotState] = ODE45(@(T,状态)衍生物(motionModel,州,targetState),TSPAN,初始化状态);

绘制响应

画出所有的关节驱动其目标状态的位置。接头与起始位置和目标位置致动到所述目标以更快的速率比具有较低的位移之间的较高的位移。这导致超调,但所有的关节都具有相同的稳定时间。

图图(吨,robotState(:,1:motionModel.NumJoints));保持所有;情节(T,targetState(1:motionModel.NumJoints)*一(1,长度(T)),“ - ”);标题(“联合位置(实)与参考(虚线)”);xlabel(“时间(s)”)ylabel(“位置(弧度)”);

参考

[1]克雷格,约翰J.介绍机器人:力学与控制。上马鞍河,新泽西州:培生教育出版,2005。

[2]司朋,马克W.,赛斯哈钦森和马库马利·维德亚萨加。机器人建模与控制。新泽西州霍博肯市:Wiley出版社,2006年。

扩展功能

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

介绍了在R2019b