Rigid Body Dynamics Library
Joint Struct Reference

Describes a joint relative to the predecessor body. More...

Public Member Functions

 Joint ()
 
 Joint (JointType type)
 
 Joint (JointType type, int degreesOfFreedom)
 
 Joint (const Joint &joint)
 
Jointoperator= (const Joint &joint)
 
 ~Joint ()
 
 Joint (const JointType joint_type, const Math::Vector3d &joint_axis)
 Constructs a joint from the given cartesian parameters. More...
 
 Joint (const Math::SpatialVector &axis_0)
 Constructs a 1 DoF joint with the given motion subspaces. More...
 
 Joint (const Math::SpatialVector &axis_0, const Math::SpatialVector &axis_1)
 Constructs a 2 DoF joint with the given motion subspaces. More...
 
 Joint (const Math::SpatialVector &axis_0, const Math::SpatialVector &axis_1, const Math::SpatialVector &axis_2)
 Constructs a 3 DoF joint with the given motion subspaces. More...
 
 Joint (const Math::SpatialVector &axis_0, const Math::SpatialVector &axis_1, const Math::SpatialVector &axis_2, const Math::SpatialVector &axis_3)
 Constructs a 4 DoF joint with the given motion subspaces. More...
 
 Joint (const Math::SpatialVector &axis_0, const Math::SpatialVector &axis_1, const Math::SpatialVector &axis_2, const Math::SpatialVector &axis_3, const Math::SpatialVector &axis_4)
 Constructs a 5 DoF joint with the given motion subspaces. More...
 
 Joint (const Math::SpatialVector &axis_0, const Math::SpatialVector &axis_1, const Math::SpatialVector &axis_2, const Math::SpatialVector &axis_3, const Math::SpatialVector &axis_4, const Math::SpatialVector &axis_5)
 Constructs a 6 DoF joint with the given motion subspaces. More...
 
bool validate_spatial_axis (Math::SpatialVector &axis)
 Checks whether we have pure rotational or translational axis. More...
 

Data Fields

Math::SpatialVectormJointAxes
 The spatial axes of the joint. More...
 
JointType mJointType
 Type of joint. More...
 
unsigned int mDoFCount
 Number of degrees of freedom of the joint. Note: CustomJoints. More...
 
unsigned int q_index
 
unsigned int custom_joint_index
 

Detailed Description

Describes a joint relative to the predecessor body.

This class contains all information required for one single joint. This contains the joint type and the axis of the joint. See Joint Modeling for detailed description.

Definition at line 208 of file Joint.h.

Constructor & Destructor Documentation

Joint ( )
inline

Definition at line 209 of file Joint.h.

Joint ( JointType  type,
int  degreesOfFreedom 
)
inline

Definition at line 291 of file Joint.h.

References RigidBodyDynamics::JointTypeCustom.

Joint ( const Joint joint)
inline

Definition at line 312 of file Joint.h.

References Joint::mJointAxes.

~Joint ( )
inline

Definition at line 340 of file Joint.h.

Joint ( const JointType  joint_type,
const Math::Vector3d joint_axis 
)
inline

Constructs a joint from the given cartesian parameters.

This constructor creates all the required spatial values for the given cartesian parameters.

Parameters
joint_typewhether the joint is revolute or prismatic
joint_axisthe axis of rotation or translation

Definition at line 358 of file Joint.h.

References RigidBodyDynamics::JointTypePrismatic, and RigidBodyDynamics::JointTypeRevolute.

Joint ( const Math::SpatialVector axis_0)
inline

Constructs a 1 DoF joint with the given motion subspaces.

The motion subspaces are of the format:

\[ (r_x, r_y, r_z, t_x, t_y, t_z) \]

Note
So far only pure rotations or pure translations are supported.
Parameters
axis_0Motion subspace for axis 0

Definition at line 403 of file Joint.h.

References RigidBodyDynamics::JointType1DoF, RigidBodyDynamics::JointTypeRevoluteX, RigidBodyDynamics::JointTypeRevoluteY, and RigidBodyDynamics::JointTypeRevoluteZ.

Joint ( const Math::SpatialVector axis_0,
const Math::SpatialVector axis_1 
)
inline

Constructs a 2 DoF joint with the given motion subspaces.

The motion subspaces are of the format:

\[ (r_x, r_y, r_z, t_x, t_y, t_z) \]

Note
So far only pure rotations or pure translations are supported.
Parameters
axis_0Motion subspace for axis 0
axis_1Motion subspace for axis 1

Definition at line 431 of file Joint.h.

References RigidBodyDynamics::JointType2DoF.

Joint ( const Math::SpatialVector axis_0,
const Math::SpatialVector axis_1,
const Math::SpatialVector axis_2 
)
inline

Constructs a 3 DoF joint with the given motion subspaces.

The motion subspaces are of the format:

\[ (r_x, r_y, r_z, t_x, t_y, t_z) \]

Note
So far only pure rotations or pure translations are supported.
Parameters
axis_0Motion subspace for axis 0
axis_1Motion subspace for axis 1
axis_2Motion subspace for axis 2

Definition at line 457 of file Joint.h.

References RigidBodyDynamics::JointType3DoF.

Joint ( const Math::SpatialVector axis_0,
const Math::SpatialVector axis_1,
const Math::SpatialVector axis_2,
const Math::SpatialVector axis_3 
)
inline

Constructs a 4 DoF joint with the given motion subspaces.

The motion subspaces are of the format:

\[ (r_x, r_y, r_z, t_x, t_y, t_z) \]

Note
So far only pure rotations or pure translations are supported.
Parameters
axis_0Motion subspace for axis 0
axis_1Motion subspace for axis 1
axis_2Motion subspace for axis 2
axis_3Motion subspace for axis 3

Definition at line 488 of file Joint.h.

References RigidBodyDynamics::JointType4DoF.

Joint ( const Math::SpatialVector axis_0,
const Math::SpatialVector axis_1,
const Math::SpatialVector axis_2,
const Math::SpatialVector axis_3,
const Math::SpatialVector axis_4 
)
inline

Constructs a 5 DoF joint with the given motion subspaces.

The motion subspaces are of the format:

\[ (r_x, r_y, r_z, t_x, t_y, t_z) \]

Note
So far only pure rotations or pure translations are supported.
Parameters
axis_0Motion subspace for axis 0
axis_1Motion subspace for axis 1
axis_2Motion subspace for axis 2
axis_3Motion subspace for axis 3
axis_4Motion subspace for axis 4

Definition at line 523 of file Joint.h.

References RigidBodyDynamics::JointType5DoF.

Joint ( const Math::SpatialVector axis_0,
const Math::SpatialVector axis_1,
const Math::SpatialVector axis_2,
const Math::SpatialVector axis_3,
const Math::SpatialVector axis_4,
const Math::SpatialVector axis_5 
)
inline

Constructs a 6 DoF joint with the given motion subspaces.

The motion subspaces are of the format:

\[ (r_x, r_y, r_z, t_x, t_y, t_z) \]

Note
So far only pure rotations or pure translations are supported.
Parameters
axis_0Motion subspace for axis 0
axis_1Motion subspace for axis 1
axis_2Motion subspace for axis 2
axis_3Motion subspace for axis 3
axis_4Motion subspace for axis 4
axis_5Motion subspace for axis 5

Definition at line 562 of file Joint.h.

References RigidBodyDynamics::JointType6DoF.

Member Function Documentation

Joint& operator= ( const Joint joint)
inline
bool validate_spatial_axis ( Math::SpatialVector axis)
inline

Checks whether we have pure rotational or translational axis.

This function is mainly used to print out warnings when specifying an axis that might not be intended.

Definition at line 595 of file Joint.h.

Field Documentation

unsigned int custom_joint_index

Definition at line 624 of file Joint.h.

unsigned int mDoFCount

Number of degrees of freedom of the joint. Note: CustomJoints.

Definition at line 622 of file Joint.h.

Math::SpatialVector* mJointAxes

The spatial axes of the joint.

Definition at line 616 of file Joint.h.

JointType mJointType

Type of joint.

Definition at line 618 of file Joint.h.

unsigned int q_index

Definition at line 623 of file Joint.h.


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