pub struct MultibodyDofCoupling {
pub link1: usize,
pub dof1: usize,
pub axis1: usize,
pub link2: usize,
pub dof2: usize,
pub axis2: usize,
pub coeff: f32,
pub offset: f32,
}Expand description
A holonomic coupling between two generalized coordinates of a single
Multibody, q2 = coeff · q1 + offset, enforced as a velocity-level
equality constraint. This is how MuJoCo’s <equality><joint> (a polynomial
joint-to-joint coupling) is represented for the linear (first-order) case —
e.g. the robotiq gripper’s two driver joints moving together.
Fields§
§link1: usizeInternal id of the link carrying the first joint.
dof1: usizeLocal free-DoF index of the coupled DoF within link1 (its position in
that link’s slice of the generalized vectors).
axis1: usizeSpatial-coordinate axis (0..6) of link1’s coupled DoF, used to read
its generalized position from the joint coords.
link2: usizeInternal id of the link carrying the second joint.
dof2: usizeLocal free-DoF index of the coupled DoF within link2.
axis2: usizeSpatial-coordinate axis (0..6) of link2’s coupled DoF.
coeff: f32Linear coupling coefficient: the constraint is q2 − coeff·q1 − offset = 0.
offset: f32Constant offset of the coupling.
Trait Implementations§
Source§impl Clone for MultibodyDofCoupling
impl Clone for MultibodyDofCoupling
Source§fn clone(&self) -> MultibodyDofCoupling
fn clone(&self) -> MultibodyDofCoupling
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for MultibodyDofCoupling
Auto Trait Implementations§
impl Freeze for MultibodyDofCoupling
impl RefUnwindSafe for MultibodyDofCoupling
impl Send for MultibodyDofCoupling
impl Sync for MultibodyDofCoupling
impl Unpin for MultibodyDofCoupling
impl UnsafeUnpin for MultibodyDofCoupling
impl UnwindSafe for MultibodyDofCoupling
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> MaybeSync for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.