Struct nphysics3d::joint::HelicalJoint [−][src]
pub struct HelicalJoint<N: Real> { /* fields omitted */ }
A joint that allows one degree of freedom between two multibody links.
The degree of freedom is the combination of a rotation and a translation along the same axis. Both rotational and translational motions are coupled to generate a screw motion.
Methods
impl<N: Real> HelicalJoint<N>
[src]
impl<N: Real> HelicalJoint<N>
pub fn new(axis: Unit<Vector3<N>>, pitch: N, angle: N) -> Self
[src]
pub fn new(axis: Unit<Vector3<N>>, pitch: N, angle: N) -> Self
Create an helical joint with the given axis and initial angle.
The pitch
controls how much translation is generated for how much rotation.
In particular, the translational displacement along axis
is given by angle * pitch
.
pub fn offset(&self) -> N
[src]
pub fn offset(&self) -> N
The translational displacement along the joint axis.
pub fn angle(&self) -> N
[src]
pub fn angle(&self) -> N
The rotational displacement along the joint axis.
impl<N: Real> HelicalJoint<N>
[src]
impl<N: Real> HelicalJoint<N>
pub fn min_angle(&self) -> Option<N>
[src]
pub fn min_angle(&self) -> Option<N>
The lower limit of the rotation angle.
pub fn max_angle(&self) -> Option<N>
[src]
pub fn max_angle(&self) -> Option<N>
The upper limit of the rotation angle.
pub fn disable_min_angle(&mut self)
[src]
pub fn disable_min_angle(&mut self)
Disable the lower limit of the rotation angle.
pub fn disable_max_angle(&mut self)
[src]
pub fn disable_max_angle(&mut self)
Disable the upper limit of the rotation angle.
pub fn enable_min_angle(&mut self, limit: N)
[src]
pub fn enable_min_angle(&mut self, limit: N)
Enable and set the lower limit of the rotation angle.
pub fn enable_max_angle(&mut self, limit: N)
[src]
pub fn enable_max_angle(&mut self, limit: N)
Enable and set the upper limit of the rotation angle.
pub fn is_angular_motor_enabled(&self) -> bool
[src]
pub fn is_angular_motor_enabled(&self) -> bool
Return true
if the angular motor of this joint is enabled.
pub fn enable_angular_motor(&mut self)
[src]
pub fn enable_angular_motor(&mut self)
Enable the angular motor of this joint.
pub fn disable_angular_motor(&mut self)
[src]
pub fn disable_angular_motor(&mut self)
Disable the angular motor of this joint.
pub fn desired_angular_motor_velocity(&self) -> N
[src]
pub fn desired_angular_motor_velocity(&self) -> N
The desired angular velocity of the joint motor.
pub fn set_desired_angular_motor_velocity(&mut self, vel: N)
[src]
pub fn set_desired_angular_motor_velocity(&mut self, vel: N)
Set the desired angular velocity of the joint motor.
pub fn max_angular_motor_torque(&self) -> N
[src]
pub fn max_angular_motor_torque(&self) -> N
The maximum torque that can be delivered by the joint motor.
pub fn set_max_angular_motor_torque(&mut self, torque: N)
[src]
pub fn set_max_angular_motor_torque(&mut self, torque: N)
Set the maximum torque that can be delivered by the joint motor.
Trait Implementations
impl<N: Copy + Real> Copy for HelicalJoint<N>
[src]
impl<N: Copy + Real> Copy for HelicalJoint<N>
impl<N: Clone + Real> Clone for HelicalJoint<N>
[src]
impl<N: Clone + Real> Clone for HelicalJoint<N>
fn clone(&self) -> HelicalJoint<N>
[src]
fn clone(&self) -> HelicalJoint<N>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl<N: Debug + Real> Debug for HelicalJoint<N>
[src]
impl<N: Debug + Real> Debug for HelicalJoint<N>
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl<N: Real> Joint<N> for HelicalJoint<N>
[src]
impl<N: Real> Joint<N> for HelicalJoint<N>
fn ndofs(&self) -> usize
[src]
fn ndofs(&self) -> usize
The number of degrees of freedom allowed by the joint.
fn body_to_parent(
&self,
parent_shift: &Vector3<N>,
body_shift: &Vector3<N>
) -> Isometry3<N>
[src]
fn body_to_parent(
&self,
parent_shift: &Vector3<N>,
body_shift: &Vector3<N>
) -> Isometry3<N>
The position of the multibody link containing this joint relative to its parent.
fn update_jacobians(&mut self, body_shift: &Vector3<N>, vels: &[N])
[src]
fn update_jacobians(&mut self, body_shift: &Vector3<N>, vels: &[N])
Update the jacobians of this joint.
fn jacobian(&self, transform: &Isometry3<N>, out: &mut JacobianSliceMut<N>)
[src]
fn jacobian(&self, transform: &Isometry3<N>, out: &mut JacobianSliceMut<N>)
Sets in out
the non-zero entries of the joint jacobian transformed by transform
.
fn jacobian_dot(&self, transform: &Isometry3<N>, out: &mut JacobianSliceMut<N>)
[src]
fn jacobian_dot(&self, transform: &Isometry3<N>, out: &mut JacobianSliceMut<N>)
Sets in out
the non-zero entries of the time-derivative of the joint jacobian transformed by transform
.
fn jacobian_dot_veldiff_mul_coordinates(
&self,
transform: &Isometry3<N>,
acc: &[N],
out: &mut JacobianSliceMut<N>
)
[src]
fn jacobian_dot_veldiff_mul_coordinates(
&self,
transform: &Isometry3<N>,
acc: &[N],
out: &mut JacobianSliceMut<N>
)
Sets in out
the non-zero entries of the velocity-derivative of the time-derivative of the joint jacobian transformed by transform
.
fn jacobian_mul_coordinates(&self, vels: &[N]) -> Velocity<N>
[src]
fn jacobian_mul_coordinates(&self, vels: &[N]) -> Velocity<N>
Multiply the joint jacobian by generalized velocities to obtain the relative velocity of the multibody link containing this joint. Read more
fn jacobian_dot_mul_coordinates(&self, vels: &[N]) -> Velocity<N>
[src]
fn jacobian_dot_mul_coordinates(&self, vels: &[N]) -> Velocity<N>
Multiply the joint jacobian by generalized accelerations to obtain the relative acceleration of the multibody link containing this joint. Read more
fn default_damping(&self, out: &mut DVectorSliceMut<N>)
[src]
fn default_damping(&self, out: &mut DVectorSliceMut<N>)
Fill out
with the non-zero entries of a damping that can be applied by default to ensure a good stability of the joint.
fn integrate(&mut self, params: &IntegrationParameters<N>, vels: &[N])
[src]
fn integrate(&mut self, params: &IntegrationParameters<N>, vels: &[N])
Integrate the position of this joint.
fn apply_displacement(&mut self, disp: &[N])
[src]
fn apply_displacement(&mut self, disp: &[N])
Apply a displacement to the joint.
fn num_velocity_constraints(&self) -> usize
[src]
fn num_velocity_constraints(&self) -> usize
Maximum number of velocity constrains that can be generated by this joint.
fn velocity_constraints(
&self,
params: &IntegrationParameters<N>,
link: &MultibodyLinkRef<N>,
assembly_id: usize,
dof_id: usize,
ext_vels: &[N],
ground_j_id: &mut usize,
jacobians: &mut [N],
constraints: &mut ConstraintSet<N>
)
[src]
fn velocity_constraints(
&self,
params: &IntegrationParameters<N>,
link: &MultibodyLinkRef<N>,
assembly_id: usize,
dof_id: usize,
ext_vels: &[N],
ground_j_id: &mut usize,
jacobians: &mut [N],
constraints: &mut ConstraintSet<N>
)
Initialize and generate velocity constraints to enforce, e.g., joint limits and motors.
fn num_position_constraints(&self) -> usize
[src]
fn num_position_constraints(&self) -> usize
The maximum number of non-linear position constraints that can be generated by this joint.
fn position_constraint(
&self,
_: usize,
link: &MultibodyLinkRef<N>,
dof_id: usize,
jacobians: &mut [N]
) -> Option<GenericNonlinearConstraint<N>>
[src]
fn position_constraint(
&self,
_: usize,
link: &MultibodyLinkRef<N>,
dof_id: usize,
jacobians: &mut [N]
) -> Option<GenericNonlinearConstraint<N>>
Initialize and generate the i-th position constraints to enforce, e.g., joint limits.
fn nimpulses(&self) -> usize
[src]
fn nimpulses(&self) -> usize
The maximum number of impulses needed by this joints for its constraints. Read more
impl<N: Real> UnitJoint<N> for HelicalJoint<N>
[src]
impl<N: Real> UnitJoint<N> for HelicalJoint<N>
fn position(&self) -> N
[src]
fn position(&self) -> N
The generalized coordinate of the unit joint.
fn motor(&self) -> &JointMotor<N, N>
[src]
fn motor(&self) -> &JointMotor<N, N>
The motor applied to the degree of freedom of the unit joitn.
fn min_position(&self) -> Option<N>
[src]
fn min_position(&self) -> Option<N>
The lower limit, if any, set to the generalized coordinate of this unit joint.
fn max_position(&self) -> Option<N>
[src]
fn max_position(&self) -> Option<N>
The upper limit, if any, set to the generalized coordinate of this unit joint.
Auto Trait Implementations
impl<N> Send for HelicalJoint<N> where
N: Scalar,
impl<N> Send for HelicalJoint<N> where
N: Scalar,
impl<N> Sync for HelicalJoint<N> where
N: Scalar,
impl<N> Sync for HelicalJoint<N> where
N: Scalar,