pub struct AdjointRollout<'a> {
pub model: &'a Model,
pub contact: Option<ContactSetup<'a>>,
pub q0: Vec<f64>,
pub v0: Vec<f64>,
pub steps: usize,
pub ctrl: &'a dyn Fn(usize) -> DVec,
}Expand description
A differentiable rollout: model, optional contact, initial state, and an open-loop control schedule.
Fields§
§model: &'a ModelTopology, gravity, timestep, joint damping, and nominal body inertias (the π the gradient is taken at).
contact: Option<ContactSetup<'a>>Optional ground contact.
q0: Vec<f64>Initial joint positions, in super::step::DofLayout packing (length
DofLayout::of(model).nq, which exceeds Model::nq when the model has
spherical or free joints).
v0: Vec<f64>Initial joint velocities (length nv).
steps: usizeNumber of semi-implicit Euler steps.
ctrl: &'a dyn Fn(usize) -> DVecOpen-loop control at step t (length nv; must not read the state).
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for AdjointRollout<'a>
impl<'a> !Send for AdjointRollout<'a>
impl<'a> !Sync for AdjointRollout<'a>
impl<'a> !UnwindSafe for AdjointRollout<'a>
impl<'a> Freeze for AdjointRollout<'a>
impl<'a> Unpin for AdjointRollout<'a>
impl<'a> UnsafeUnpin for AdjointRollout<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more