externalForce
相对于基地组成外力矩阵
描述
例子
由于外力计算前进动力刚体树模型
计算结果为给定的机器人关节加速度配置与应用外部力量和部队由于重力。扳手适用于一个特定的身体重力被指定为整个机器人。
加载一个预定义的库卡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
对象
机器人模型,指定为一个rigidBodyTree
对象。使用externalForce
函数,设置DataFormat
财产,要么“行”
或“列”
。
bodyname
- - - - - -名字的身体外力
字符串标量|特征向量
名字的身体外力,指定为一个字符串标量或特征向量。这个身体的名字必须匹配的身体机器人
对象。
数据类型:字符
|字符串
扳手
- - - - - -力矩和力应用于身体
(Tx泰Tz Fx Fz)财政年度
向量
力矩和力应用于人体,指定为一个(Tx泰Tz Fx Fz)财政年度
向量。扳手的前三个元素对应于周围的时刻xyz相互重合。最后三个元素是线性部队沿着相同的轴。除非你指定的机器人配置
,扳手被认为是相对于基本框架。
输出参数
fext
——外力矩阵
n6矩阵| 6×-n矩阵
外力矩阵,作为一个返回n6或6日-n矩阵,n是速度(自由度)的机器人。取决于形状DataFormat
的属性机器人
。的“行”
数据格式使用一个n6矩阵。的“列”
数据格式使用了-n。
由矩阵只列出了非零值在指定的位置相关的身体。您可以添加力矩阵指定多个部队在多个机构。使用外力矩阵指定外部力量动态功能inverseDynamics
和forwardDynamics
。
更多关于
动态属性
使用机器人动力学时,指定的信息对个人身体机械手机器人的使用这些属性rigidBody
对象:
质量
——在公斤刚体的质量。CenterOfMass
——刚体质心的位置指定为一个向量的形式[x y z]
。向量描述刚体的质量中心的位置,相对于车身骨架,在米。的centerOfMass
刚体目标函数使用这些属性值时,计算机器人的质心。惯性
——刚体的惯性,指定为一个向量的形式[Ixx Iyy伊茨Iyz Ixz Ixy]
。向量是相对于车身骨架在公斤平方米。的惯性张量是一个正定矩阵形式:前三个元素的
惯性
矢量转动惯量,对角元素的惯性张量。最后三个元素的乘积惯性,惯性张量的非对角元素。
相关信息整个机械手机器人模型,指定这些rigidBodyTree
对象属性:
重力
——重力加速度有经验的机器人,作为指定[x y z]
向量在m / s2。默认情况下,没有重力加速度。DataFormat
——输入和输出数据格式的运动学和动力学函数,指定为“结构”
,“行”
,或“列”
。
动力学方程
机械手刚体动力学方程由:
也写为:
地点:
——是基于当前的机器人关节空间质量矩阵配置。通过计算矩阵
massMatrix
对象的功能。——是科里奥利,乘以 计算速度的产品。计算速度使用的产品
velocityProduct
对象的功能。——是所有关节所需的力矩和力重力维持他们在指定的重力
重力
。通过计算重力力矩gravityTorque
对象的功能。——联合指定的雅可比矩阵几何配置。利用计算几何的雅可比矩阵
geometricJacobian
对象的功能。-是一个矩阵的外部力量应用于刚体。生成外部力量通过使用
externalForce
对象的功能。力矩和力——联合应用直接作为一个向量的每个关节。
——联合配置、关节速度和关节加速度分别作为单独的向量。对于转动关节,指定值弧度,rad / s, rad / s2,分别。对于移动关节,指定在米,m / s和m / s2。
直接计算动力学,使用forwardDynamics
对象的功能。函数计算关节加速度为指定的上述输入的组合。
实现一个特定的运动,使用inverseDynamics
对象的功能。函数计算所需的关节力矩达到指定的配置,速度,加速度,外部力量。
引用
[1]费瑟斯通,罗伊。刚体动力学算法。施普林格,2008年。DOI.org (Crossref), doi: 10.1007 / 978-1-4899-7560-7。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
在创建rigidBodyTree
对象,使用指定的语法MaxNumBodies
作为增加身体的上界机器人模型。您还必须指定DataFormat
房地产作为一个名称-值对。例如:
机器人= rigidBodyTree (“MaxNumBodies”15岁的“DataFormat”,“行”)
最小化数据使用,限制数量的上限接近预期的身体模型。所有的数据格式都支持代码生成。金宝app使用动态函数,必须设置为数据格式“行”
或“列”
。
的显示
和showdetails
功能不支持代码生成。金宝app
版本历史
介绍了R2017a
Apri esempio
如果dispone di una versione modificata di questo esempio。Desideri aprire questo esempio con le modifiche星期二吗?
第一MATLAB
海脂肪clic苏联合国collegamento切corrisponde questo第一MATLAB:
Esegui il第一inserendolo所以nella隙缝di第一MATLAB。我浏览器web非supportano金宝app comandi MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。