主要内容

taskSpaceMotionModel

模型树刚体运动给予工作空间参考输入

自从R2019b

描述

taskSpaceMotionModel对象模型的闭环工作空间运动操纵者,指定为一个刚体对象树。运动模型定义的行为MotionType财产。

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

创建

描述

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

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

例子

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

属性

全部展开

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

这个属性定义主体将被用作终端执行器,定义和任务空间的运动。属性必须对应于一个机构名称rigidBodyTree对象的RigidBodyTree财产。如果刚体树末端执行器还没有更新,更新身体最高的指数成为默认末端执行器的身体。

比例增益PD控制,指定为一个6-by-6矩阵。

微分增益的比例微分(PD)控制,指定为一个6-by-6矩阵。

关节阻尼常数,指定为一个n元向量,n非固定关节的机器人的数量模型指定的吗RigidBodyTree财产。关节阻尼单元N / (m / s)或N / (rad / s)移动和转动关节,分别。

运动类型,指定为“PDControl”使用比例微分(PD)控制通过Jacobian-Transpose映射到关节控制器。控制是基于指定的KpKd属性。

对象的功能

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

例子

全部折叠

这个例子显示了如何创建和使用taskSpaceMotionModel对象操纵机械臂的工作空间。

创建一个机器人

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

建立了模拟

设置时间为1秒的步伐大小0.02秒。设置初始状态的主配置机器人,速度为零。

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

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

refPose = trvec2tform ([0.6 -。1 0.5]);refVel = 0 (6,1);

创建运动模型

模型的行为作为一个系统在比例微分(PD)控制。

motionModel = taskSpaceMotionModel (“RigidBodyTree”,机器人,“EndEffectorName”,“EndEffector_Link”);

模拟机器人

模拟的行为在1秒使用一个硬解算器更有效地捕捉机器人动力学使用ode15s使高精密高速率的变化。

[t, robotState] = ode15s (@ (t,状态)导数(motionModel、州refPose refVel) tspan, initialState);

情节的响应

情节机器人的初始位置和马克目标用X。

图显示(机器人,initialState (1:7));持有所有plot3 (refPose (1、4) refPose (2、4), refPose (3、4),“x”,“MarkerSize”,20)

观察策划5赫兹的机器人的反应循环。

r = rateControl (5);i = 1:尺寸(robotState 1)显示(机器人,robotState(我1:7)',“PreservePlot”、假);等待(r);结束

图包含一个坐标轴对象。坐标轴对象包含X, Y ylabel包含26个对象类型的线,补丁。一个或多个行显示的值只使用这些对象标记代表base_link, Shoulder_Link, HalfArm1_Link, HalfArm2_Link, ForeArm_Link, Wrist1_Link, Wrist2_Link, Bracelet_Link, EndEffector_Link, Shoulder_Link_mesh, HalfArm1_Link_mesh, HalfArm2_Link_mesh, ForeArm_Link_mesh, Wrist1_Link_mesh, Wrist2_Link_mesh, Bracelet_Link_mesh base_link_mesh。

引用

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

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

扩展功能

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

版本历史

介绍了R2019b