Public Types | Public Member Functions | Protected Attributes

OpenTissue::mbd::SliderJoint< mbd_types > Class Template Reference

#include <mbd_slider_joint.h>

Inheritance diagram for OpenTissue::mbd::SliderJoint< mbd_types >:
OpenTissue::mbd::JointInterface< mbd_types >

List of all members.

Public Types

typedef mbd_types::math_policy math_policy
typedef
mbd_types::math_policy::index_type 
size_type
typedef
mbd_types::math_policy::real_type 
real_type
typedef
mbd_types::math_policy::vector3_type 
vector3_type
typedef
mbd_types::math_policy::matrix3x3_type 
matrix3x3_type
typedef
mbd_types::math_policy::quaternion_type 
quaternion_type
typedef
mbd_types::math_policy::vector_range 
vector_range
typedef
mbd_types::math_policy::idx_vector_range 
idx_vector_range
typedef
mbd_types::math_policy::matrix_range 
matrix_range
typedef
mbd_types::math_policy::vector_type 
vector_type
typedef
mbd_types::math_policy::value_traits 
value_traits
typedef LinearJointMotor
< mbd_types > 
linear_motor_type
typedef LinearJointLimit
< mbd_types > 
linear_limit_type

Public Member Functions

real_type get_offset () const
real_type get_offset_rate () const
vector3_type get_slider_axis_world () const
void set_limit (linear_limit_type const &limit)
void set_motor (linear_motor_type const &motor)
 SliderJoint ()
virtual ~SliderJoint ()
void evaluate ()
size_type get_number_of_jacobian_rows () const
void get_linear_jacobian_A (matrix_range &J) const
void get_linear_jacobian_B (matrix_range &J) const
void get_angular_jacobian_A (matrix_range &J) const
void get_angular_jacobian_B (matrix_range &J) const
void get_stabilization_term (vector_range &b_error) const
void get_low_limits (vector_range &lo) const
void get_high_limits (vector_range &hi) const
void get_dependency_indices (idx_vector_range &dep) const
void get_dependency_factors (vector_range &factors) const
void set_regularization (vector_range const &gamma)
void get_regularization (vector_range &gamma) const
void set_solution (vector_range const &solution)
void get_solution (vector_range &solution) const
void calibration ()

Protected Attributes

vector3_type m_r_off_B
 Initial (i.e. at calibration of joint) center difference of the two bodies (I.e. c = r_cm^B - r_cm^A) given in the body frame of body B.
vector3_type m_r_off_wcs
 Initial (i.e. at calibration of joint) center difference of the two bodies (I.e. c = r_cm^B - r_cm^A) given in WCS.
vector3_type m_c
 Center difference of the two bodies (I.e. c = r_cm^B - r_cm^A).
vector3_type m_half_cXt1
 Center difference of the two bodies (I.e. c = r_cm^B - r_cm^A) crossed with t1 and multiplied by 0.5.
vector3_type m_half_cXt2
 Center difference of the two bodies (I.e. c = r_cm^B - r_cm^A) crossed with t2 and multiplied by 0.5.
vector3_type m_t1
 A vector orthogonal to the joint axe (in WCS).
vector3_type m_t2
 Another vector orthogonal to the joint axe and t1 (in WCS).
vector3_type m_u
 Error correction rotation axe. Ie. if joint is misaligned this vector is used to determine an rotation axe which can be used to align the joint along.
real_type m_theta_error
 Misalignment error around the u-axe.
quaternion_type m_Q_initial
 The initial relative orientation between the two bodies (wrt. WCS) i.e. the rotation that aligns body A with body B.
quaternion_type m_Q_initial_conj
 The conjugate of Q_initial.
quaternion_type m_Q_error
 A quaterion used to compute the rotaional misalignment in the slider joint.
linear_limit_typem_limit
linear_motor_typem_motor
size_type m_rows
 Number of jacobian rows.
size_type m_motor_offset
size_type m_limit_offset
vector_type m_gamma
 Local vector of constraint force mixing terms.
vector_type m_solution
 Local solution vector, ie. vector of lagrange multipliers.

template<typename mbd_types>
class OpenTissue::mbd::SliderJoint< mbd_types >


Member Typedef Documentation

template<typename mbd_types >
typedef mbd_types::math_policy::idx_vector_range OpenTissue::mbd::SliderJoint< mbd_types >::idx_vector_range
template<typename mbd_types >
typedef LinearJointLimit<mbd_types> OpenTissue::mbd::SliderJoint< mbd_types >::linear_limit_type
template<typename mbd_types >
typedef LinearJointMotor<mbd_types> OpenTissue::mbd::SliderJoint< mbd_types >::linear_motor_type
template<typename mbd_types >
typedef mbd_types::math_policy OpenTissue::mbd::SliderJoint< mbd_types >::math_policy
template<typename mbd_types >
typedef mbd_types::math_policy::matrix3x3_type OpenTissue::mbd::SliderJoint< mbd_types >::matrix3x3_type
template<typename mbd_types >
typedef mbd_types::math_policy::matrix_range OpenTissue::mbd::SliderJoint< mbd_types >::matrix_range
template<typename mbd_types >
typedef mbd_types::math_policy::quaternion_type OpenTissue::mbd::SliderJoint< mbd_types >::quaternion_type
template<typename mbd_types >
typedef mbd_types::math_policy::real_type OpenTissue::mbd::SliderJoint< mbd_types >::real_type
template<typename mbd_types >
typedef mbd_types::math_policy::index_type OpenTissue::mbd::SliderJoint< mbd_types >::size_type
template<typename mbd_types >
typedef mbd_types::math_policy::value_traits OpenTissue::mbd::SliderJoint< mbd_types >::value_traits
template<typename mbd_types >
typedef mbd_types::math_policy::vector3_type OpenTissue::mbd::SliderJoint< mbd_types >::vector3_type
template<typename mbd_types >
typedef mbd_types::math_policy::vector_range OpenTissue::mbd::SliderJoint< mbd_types >::vector_range
template<typename mbd_types >
typedef mbd_types::math_policy::vector_type OpenTissue::mbd::SliderJoint< mbd_types >::vector_type

Constructor & Destructor Documentation

template<typename mbd_types >
OpenTissue::mbd::SliderJoint< mbd_types >::SliderJoint (  )  [inline]
template<typename mbd_types >
virtual OpenTissue::mbd::SliderJoint< mbd_types >::~SliderJoint (  )  [inline, virtual]

Member Function Documentation

template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::calibration (  )  [inline, virtual]

joint_type Calibration Routine. This method is invoked implicitly whenever the joint connectivity is changed (alteration of anchor points or joint axes).

It can also be invoked directly by and end user if the incident body position and/or rotations is changed.

Implements OpenTissue::mbd::JointInterface< mbd_types >.

template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::evaluate (  )  [inline]
template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::get_angular_jacobian_A ( matrix_range J  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::get_angular_jacobian_B ( matrix_range J  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::get_dependency_factors ( vector_range factors  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::get_dependency_indices ( idx_vector_range dep  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::get_high_limits ( vector_range hi  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::get_linear_jacobian_A ( matrix_range J  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::get_linear_jacobian_B ( matrix_range J  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::get_low_limits ( vector_range lo  )  const [inline]
template<typename mbd_types >
size_type OpenTissue::mbd::SliderJoint< mbd_types >::get_number_of_jacobian_rows (  )  const [inline]
template<typename mbd_types >
real_type OpenTissue::mbd::SliderJoint< mbd_types >::get_offset (  )  const [inline]

Get Slider Offset.

Returns:
template<typename mbd_types >
real_type OpenTissue::mbd::SliderJoint< mbd_types >::get_offset_rate (  )  const [inline]

Get Offset Rate. This method computes the (signed) speed, by which the joint position moves along the joint axe.

Returns:
The offset speed.
template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::get_regularization ( vector_range gamma  )  const [inline]
template<typename mbd_types >
vector3_type OpenTissue::mbd::SliderJoint< mbd_types >::get_slider_axis_world (  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::get_solution ( vector_range solution  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::get_stabilization_term ( vector_range b_error  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::set_limit ( linear_limit_type const &  limit  )  [inline]
template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::set_motor ( linear_motor_type const &  motor  )  [inline]
template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::set_regularization ( vector_range const &  gamma  )  [inline]
template<typename mbd_types >
void OpenTissue::mbd::SliderJoint< mbd_types >::set_solution ( vector_range const &  solution  )  [inline]

Member Data Documentation

template<typename mbd_types >
vector3_type OpenTissue::mbd::SliderJoint< mbd_types >::m_c [protected]

Center difference of the two bodies (I.e. c = r_cm^B - r_cm^A).

template<typename mbd_types >
vector_type OpenTissue::mbd::SliderJoint< mbd_types >::m_gamma [protected]

Local vector of constraint force mixing terms.

template<typename mbd_types >
vector3_type OpenTissue::mbd::SliderJoint< mbd_types >::m_half_cXt1 [protected]

Center difference of the two bodies (I.e. c = r_cm^B - r_cm^A) crossed with t1 and multiplied by 0.5.

template<typename mbd_types >
vector3_type OpenTissue::mbd::SliderJoint< mbd_types >::m_half_cXt2 [protected]

Center difference of the two bodies (I.e. c = r_cm^B - r_cm^A) crossed with t2 and multiplied by 0.5.

template<typename mbd_types >
linear_limit_type* OpenTissue::mbd::SliderJoint< mbd_types >::m_limit [protected]
template<typename mbd_types >
size_type OpenTissue::mbd::SliderJoint< mbd_types >::m_limit_offset [protected]
template<typename mbd_types >
linear_motor_type* OpenTissue::mbd::SliderJoint< mbd_types >::m_motor [protected]
template<typename mbd_types >
size_type OpenTissue::mbd::SliderJoint< mbd_types >::m_motor_offset [protected]
template<typename mbd_types >
quaternion_type OpenTissue::mbd::SliderJoint< mbd_types >::m_Q_error [protected]

A quaterion used to compute the rotaional misalignment in the slider joint.

template<typename mbd_types >
quaternion_type OpenTissue::mbd::SliderJoint< mbd_types >::m_Q_initial [protected]

The initial relative orientation between the two bodies (wrt. WCS) i.e. the rotation that aligns body A with body B.

template<typename mbd_types >
quaternion_type OpenTissue::mbd::SliderJoint< mbd_types >::m_Q_initial_conj [protected]

The conjugate of Q_initial.

template<typename mbd_types >
vector3_type OpenTissue::mbd::SliderJoint< mbd_types >::m_r_off_B [protected]

Initial (i.e. at calibration of joint) center difference of the two bodies (I.e. c = r_cm^B - r_cm^A) given in the body frame of body B.

template<typename mbd_types >
vector3_type OpenTissue::mbd::SliderJoint< mbd_types >::m_r_off_wcs [protected]

Initial (i.e. at calibration of joint) center difference of the two bodies (I.e. c = r_cm^B - r_cm^A) given in WCS.

template<typename mbd_types >
size_type OpenTissue::mbd::SliderJoint< mbd_types >::m_rows [protected]

Number of jacobian rows.

template<typename mbd_types >
vector_type OpenTissue::mbd::SliderJoint< mbd_types >::m_solution [protected]

Local solution vector, ie. vector of lagrange multipliers.

template<typename mbd_types >
vector3_type OpenTissue::mbd::SliderJoint< mbd_types >::m_t1 [protected]

A vector orthogonal to the joint axe (in WCS).

template<typename mbd_types >
vector3_type OpenTissue::mbd::SliderJoint< mbd_types >::m_t2 [protected]

Another vector orthogonal to the joint axe and t1 (in WCS).

template<typename mbd_types >
real_type OpenTissue::mbd::SliderJoint< mbd_types >::m_theta_error [protected]

Misalignment error around the u-axe.

template<typename mbd_types >
vector3_type OpenTissue::mbd::SliderJoint< mbd_types >::m_u [protected]

Error correction rotation axe. Ie. if joint is misaligned this vector is used to determine an rotation axe which can be used to align the joint along.


The documentation for this class was generated from the following file: