We propose a novel approach for generalizing the following rigid-body dynamics algorithms: Recursive Newton-Euler Algorithm, Articulated-Body Algorithm, and Extended-Force-Propagator Algorithm. The classic versions of these recursive algorithms require systems to have an open chain structure. Dealing with closed-chains has, conventionally, required different algorithms. In this paper, we demonstrate that the classic recursive algorithms can be modified to work for closed-chain mechanisms. The critical insight of our generalized algorithms is the clustering of bodies involved in local loop constraints. Clustering bodies enables loop constraints to be resolved locally, i.e., only when that group of bodies is encountered during a forward or backward pass. This local treatment avoids the need for large-scale matrix factorization. We provide self-contained derivations of the algorithms using familiar, physically meaningful concepts. Overall, our approach provides a foundation for simulating robotic systems with traditionally difficult-to-simulate designs, such as geared motors, differential drives, and four-bar mechanisms. The performance of our library of algorithms is validated numerically in C++ on various modern legged robots: the MIT Mini Cheetah, the MIT Humanoid, the UIUC Tello Humanoid, and a modified version of the JVRC-1 Humanoid. Our algorithms are shown to outperform state-of-the-art algorithms for computing constrained rigid-body dynamics.
翻译:我们提出了一种新的方法,用于推广以下刚体动力学算法:递归牛顿-欧拉算法、铰接体算法和扩展力传播算法。这些递归算法的经典版本要求系统具有开链结构。传统上,处理闭链结构需要不同的算法。在本文中,我们证明经典递归算法可以修改以适用于闭链机构。我们广义算法的关键见解在于对涉及局部环路约束的刚体进行聚类。对刚体进行聚类使得环路约束能够在局部得到解决,即仅当在正向或反向遍历过程中遇到该刚体组时才进行求解。这种局部处理方式避免了对大规模矩阵分解的需求。我们使用熟悉且具有物理意义的概念,提供了这些算法的自包含推导过程。总体而言,我们的方法为模拟具有传统上难以模拟的设计(如齿轮电机、差速驱动器和四杆机构)的机器人系统奠定了基础。我们算法库的性能在C++中通过对多种现代腿式机器人(包括MIT Mini Cheetah、MIT Humanoid、UIUC Tello Humanoid以及JVRC-1 Humanoid的改进版本)进行数值验证得以证明。结果表明,我们的算法在计算受约束的刚体动力学方面优于现有最先进算法。