主要内容

inverseDynamics

针对给定的运动要求关节力矩

描述

jointTorq= inverseDynamics (机器人)计算关节力矩所需的机器人静态持有国内配置没有外部力量的应用。

例子

jointTorq= inverseDynamics (机器人,配置)计算关节力矩持有指定的机器人配置。

jointTorq= inverseDynamics (机器人,配置,jointVel)指定联合配置计算关节力矩和速度与加速度为零,没有外部力量。

jointTorq= inverseDynamics (机器人,配置,jointVel,jointAccel)计算关节力矩为指定的关节配置,速度,加速度没有外部力量。指定配置,零关节速度或加速度为零,使用[]输入参数。

jointTorq= inverseDynamics (机器人,配置,jointVel,jointAccel,fext)计算关节力矩为指定的关节配置,速度,加速度,外部力量。使用externalForce函数来生成fext

例子

全部折叠

使用inverseDynamics静态函数来计算所需的关节力矩保持特定的机器人配置。还可以指定的关节速度,关节加速度,和其他外部力量使用语法。

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

负载exampleRobots.matlbr

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

lbr。DataFormat =“行”;

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

lbr。Gravity = [0 0 -9.81];

生成一个随机配置lbr

q = randomConfiguration (lbr);

计算所需的关节力矩lbr静态认为配置。

τ= inverseDynamics (lbr q);

使用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对象。使用inverseDynamics函数,设置DataFormat财产,要么“行”“列”

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

关节速度,指定为一个向量。关节速度的数量等于速度自由度的机器人。使用的向量形式jointVel,设置DataFormat财产机器人要么“行”“列”

关节加速度,作为一个向量返回。关节加速度向量的维数等于速度自由度的机器人。每个元素对应于一个特定的关节上机器人。使用的向量形式jointAccel,设置DataFormat财产机器人要么“行”“列”

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

矩阵只列出了非零值在指定的位置相关的身体。您可以添加力矩阵指定多个部队在多个机构。

创建指定的力或力矩的矩阵,明白了externalForce

输出参数

全部折叠

关节力矩,作为一个向量返回。每个元素对应于一个扭矩应用到一个特定的关节。

更多关于

全部折叠

动态属性

使用机器人动力学时,指定的信息对个人身体机械手机器人的使用这些属性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