主要内容

externalForce

相对于基地组成外力矩阵

描述

例子

fext= externalForce (机器人,bodyname,扳手)矩阵组成的外部力量,您可以使用作为输入inverseDynamicsforwardDynamics要应用一个外力,扳手指定的身体bodyname。的扳手输入被认为是基本框架。

例子

fext= externalForce (机器人,bodyname,扳手,配置)组成的外部力矩阵的假设扳手是在bodyname为指定的帧配置。力矩阵fext给出了基本框架。

例子

全部折叠

计算结果为给定的机器人关节加速度配置与应用外部力量和部队由于重力。扳手适用于一个特定的身体重力被指定为整个机器人。

加载一个预定义的库卡LBR机器人模型,它被指定为一个RigidBodyTree对象。

负载exampleRobots.matlbr

设置数据格式“行”。对于所有动力学计算,数据格式必须“行”“列”

lbr。DataFormat =“行”;

设置重力。默认情况下,重力是假定为零。

lbr。Gravity = [0 0 -9.81];

得到配置lbr机器人。

q = homeConfiguration (lbr);

指定扳手向量表示机器人的外部力量。使用externalForce矩阵函数生成的外部力量。指定的机器人模型,经历了扳手的终端执行器,扳手向量,和当前的机器人配置。扳手是相对于“tool0”车身骨架,它要求您指定的机器人配置,

扳手= (0.3 0 0 0.5 0 0);fext = externalForce (lbr,“tool0”,扳手,q);

计算重力合成关节加速度与外力应用于末端执行器“tool0”lbr在国内配置。关节速度和关节力矩是假定为零(输入一个空向量[])。

qddot = forwardDynamics (lbr q [], [], fext);

使用externalForce函数来生成力矩阵应用于刚体树模型。力矩阵是一个连续6向量,每个关节的机器人应用six-element扳手。使用externalForce功能和指定终端执行器正确分配扳手的正确行矩阵。您可以添加多个力矩阵应用多个部队一个机器人。

计算关节力矩,对抗这些外部力量,使用inverseDynamics函数。

加载一个预定义的库卡LBR机器人模型,它被指定为一个RigidBodyTree对象。

负载exampleRobots.matlbr

设置数据格式“行”。对于所有动力学计算,数据格式必须“行”“列”

lbr。DataFormat =“行”;

设置重力财产给特定的重力加速度。

lbr。Gravity = [0 0 -9.81];

得到配置lbr

q = homeConfiguration (lbr);

设置外部力量link1。输入扳手向量表达的基本框架。

fext1 = externalForce (lbr,“link_1”,[0 0 0.0 - 0.1 0 0]);

终端执行器上的外力设置,tool0。输入扳手的向量表示tool0框架。

fext2 = externalForce (lbr,“tool0”(0 0 0.0 - 0.1 0 0),q);

计算所需的关节力矩平衡外部力量。结合的力量,加上力矩阵在一起。关节速度和加速度都假定为零(输入[])。

τ= inverseDynamics (lbr q [], [], fext1 + fext2);

输入参数

全部折叠

机器人模型,指定为一个rigidBodyTree对象。使用externalForce函数,设置DataFormat财产,要么“行”“列”

名字的身体外力,指定为一个字符串标量或特征向量。这个身体的名字必须匹配的身体机器人对象。

数据类型:字符|字符串

力矩和力应用于人体,指定为一个(Tx泰Tz Fx Fz)财政年度向量。扳手的前三个元素对应于周围的时刻xyz相互重合。最后三个元素是线性部队沿着相同的轴。除非你指定的机器人配置,扳手被认为是相对于基本框架。

机器人配置,指定为一个向量与职位所有nonfixed关节的机器人模型。您可以生成一个配置使用homeConfiguration(机器人),randomConfiguration(机器人),或者通过指定自己的关节位置。使用的向量形式配置,设置DataFormat财产机器人要么“行”“列”

输出参数

全部折叠

外力矩阵,作为一个返回n6或6日-n矩阵,n是速度(自由度)的机器人。取决于形状DataFormat的属性机器人。的“行”数据格式使用一个n6矩阵。的“列”数据格式使用了-n

由矩阵只列出了非零值在指定的位置相关的身体。您可以添加力矩阵指定多个部队在多个机构。使用外力矩阵指定外部力量动态功能inverseDynamicsforwardDynamics

更多关于

全部折叠

动态属性

使用机器人动力学时,指定的信息对个人身体机械手机器人的使用这些属性rigidBody对象:

  • 质量——在公斤刚体的质量。

  • CenterOfMass——刚体质心的位置指定为一个向量的形式[x y z]。向量描述刚体的质量中心的位置,相对于车身骨架,在米。的centerOfMass刚体目标函数使用这些属性值时,计算机器人的质心。

  • 惯性——刚体的惯性,指定为一个向量的形式[Ixx Iyy伊茨Iyz Ixz Ixy]。向量是相对于车身骨架在公斤平方米。的惯性张量是一个正定矩阵形式:

    3 x3的矩阵。第一行包含Ixx, Ixy, Ixz。第二个包含Ixy Iyy, Iyz。第三个包含Ixz, Iyz,伊茨。

    前三个元素的惯性矢量转动惯量,对角元素的惯性张量。最后三个元素的乘积惯性,惯性张量的非对角元素。

相关信息整个机械手机器人模型,指定这些rigidBodyTree对象属性:

  • 重力——重力加速度有经验的机器人,作为指定[x y z]向量在m / s2。默认情况下,没有重力加速度。

  • DataFormat——输入和输出数据格式的运动学和动力学函数,指定为“结构”,“行”,或“列”

动力学方程

机械手刚体动力学方程由:

d d t ( ˙ ] = ( ˙ ( ) 1 ( C ( , ˙ ) ˙ G ( ) J ( ) T F E x t + τ ) ]

也写为:

( ) ¨ = C ( , ˙ ) ˙ G ( ) J ( ) T F E x t + τ

地点:

  • ( ) ——是基于当前的机器人关节空间质量矩阵配置。通过计算矩阵massMatrix对象的功能。

  • C ( , ˙ ) ——是科里奥利,乘以 ˙ 计算速度的产品。计算速度使用的产品velocityProduct对象的功能。

  • G ( ) ——是所有关节所需的力矩和力重力维持他们在指定的重力重力。通过计算重力力矩gravityTorque对象的功能。

  • J ( ) ——联合指定的雅可比矩阵几何配置。利用计算几何的雅可比矩阵geometricJacobian对象的功能。

  • F E x t -是一个矩阵的外部力量应用于刚体。生成外部力量通过使用externalForce对象的功能。

  • τ 力矩和力——联合应用直接作为一个向量的每个关节。

  • , ˙ , ¨ ——联合配置、关节速度和关节加速度分别作为单独的向量。对于转动关节,指定值弧度,rad / s, rad / s2,分别。对于移动关节,指定在米,m / s和m / s2

直接计算动力学,使用forwardDynamics对象的功能。函数计算关节加速度为指定的上述输入的组合。

实现一个特定的运动,使用inverseDynamics对象的功能。函数计算所需的关节力矩达到指定的配置,速度,加速度,外部力量。

引用

[1]费瑟斯通,罗伊。刚体动力学算法。施普林格,2008年。DOI.org (Crossref), doi: 10.1007 / 978-1-4899-7560-7。

扩展功能

版本历史

介绍了R2017a