详细介绍了刚体机器人动力学的不同元素、性质和方程。机器人动力学是作用在机器人上的力与机器人运动结果之间的关系。

机器人动力学信息包含在一个rigidBodyTree对象中,该对象指定了刚体、附点和运动学和动力学计算的惯性参数。

要使用动态对象函数,必须将rigidBodyTree对象的DataFormat属性设置为“row”或“column”。这些设置将输入和输出分别作为行向量或列向量返回,用于相关的机器人计算,如机器人构型或关节力矩。

动力学属性

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

质量:刚体的质量,单位为千克

质心:刚体的质心位置,以向量[x y z]的形式表示。这个矢量描述了刚体质心相对于车身骨架的位置,单位是米。centerOfMass对象函数在计算机器人的质心时使用这些刚体属性值。

惯性:刚体的惯性,以矢量的形式表示。矢量是相对于body frame的,单位是千克平方米。惯性张量是一个正定矩阵,其形式为:

惯性矢量的前三个元素是惯性矩,它们是惯性张量的对角线元素。最后三个元素是惯性的乘积,它们是惯性张量的非对角线元素。

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

重力——机器人所经历的重力加速度,以m/s2的[x y z]矢量表示。默认情况下,没有重力加速度。

数据格式——运动学和动力学函数的输入和输出数据格式,指定为“struct”、“row”或“column”。

动力学方程

机械手刚体动力学由以下方程控制:

即:

其中,

M(q):是基于当前机器人构型的关节空间质量矩阵。使用massMatrix对象函数计算这个矩阵。

C(q,˙q) :是科氏力与离心力矩阵,它乘以˙q就能计算出速度积。使用由velocity product对象函数计算速度乘积。

G(q) :是所有关节在指定重力状态下维持其位置所需的重力力矩和力。使用gravityTorque对象函数计算重力力矩。

J(q) :是指定关节位型的几何雅可比矩阵。利用几何雅可比矩阵目标函数计算几何雅可比矩阵。

Fext:是施加在刚体上的外力的矩阵。使用externalForce对象函数产生外力。

τ -是关节力矩,作为向量直接作用于每个关节的力。

要直接计算动态,使用forwardDynamics对象函数。该函数计算上述输入的指定组合的联合加速度。

 要实现一组特定的运动,使用inverseDynamics对象函数。该函数计算实现指定配置、速度、加速度和外力所需的关节力矩。

 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐