【pinocchio动力学库01】pinocchio动力学库中的运动学相关函数
【pinocchio动力学库02】pinocchio动力学库中的运动学导数相关函数
【pinocchio动力学库03】pinocchio动力学库中的迭代牛顿-欧拉算法RNEA相关函数
pinocchio动力学库中的迭代牛顿-欧拉算法RNEA相关函数
序号 | 函数名称 | 输入变量 | 输出变量 | 含义 |
---|---|---|---|---|
1 | rnea | model:刚体系统的模型结构;data:刚体系统的数据结构;q:关节位置;v:关节速度;a:关节加速度 | 所需的关节力矩,存储在data.tau中 | 递归牛顿欧拉算法;它根据系统当前状态和所需的关节加速度计算逆动力学,即关节力矩 |
2 | rnea | model:刚体系统的模型结构;data:刚体系统的数据结构;q:关节位置;v:关节速度;a:关节加速度;fext:在关节局部坐标系中表示的外力向量(维度为model.njoints) | 所需的关节力矩,存储在data.tau中 | 递归牛顿欧拉算法;它根据系统当前状态、所需的关节加速度和外力计算逆动力学,即关节力矩 |
3 | nonLinearEffects | model:刚体系统的模型结构;data:刚体系统的数据结构;q:关节位置;v:关节速度 | 偏差项,存储在 data.nle 中 | 计算非线性效应(科里奥利效应、离心效应和引力效应),也称为拉格朗日动力学的偏差项;此函数相当于 pinocchio::rnea(model, data, q, v, 0) |
4 | compute GeneralizedGravity | model:刚体系统的模型结构;data:刚体系统的数据结构;q:关节位置 | 广义重力,存储在data.g 中 | 计算拉格朗日动力学中的广义重力g(q) |
5 | computeStaticTorque | model:刚体系统的模型结构;data:刚体系统的数据结构;q:关节位置;fext:在关节局部坐标系中表示的外力向量(维度为model.njoints) | 广义静态力矩,存储在data.tau中 | 计算拉格朗日动力学中的广义静态力矩 |
6 | computeCoriolisMatrix | model:刚体系统的模型结构;data:刚体系统的数据结构;q:关节位置;v:关节速度 | 科里奥利矩阵,存储在data.C中 | 计算科里奥利矩阵 |
7 | getCoriolisMatrix | model:刚体系统的模型结构;data:刚体系统的数据结构 | 科里奥利矩阵,存储在data.C中 | 检索拉格朗日动力学的科里奥利矩阵 |
拉格朗日动力学方程:
M
q
¨
+
c
(
q
,
q
˙
)
+
g
(
q
)
=
τ
+
∑
J
(
q
)
⊤
f
ext
M \ddot{q} + c(q, \dot{q}) + g(q) = \tau + \sum J(q)^{\top} f_{\text{ext}}
Mq¨+c(q,q˙)+g(q)=τ+∑J(q)⊤fext
拉格朗日动力学中的广义静态力矩:
g
(
q
)
−
∑
J
(
q
)
⊤
f
ext
g(q) - \sum J(q)^{\top} f_{\text{ext}}
g(q)−∑J(q)⊤fext