pub struct CartesianJoint<N>{ /* private fields */ }Expand description
A joint that allows only all the translational degrees of freedom between two multibody links.
Implementations§
Source§impl<N> CartesianJoint<N>
impl<N> CartesianJoint<N>
Sourcepub fn new(
position: Matrix<N, Const<nalgebra::::base::dimension::U2::{constant#0}>, Const<1>, ArrayStorage<N, 2, 1>>,
) -> CartesianJoint<N>
pub fn new( position: Matrix<N, Const<nalgebra::::base::dimension::U2::{constant#0}>, Const<1>, ArrayStorage<N, 2, 1>>, ) -> CartesianJoint<N>
Create a cartesian joint with an initial position given by position.
Trait Implementations§
Source§impl<N> Clone for CartesianJoint<N>
impl<N> Clone for CartesianJoint<N>
Source§fn clone(&self) -> CartesianJoint<N>
fn clone(&self) -> CartesianJoint<N>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<N> Debug for CartesianJoint<N>
impl<N> Debug for CartesianJoint<N>
Source§impl<N> Joint<N> for CartesianJoint<N>
impl<N> Joint<N> for CartesianJoint<N>
Source§fn body_to_parent(
&self,
parent_shift: &Matrix<N, Const<nalgebra::::base::dimension::U2::{constant#0}>, Const<1>, ArrayStorage<N, 2, 1>>,
body_shift: &Matrix<N, Const<nalgebra::::base::dimension::U2::{constant#0}>, Const<1>, ArrayStorage<N, 2, 1>>,
) -> Isometry<N, Unit<Complex<N>>, 2>
fn body_to_parent( &self, parent_shift: &Matrix<N, Const<nalgebra::::base::dimension::U2::{constant#0}>, Const<1>, ArrayStorage<N, 2, 1>>, body_shift: &Matrix<N, Const<nalgebra::::base::dimension::U2::{constant#0}>, Const<1>, ArrayStorage<N, 2, 1>>, ) -> Isometry<N, Unit<Complex<N>>, 2>
The position of the multibody link containing this joint relative to its parent.
Source§fn update_jacobians(
&mut self,
_: &Matrix<N, Const<nalgebra::::base::dimension::U2::{constant#0}>, Const<1>, ArrayStorage<N, 2, 1>>,
_: &[N],
)
fn update_jacobians( &mut self, _: &Matrix<N, Const<nalgebra::::base::dimension::U2::{constant#0}>, Const<1>, ArrayStorage<N, 2, 1>>, _: &[N], )
Update the jacobians of this joint.
Source§fn jacobian(
&self,
_: &Isometry<N, Unit<Complex<N>>, 2>,
out: &mut Matrix<N, Const<nalgebra::::base::dimension::U3::{constant#0}>, Dynamic, SliceStorageMut<'_, N, Const<nalgebra::::base::dimension::U3::{constant#0}>, Dynamic, Const<1>, Const<nalgebra::::base::dimension::U3::{constant#0}>>>,
)
fn jacobian( &self, _: &Isometry<N, Unit<Complex<N>>, 2>, out: &mut Matrix<N, Const<nalgebra::::base::dimension::U3::{constant#0}>, Dynamic, SliceStorageMut<'_, N, Const<nalgebra::::base::dimension::U3::{constant#0}>, Dynamic, Const<1>, Const<nalgebra::::base::dimension::U3::{constant#0}>>>, )
Sets in
out the non-zero entries of the joint jacobian transformed by transform.Source§fn jacobian_dot(
&self,
_: &Isometry<N, Unit<Complex<N>>, 2>,
_: &mut Matrix<N, Const<nalgebra::::base::dimension::U3::{constant#0}>, Dynamic, SliceStorageMut<'_, N, Const<nalgebra::::base::dimension::U3::{constant#0}>, Dynamic, Const<1>, Const<nalgebra::::base::dimension::U3::{constant#0}>>>,
)
fn jacobian_dot( &self, _: &Isometry<N, Unit<Complex<N>>, 2>, _: &mut Matrix<N, Const<nalgebra::::base::dimension::U3::{constant#0}>, Dynamic, SliceStorageMut<'_, N, Const<nalgebra::::base::dimension::U3::{constant#0}>, Dynamic, Const<1>, Const<nalgebra::::base::dimension::U3::{constant#0}>>>, )
Sets in
out the non-zero entries of the time-derivative of the joint jacobian transformed by transform.Source§fn jacobian_dot_veldiff_mul_coordinates(
&self,
_: &Isometry<N, Unit<Complex<N>>, 2>,
_: &[N],
_: &mut Matrix<N, Const<nalgebra::::base::dimension::U3::{constant#0}>, Dynamic, SliceStorageMut<'_, N, Const<nalgebra::::base::dimension::U3::{constant#0}>, Dynamic, Const<1>, Const<nalgebra::::base::dimension::U3::{constant#0}>>>,
)
fn jacobian_dot_veldiff_mul_coordinates( &self, _: &Isometry<N, Unit<Complex<N>>, 2>, _: &[N], _: &mut Matrix<N, Const<nalgebra::::base::dimension::U3::{constant#0}>, Dynamic, SliceStorageMut<'_, N, Const<nalgebra::::base::dimension::U3::{constant#0}>, Dynamic, Const<1>, Const<nalgebra::::base::dimension::U3::{constant#0}>>>, )
Sets in
out the non-zero entries of the velocity-derivative of the time-derivative of the joint jacobian transformed by transform.Source§fn jacobian_mul_coordinates(&self, vels: &[N]) -> Velocity2<N>
fn jacobian_mul_coordinates(&self, vels: &[N]) -> Velocity2<N>
Multiply the joint jacobian by generalized velocities to obtain the
relative velocity of the multibody link containing this joint.
Source§fn jacobian_dot_mul_coordinates(&self, _: &[N]) -> Velocity2<N>
fn jacobian_dot_mul_coordinates(&self, _: &[N]) -> Velocity2<N>
Multiply the joint jacobian by generalized accelerations to obtain the
relative acceleration of the multibody link containing this joint.
Source§fn default_damping(
&self,
_: &mut Matrix<N, Dynamic, Const<1>, SliceStorageMut<'_, N, Dynamic, Const<1>, Const<1>, Dynamic>>,
)
fn default_damping( &self, _: &mut Matrix<N, Dynamic, Const<1>, SliceStorageMut<'_, N, Dynamic, Const<1>, Const<1>, Dynamic>>, )
Fill
out with the non-zero entries of a damping that can be applied by default to ensure a good stability of the joint.Source§fn integrate(&mut self, parameters: &IntegrationParameters<N>, vels: &[N])
fn integrate(&mut self, parameters: &IntegrationParameters<N>, vels: &[N])
Integrate the position of this joint.
Source§fn apply_displacement(&mut self, disp: &[N])
fn apply_displacement(&mut self, disp: &[N])
Apply a displacement to the joint.
fn clone(&self) -> Box<dyn Joint<N>>
Source§fn nimpulses(&self) -> usize
fn nimpulses(&self) -> usize
The maximum number of impulses needed by this joints for
its constraints.
Source§fn num_velocity_constraints(&self) -> usize
fn num_velocity_constraints(&self) -> usize
Maximum number of velocity constrains that can be generated by this joint.
Source§fn velocity_constraints(
&self,
_params: &IntegrationParameters<N>,
_multibody: &Multibody<N>,
_link: &MultibodyLink<N>,
_assembly_id: usize,
_dof_id: usize,
_ext_vels: &[N],
_ground_j_id: &mut usize,
_jacobians: &mut [N],
_velocity_constraints: &mut ConstraintSet<N, (), (), usize>,
)
fn velocity_constraints( &self, _params: &IntegrationParameters<N>, _multibody: &Multibody<N>, _link: &MultibodyLink<N>, _assembly_id: usize, _dof_id: usize, _ext_vels: &[N], _ground_j_id: &mut usize, _jacobians: &mut [N], _velocity_constraints: &mut ConstraintSet<N, (), (), usize>, )
Initialize and generate velocity constraints to enforce, e.g., joint limits and motors.
Source§fn num_position_constraints(&self) -> usize
fn num_position_constraints(&self) -> usize
The maximum number of non-linear position constraints that can be generated by this joint.
Source§fn position_constraint(
&self,
_i: usize,
_multibody: &Multibody<N>,
_link: &MultibodyLink<N>,
_handle: BodyPartHandle<()>,
_dof_id: usize,
_jacobians: &mut [N],
) -> Option<GenericNonlinearConstraint<N, ()>>
fn position_constraint( &self, _i: usize, _multibody: &Multibody<N>, _link: &MultibodyLink<N>, _handle: BodyPartHandle<()>, _dof_id: usize, _jacobians: &mut [N], ) -> Option<GenericNonlinearConstraint<N, ()>>
Initialize and generate the i-th position constraints to enforce, e.g., joint limits.
impl<N> Copy for CartesianJoint<N>
Auto Trait Implementations§
impl<N> Freeze for CartesianJoint<N>where
N: Freeze,
impl<N> RefUnwindSafe for CartesianJoint<N>where
N: RefUnwindSafe,
impl<N> Send for CartesianJoint<N>
impl<N> Sync for CartesianJoint<N>
impl<N> Unpin for CartesianJoint<N>where
N: Unpin,
impl<N> UnsafeUnpin for CartesianJoint<N>where
N: UnsafeUnpin,
impl<N> UnwindSafe for CartesianJoint<N>where
N: UnwindSafe,
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
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>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<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>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> 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)
Convert
&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)
Convert
&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> DowncastSync for T
impl<T> DowncastSync for T
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>
Converts
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>
Converts
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 moreSource§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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.