pub fn convex_adjoint_gradient(
rollout: &ConvexContactRollout<'_>,
objective: &FinalStateObjective<'_>,
) -> Result<ConvexAdjointGradients, ConvexAdjointError>Expand description
One nominal rollout forward, one adjoint pass backward: J, dJ/dq0,
dJ/dv0, dJ/du_t, and dJ/dπ per body — all through the convex contact
model the forward simulator integrates.
Errors instead of returning a wrong gradient; see ConvexAdjointError.