An essential need for many model-based robot control algorithms is the ability to quickly and accurately compute partial derivatives of the equations of motion. State of the art approaches to this problem often use analytical methods based on the chain rule applied to existing dynamics algorithms. Although these methods are an improvement over finite differences in terms of accuracy, they are not always the most efficient. In this paper, we contribute new closed-form expressions for the first-order partial derivatives of inverse dynamics, leading to a recursive algorithm. The algorithm is benchmarked against chain-rule approaches in Fortran and against an existing algorithm from the Pinocchio library in C++. Tests consider computing the partial derivatives of inverse and forward dynamics for robots ranging from kinematic chains to humanoids and quadrupeds. Compared to the previous open-source Pinocchio implementation, our new analytical results uncover a key computational restructuring that enables efficiency gains. Speedups of up to 1.4x are reported for calculating the partial derivatives of inverse dynamics for the 50-dof Talos humanoid.
翻译:许多基于模型的机器人控制算法的基本需要是能够快速和准确地计算运动方程式的部分衍生物。 最先进的方法经常使用基于现有动态算法所适用的链规则的分析方法。 虽然这些方法在准确性方面的有限差异方面有所改进, 但并非总的最有效。 在本文中, 我们为反动态第一阶部分衍生物提供了新的封闭式表达法, 导致循环算法。 该算法以福特兰的链规则方法以及C++的皮诺奇奥图书馆的现有算法为基准。 测试考虑计算从运动链到人类类和四分解的机器人的反向和前向动态部分衍生物。 与先前的开放源Pinocchio实施方法相比, 我们的新分析结果揭示了一个关键的计算重组, 从而实现效率增益。 据报告, 加速到 1. 4x, 用于计算50 德塔洛斯类人类类的反向动态部分衍生物。