  We propose an efficient way of solving optimal control problems for
rigid-body systems on the basis of inverse dynamics and the multiple-shooting
method. We treat all variables, including the state, acceleration, and control
input torques, as optimization variables and treat the inverse dynamics as an
equality constraint. We eliminate the update of the control input torques from
the linear equation of Newton's method by applying condensing for inverse
dynamics. The size of the resultant linear equation is the same as that of the
multiple-shooting method based on forward dynamics except for the variables
related to the passive joints and contacts. Compared with the conventional
methods based on forward dynamics, the proposed method reduces the
computational cost of the dynamics and their sensitivities by utilizing the
recursive Newton-Euler algorithm (RNEA) and its partial derivatives. In
addition, it increases the sparsity of the Hessian of the Karush-Kuhn-Tucker
conditions, which reduces the computational cost, e.g., of Riccati recursion.
Numerical experiments show that the proposed method outperforms
state-of-the-art implementations of differential dynamic programming based on
forward dynamics in terms of computational time and numerical robustness.
