Public Types | Public Member Functions | Protected Attributes

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

#include <mbd_universal_joint.h>

Inheritance diagram for OpenTissue::mbd::UniversalJoint< 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 AngularJointLimit
< mbd_types > 
angular_limit_type
typedef AngularJointMotor
< mbd_types > 
angular_motor_type

Public Member Functions

real_type get_angle1 () const
real_type get_angle1_rate () const
real_type get_angle2 () const
real_type get_angle2_rate () const
vector3_type get_joint_axis1_world () const
vector3_type get_joint_axis2_world () const
void set_limit1 (angular_limit_type const &limit)
void set_limit2 (angular_limit_type const &limit)
void set_motor1 (angular_motor_type const &motor)
void set_motor2 (angular_motor_type const &motor)
 UniversalJoint ()
virtual ~UniversalJoint ()
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_s_A_wcs
 The joint axe wrt. to body A in WCS.
vector3_type m_s_B_wcs
 The joint axe wrt. to body B 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.
matrix3x3_type m_star_anc_A
 The cross product operator of the anchor point wrt. to body A rotated (but not translated) into WCS.
matrix3x3_type m_star_anc_B
 The cross product operator of the anchor point wrt. to body B rotated (but not translated) into WCS.
vector3_type m_anc_A_wcs
 The anchor point wrt. to body A in WCS.
vector3_type m_anc_B_wcs
 The anchor point wrt. to body B in WCS.
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.
size_type m_rows
 Number of jacobian rows.
vector_type m_gamma
 Local vector of constraint force mixing terms.
vector_type m_solution
 Local solution vector, ie. vector of lagrange multipliers.
angular_limit_typem_limit1
angular_limit_typem_limit2
angular_motor_typem_motor1
angular_motor_typem_motor2
size_type m_motor_offset1
size_type m_motor_offset2
size_type m_limit_offset1
size_type m_limit_offset2

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


Member Typedef Documentation

template<typename mbd_types >
typedef AngularJointLimit<mbd_types> OpenTissue::mbd::UniversalJoint< mbd_types >::angular_limit_type
template<typename mbd_types >
typedef AngularJointMotor<mbd_types> OpenTissue::mbd::UniversalJoint< mbd_types >::angular_motor_type
template<typename mbd_types >
typedef mbd_types::math_policy::idx_vector_range OpenTissue::mbd::UniversalJoint< mbd_types >::idx_vector_range
template<typename mbd_types >
typedef mbd_types::math_policy OpenTissue::mbd::UniversalJoint< mbd_types >::math_policy
template<typename mbd_types >
typedef mbd_types::math_policy::matrix3x3_type OpenTissue::mbd::UniversalJoint< mbd_types >::matrix3x3_type
template<typename mbd_types >
typedef mbd_types::math_policy::matrix_range OpenTissue::mbd::UniversalJoint< mbd_types >::matrix_range
template<typename mbd_types >
typedef mbd_types::math_policy::quaternion_type OpenTissue::mbd::UniversalJoint< mbd_types >::quaternion_type
template<typename mbd_types >
typedef mbd_types::math_policy::real_type OpenTissue::mbd::UniversalJoint< mbd_types >::real_type
template<typename mbd_types >
typedef mbd_types::math_policy::index_type OpenTissue::mbd::UniversalJoint< mbd_types >::size_type
template<typename mbd_types >
typedef mbd_types::math_policy::value_traits OpenTissue::mbd::UniversalJoint< mbd_types >::value_traits
template<typename mbd_types >
typedef mbd_types::math_policy::vector3_type OpenTissue::mbd::UniversalJoint< mbd_types >::vector3_type
template<typename mbd_types >
typedef mbd_types::math_policy::vector_range OpenTissue::mbd::UniversalJoint< mbd_types >::vector_range
template<typename mbd_types >
typedef mbd_types::math_policy::vector_type OpenTissue::mbd::UniversalJoint< mbd_types >::vector_type

Constructor & Destructor Documentation

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

Member Function Documentation

template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< 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::UniversalJoint< mbd_types >::evaluate (  )  [inline]
template<typename mbd_types >
real_type OpenTissue::mbd::UniversalJoint< mbd_types >::get_angle1 (  )  const [inline]

Get Rotation Angle around Axis 1. This is inspired by Hinge::get_angle method, see this methods for details.

template<typename mbd_types >
real_type OpenTissue::mbd::UniversalJoint< mbd_types >::get_angle1_rate (  )  const [inline]

Get Angle1 Rate. This method computes the (signed) speed by which the joint angle changes its radial position around the first joint axe.

Returns:
The angle rate.
template<typename mbd_types >
real_type OpenTissue::mbd::UniversalJoint< mbd_types >::get_angle2 (  )  const [inline]

Get Rotation Angle around Axis 2. This is inspired by Hinge::get_angle method, see this methods for details.

template<typename mbd_types >
real_type OpenTissue::mbd::UniversalJoint< mbd_types >::get_angle2_rate (  )  const [inline]

Get Angle2 Rate. This method computes the (signed) speed by which the joint angle changes its radial position around the second joint axe.

Returns:
The angle rate.
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::get_angular_jacobian_A ( matrix_range J  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::get_angular_jacobian_B ( matrix_range J  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::get_dependency_factors ( vector_range factors  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::get_dependency_indices ( idx_vector_range dep  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::get_high_limits ( vector_range hi  )  const [inline]
template<typename mbd_types >
vector3_type OpenTissue::mbd::UniversalJoint< mbd_types >::get_joint_axis1_world (  )  const [inline]
template<typename mbd_types >
vector3_type OpenTissue::mbd::UniversalJoint< mbd_types >::get_joint_axis2_world (  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::get_linear_jacobian_A ( matrix_range J  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::get_linear_jacobian_B ( matrix_range J  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::get_low_limits ( vector_range lo  )  const [inline]
template<typename mbd_types >
size_type OpenTissue::mbd::UniversalJoint< mbd_types >::get_number_of_jacobian_rows (  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::get_regularization ( vector_range gamma  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::get_solution ( vector_range solution  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::get_stabilization_term ( vector_range b_error  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::set_limit1 ( angular_limit_type const &  limit  )  [inline]
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::set_limit2 ( angular_limit_type const &  limit  )  [inline]
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::set_motor1 ( angular_motor_type const &  motor  )  [inline]
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::set_motor2 ( angular_motor_type const &  motor  )  [inline]
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::set_regularization ( vector_range const &  gamma  )  [inline]
template<typename mbd_types >
void OpenTissue::mbd::UniversalJoint< mbd_types >::set_solution ( vector_range const &  solution  )  [inline]

Member Data Documentation

template<typename mbd_types >
vector3_type OpenTissue::mbd::UniversalJoint< mbd_types >::m_anc_A_wcs [protected]

The anchor point wrt. to body A in WCS.

template<typename mbd_types >
vector3_type OpenTissue::mbd::UniversalJoint< mbd_types >::m_anc_B_wcs [protected]

The anchor point wrt. to body B in WCS.

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

Local vector of constraint force mixing terms.

template<typename mbd_types >
angular_limit_type* OpenTissue::mbd::UniversalJoint< mbd_types >::m_limit1 [protected]
template<typename mbd_types >
angular_limit_type* OpenTissue::mbd::UniversalJoint< mbd_types >::m_limit2 [protected]
template<typename mbd_types >
size_type OpenTissue::mbd::UniversalJoint< mbd_types >::m_limit_offset1 [protected]
template<typename mbd_types >
size_type OpenTissue::mbd::UniversalJoint< mbd_types >::m_limit_offset2 [protected]
template<typename mbd_types >
angular_motor_type* OpenTissue::mbd::UniversalJoint< mbd_types >::m_motor1 [protected]
template<typename mbd_types >
angular_motor_type* OpenTissue::mbd::UniversalJoint< mbd_types >::m_motor2 [protected]
template<typename mbd_types >
size_type OpenTissue::mbd::UniversalJoint< mbd_types >::m_motor_offset1 [protected]
template<typename mbd_types >
size_type OpenTissue::mbd::UniversalJoint< mbd_types >::m_motor_offset2 [protected]
template<typename mbd_types >
quaternion_type OpenTissue::mbd::UniversalJoint< 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::UniversalJoint< mbd_types >::m_Q_initial_conj [protected]

The conjugate of Q_initial.

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

Number of jacobian rows.

template<typename mbd_types >
vector3_type OpenTissue::mbd::UniversalJoint< mbd_types >::m_s_A_wcs [protected]

The joint axe wrt. to body A in WCS.

template<typename mbd_types >
vector3_type OpenTissue::mbd::UniversalJoint< mbd_types >::m_s_B_wcs [protected]

The joint axe wrt. to body B in WCS.

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

Local solution vector, ie. vector of lagrange multipliers.

template<typename mbd_types >
matrix3x3_type OpenTissue::mbd::UniversalJoint< mbd_types >::m_star_anc_A [protected]

The cross product operator of the anchor point wrt. to body A rotated (but not translated) into WCS.

template<typename mbd_types >
matrix3x3_type OpenTissue::mbd::UniversalJoint< mbd_types >::m_star_anc_B [protected]

The cross product operator of the anchor point wrt. to body B rotated (but not translated) into WCS.

template<typename mbd_types >
vector3_type OpenTissue::mbd::UniversalJoint< 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: