Optimization algorithms are increasingly important for the control of rigid-body systems. An essential requirement for these algorithms is the availability of accurate partial derivatives of the equations of motion with respect to the state and control variables. State of the art methods for calculating the derivatives use analytical differentiation methods based on the chain rule, and although these methods are an improvement over finite-difference in terms of accuracy, they are not always the most efficient. In this paper, we present an analytical method for calculating the first-order partial derivatives of rigid-body dynamics. The method uses Featherstone's spatial vector algebra and is presented in a recursive form similar to the Recursive-Newton Euler Algorithm (RNEA). Several dynamics identities and computational options are exploited for efficiency. The algorithms are bench-marked against competing approaches in Fortran and C++. Timing results are presented for kinematic trees with up to 500 links. As an example, the 100 link case leads to a 7x speedup over our Fortran implementation of the existing state-of-the-art method. Preliminary comparison of compute timings for the partial derivatives of inverse dynamics in C++ are also shown versus the existing Pinocchio framework. A speedup of 1.6x is reported for the 36-dof ATLAS humanoid using the new algorithm proposed in this paper.
翻译:优化算法对于控制僵硬机体系统越来越重要。 这些算法的基本要求是,在状态变量和控制变量方面提供运动方程式的准确部分衍生物。 计算衍生物的先进方法使用基于链规则的分析差异方法。 虽然这些方法在精确性方面比有限差异有改进,但并非始终是最有效的。 在本文中,我们提出了一个分析方法,用于计算硬体动态的第一阶部分衍生物。这种方法使用Featherstone的空间矢量代数,并以类似于Recursive-Newton Euler Algoorithm(RNEA)的循环形式显示。 几种动力特性和计算选项使用基于链规则的分析差异方法来计算效率。 算法与Fortran和C++之间竞争的方法相比有改进作用,但并不是最有效率的。 本文中,100个链接案导致我们Featran执行现有的空间矢量代数代数代数代数代数代数的加速度,并且以类似Recursive-Newsal 格式的形式展示了Alixx 模型。 初步比较了目前使用的36-Axx 的模型,在C- dalviquestal-xxxx 格式格式框架中也展示了Axxxxxxxxxx