Robot Dynamics Library
Public Member Functions | Public Attributes | List of all members
RobotDynamics::Joint Struct Reference

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

#include <Joint.hpp>

Collaboration diagram for RobotDynamics::Joint:
Collaboration graph
[legend]

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...
 

Public Attributes

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.

Note
The construction of a Joint is NOT a realtime safe procedure, so be sure you are not creating temporary joints at runtime. For maximum performance, you should create all joints at config time and just reference those.

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.

Constructor & Destructor Documentation

◆ Joint() [1/11]

RobotDynamics::Joint::Joint ( )
inline

◆ Joint() [2/11]

RobotDynamics::Joint::Joint ( JointType  type)
inlineexplicit

◆ Joint() [3/11]

RobotDynamics::Joint::Joint ( JointType  type,
int  degreesOfFreedom 
)
inline

◆ Joint() [4/11]

RobotDynamics::Joint::Joint ( const Joint joint)
inline

◆ ~Joint()

RobotDynamics::Joint::~Joint ( )
inline

◆ Joint() [5/11]

RobotDynamics::Joint::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

◆ Joint() [6/11]

RobotDynamics::Joint::Joint ( const Math::SpatialVector axis_0)
inlineexplicit

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

◆ Joint() [7/11]

RobotDynamics::Joint::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

◆ Joint() [8/11]

RobotDynamics::Joint::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

◆ Joint() [9/11]

RobotDynamics::Joint::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

◆ Joint() [10/11]

RobotDynamics::Joint::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

◆ Joint() [11/11]

RobotDynamics::Joint::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

Member Function Documentation

◆ operator=()

Joint& RobotDynamics::Joint::operator= ( const Joint joint)
inline

◆ validate_spatial_axis()

bool RobotDynamics::Joint::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.

Member Data Documentation

◆ custom_joint_index

unsigned int RobotDynamics::Joint::custom_joint_index

◆ mDoFCount

unsigned int RobotDynamics::Joint::mDoFCount

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

◆ mJointAxes

Math::SpatialVector* RobotDynamics::Joint::mJointAxes

The spatial axes of the joint.

◆ mJointType

JointType RobotDynamics::Joint::mJointType

Type of joint.

◆ q_index

unsigned int RobotDynamics::Joint::q_index

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