ICRA 20250 citations

Single-Stage Optimization of Open-Loop Stable Limit Cycles with Smooth, Symbolic Derivatives

Muhammad Saud Ul Hassan, Christian Hubicki

Abstract

Open-loop stable limit cycles are foundational to legged robotics, providing inherent self-stabilization that minimizes the need for computationally intensive feedback-based gait correction. While previous methods have primarily targeted specific robotic models, this paper introduces a general framework for rapidly generating limit cycles across various dynamical systems, with the flexibility to impose arbitrarily tight stability bounds. We formulate the problem as a single-stage constrained optimization problem and use Direct Collocation to transcribe it into a nonlinear program with closed-form expressions for constraints, objectives, and their gradients. Our method supports multiple stability formulations. In particular, we tested two popular formulations for limit cycle stability in robotics: (1) based on the spectral radius of a discrete return map, and (2) based on the spectral radius of the monodromy matrix, and tested five different constraintsatisfaction formulations of the eigenvalue problem to bound the spectral radius. We compare the performance and solution quality of the various formulations on a robotic swing-leg model, highlighting the Schur decomposition of the monodromy matrix as a method with broader applicability due to weaker assumptions and stronger numerical convergence properties. As a case study, we apply our method on a hopping robot model, generating open-loop stable gaits in under 2 seconds on an Intel<sup xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">®</sup>Core i7-6700K, while simultaneously minimizing energy consumption even under tight stability constraints.

BibTeX
@inproceedings{icra2025_singlestageoptim,
  title = {Single-Stage Optimization of Open-Loop Stable Limit Cycles with Smooth, Symbolic Derivatives},
  author = {Muhammad Saud Ul Hassan and Christian Hubicki},
  booktitle = {ICRA 2025},
  year = {2025}
}