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
 
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 212 of file Joint.h.

Constructor & Destructor Documentation

◆ Joint() [1/11]

Joint ( )
inline

Definition at line 213 of file Joint.h.

◆ Joint() [2/11]

◆ Joint() [3/11]

Joint ( JointType  type,
int  degreesOfFreedom 
)
inline

Definition at line 304 of file Joint.h.

References RigidBodyDynamics::JointTypeCustom.

◆ Joint() [4/11]

Joint ( const Joint joint)
inline

Definition at line 325 of file Joint.h.

References Joint::mJointAxes.

◆ ~Joint()

~Joint ( )
inline

Definition at line 353 of file Joint.h.

◆ Joint() [5/11]

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 371 of file Joint.h.

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

◆ Joint() [6/11]

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) \]

Parameters
axis_0Motion subspace for axis 0

Definition at line 414 of file Joint.h.

References RigidBodyDynamics::JointTypeHelical, RigidBodyDynamics::JointTypePrismatic, RigidBodyDynamics::JointTypeRevoluteX, RigidBodyDynamics::JointTypeRevoluteY, and RigidBodyDynamics::JointTypeRevoluteZ.

◆ Joint() [7/11]

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 446 of file Joint.h.

References RigidBodyDynamics::JointType2DoF.

◆ Joint() [8/11]

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 472 of file Joint.h.

References RigidBodyDynamics::JointType3DoF.

◆ Joint() [9/11]

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 503 of file Joint.h.

References RigidBodyDynamics::JointType4DoF.

◆ Joint() [10/11]

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 538 of file Joint.h.

References RigidBodyDynamics::JointType5DoF.

◆ Joint() [11/11]

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 577 of file Joint.h.

References RigidBodyDynamics::JointType6DoF.

Member Function Documentation

◆ operator=()

Joint& operator= ( const Joint joint)
inline

◆ validate_spatial_axis()

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 610 of file Joint.h.

Field Documentation

◆ custom_joint_index

int custom_joint_index

Definition at line 644 of file Joint.h.

◆ mDoFCount

unsigned int mDoFCount

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

Definition at line 642 of file Joint.h.

◆ mJointAxes

Math::SpatialVector* mJointAxes

The spatial axes of the joint.

Definition at line 636 of file Joint.h.

◆ mJointType

JointType mJointType

Type of joint.

Definition at line 638 of file Joint.h.

◆ q_index

unsigned int q_index

Definition at line 643 of file Joint.h.


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