dynamicsJRLJapan::Joint Class Reference
[User Classes]

This class represents a robot joint. More...

#include <jrl/dynamics/joint.hh>

Inheritance diagram for dynamicsJRLJapan::Joint:
Inheritance graph
[legend]
Collaboration diagram for dynamicsJRLJapan::Joint:
Collaboration graph
[legend]

List of all members.

Public Member Functions

Joint name

virtual const std::string & getName () const
 Get joint name.
virtual void setName (const std::string &name)
 Set joint name.
Joint hierarchy

virtual CjrlJointparentJoint () const
 Get a pointer to the parent joint (if any).
virtual bool addChildJoint (CjrlJoint &inJoint)
 Add a child joint.
virtual unsigned int countChildJoints () const
 Get the number of children.
virtual CjrlJointchildJoint (unsigned int inJointRank) const
 Returns the child joint at the given rank.
virtual std::vector< CjrlJoint * > jointsFromRootToThis () const
 Get a vector containing references of the joints between the rootJoint and this joint.
virtual unsigned int rankInConfiguration () const
 Get the rank of this joint in the robot configuration vector.
Joint kinematics

virtual const matrix4d & initialPosition () const
 Get the initial position of the joint.
virtual bool updateTransformation (const vectorN &inDofVector)
 Update this joint's transformation according to degree of freedom value from argument robot configuration.
virtual const matrix4d & currentTransformation () const
 Get the current transformation of the joint.
virtual CjrlRigidVelocity jointVelocity () const
 Get the velocity $({\bf v}, {\bf \omega})$ of the joint.
virtual CjrlRigidAcceleration jointAcceleration () const
 Get the acceleration of the joint.
virtual unsigned int numberDof () const
 Get the number of degrees of freedom of the joint.
Bounds of the degrees of freedom

virtual double lowerBound (unsigned int inDofRank) const
 Get the lower bound of a given degree of freedom of the joint.
virtual double upperBound (unsigned int inDofRank) const
 Get the upper bound of a given degree of freedom of the joint.
virtual void lowerBound (unsigned int inDofRank, double inLowerBound)
 Set the lower bound of a given degree of freedom of the joint.
virtual void upperBound (unsigned int inDofRank, double inUpperBound)
 Set the upper bound of a given degree of freedom of the joint.
virtual double lowerVelocityBound (unsigned int inDofRank) const
 Get the lower velocity bound of a given degree of freedom of the joint.
virtual double upperVelocityBound (unsigned int inDofRank) const
 Get the upper veocity bound of a given degree of freedom of the joint.
virtual void lowerVelocityBound (unsigned int inDofRank, double inLowerBound)
 Set the lower velocity bound of a given degree of freedom of the joint.
virtual void upperVelocityBound (unsigned int inDofRank, double inUpperBound)
 Set the upper velocity bound of a given degree of freedom of the joint.
Jacobian functions wrt configuration.

virtual const matrixNxP & jacobianJointWrtConfig () const
 Get the Jacobian matrix of the joint position and orientation wrt the robot configuration.
virtual void computeJacobianJointWrtConfig ()
 Compute the joint's jacobian wrt the robot configuration.
virtual void getJacobianPointWrtConfig (const vector3d &inPointJointFrame, matrixNxP &outjacobian) const
 Get the jacobian of the point specified in local frame by inPointJointFrame.
Body linked to the joint

virtual CjrlBodylinkedBody () const
 Get a pointer to the linked body (if any).
virtual void setLinkedBody (CjrlBody &inBody)
 Link a body to the joint.

Public Attributes

boost::shared_ptr< CjrlJointm_privateObj

Constructor and destructor



virtual ~Joint ()
 Joint (const Joint &inJoint)
 Joint ()

Detailed Description

This class represents a robot joint.

Implements abstract interface CjrlJoint.


Constructor & Destructor Documentation

virtual dynamicsJRLJapan::Joint::~Joint (  )  [inline, virtual]
dynamicsJRLJapan::Joint::Joint ( const Joint inJoint  ) 
dynamicsJRLJapan::Joint::Joint (  )  [protected]

Member Function Documentation

virtual bool dynamicsJRLJapan::Joint::addChildJoint ( CjrlJoint inJoint  )  [virtual]

Add a child joint.

Implements CjrlJoint.

virtual CjrlJoint* dynamicsJRLJapan::Joint::childJoint ( unsigned int  inJointRank  )  const [virtual]

Returns the child joint at the given rank.

Implements CjrlJoint.

virtual void dynamicsJRLJapan::Joint::computeJacobianJointWrtConfig (  )  [virtual]

Compute the joint's jacobian wrt the robot configuration.

Implements CjrlJoint.

virtual unsigned int dynamicsJRLJapan::Joint::countChildJoints (  )  const [virtual]

Get the number of children.

Implements CjrlJoint.

virtual const matrix4d& dynamicsJRLJapan::Joint::currentTransformation (  )  const [virtual]

Get the current transformation of the joint.

The current transformation of the joint is the transformation moving the joint from the position in initial configuration to the current position.

The current transformation is determined by the configuration ${\bf q}$ of the robot.

Implements CjrlJoint.

virtual void dynamicsJRLJapan::Joint::getJacobianPointWrtConfig ( const vector3d &  inPointJointFrame,
matrixNxP &  outjacobian 
) const [virtual]

Get the jacobian of the point specified in local frame by inPointJointFrame.

The output matrix outjacobian is automatically resized if necessary

Implements CjrlJoint.

virtual const std::string& dynamicsJRLJapan::Joint::getName (  )  const [virtual]

Get joint name.

Implements CjrlJoint.

virtual const matrix4d& dynamicsJRLJapan::Joint::initialPosition (  )  const [virtual]

Get the initial position of the joint.

The initial position of the joint is the position of the local frame of the joint.

Implements CjrlJoint.

virtual const matrixNxP& dynamicsJRLJapan::Joint::jacobianJointWrtConfig (  )  const [virtual]

Get the Jacobian matrix of the joint position and orientation wrt the robot configuration.

Kinematical constraints from interaction with the environment are not taken into account for this computation.

The corresponding computation can be done by the robot for each of its joints or by the joint.

Returns:
a matrix $J \in {\bf R}^{6\times n_{dof}}$ defined by

\[ J = \left(\begin{array}{llll} {\bf v_1} & {\bf v_2} & \cdots & {\bf v_{n_{dof}}} \\ {\bf \omega_1} & {\bf \omega_2} & \cdots & {\bf \omega_{n_{dof}}} \end{array}\right) \]

where ${\bf v_i}$ and ${\bf \omega_i}$ are respectively the linear and angular velocities of the joint implied by the variation of degree of freedom $q_i$. The velocity of the joint returned by CjrlJoint::jointVelocity can thus be obtained through the following formula:

\[ \left(\begin{array}{l} {\bf v} \\ {\bf \omega}\end{array}\right) = J {\bf \dot{q}} \]

Implements CjrlJoint.

virtual CjrlRigidAcceleration dynamicsJRLJapan::Joint::jointAcceleration (  )  const [virtual]

Get the acceleration of the joint.

The acceleratoin is determined by the configuration of the robot and its first and second time derivative: $({\bf q},{\bf \dot{q}}, {\bf \ddot{q}})$.

Implements CjrlJoint.

virtual std::vector<CjrlJoint*> dynamicsJRLJapan::Joint::jointsFromRootToThis (  )  const [virtual]

Get a vector containing references of the joints between the rootJoint and this joint.

The root Joint and this Joint are included in the vector.

Implements CjrlJoint.

virtual CjrlRigidVelocity dynamicsJRLJapan::Joint::jointVelocity (  )  const [virtual]

Get the velocity $({\bf v}, {\bf \omega})$ of the joint.

The velocity is determined by the configuration of the robot and its time derivative: $({\bf q},{\bf \dot{q}})$.

Returns:
the linear velocity ${\bf v}$ of the origin of the joint frame and the angular velocity ${\bf \omega}$ of the joint frame.

Implements CjrlJoint.

virtual CjrlBody* dynamicsJRLJapan::Joint::linkedBody (  )  const [virtual]

Get a pointer to the linked body (if any).

Implements CjrlJoint.

virtual void dynamicsJRLJapan::Joint::lowerBound ( unsigned int  inDofRank,
double  inLowerBound 
) [virtual]

Set the lower bound of a given degree of freedom of the joint.

Parameters:
inDofRank Id of the dof in the joint
inLowerBound lower bound

Implements CjrlJoint.

virtual double dynamicsJRLJapan::Joint::lowerBound ( unsigned int  inDofRank  )  const [virtual]

Get the lower bound of a given degree of freedom of the joint.

Parameters:
inDofRank Id of the dof in the joint

Implements CjrlJoint.

virtual void dynamicsJRLJapan::Joint::lowerVelocityBound ( unsigned int  inDofRank,
double  inLowerBound 
) [virtual]

Set the lower velocity bound of a given degree of freedom of the joint.

Parameters:
inDofRank Id of the dof in the joint
inLowerBound lower bound

Implements CjrlJoint.

virtual double dynamicsJRLJapan::Joint::lowerVelocityBound ( unsigned int  inDofRank  )  const [virtual]

Get the lower velocity bound of a given degree of freedom of the joint.

Parameters:
inDofRank Id of the dof in the joint

Implements CjrlJoint.

virtual unsigned int dynamicsJRLJapan::Joint::numberDof (  )  const [virtual]

Get the number of degrees of freedom of the joint.

Implements CjrlJoint.

virtual CjrlJoint* dynamicsJRLJapan::Joint::parentJoint (  )  const [virtual]

Get a pointer to the parent joint (if any).

Implements CjrlJoint.

virtual unsigned int dynamicsJRLJapan::Joint::rankInConfiguration (  )  const [virtual]

Get the rank of this joint in the robot configuration vector.

If the Joint has several degrees of freedom, it is the rank of the first degree of freedom.

Implements CjrlJoint.

virtual void dynamicsJRLJapan::Joint::setLinkedBody ( CjrlBody inBody  )  [virtual]

Link a body to the joint.

Implements CjrlJoint.

virtual void dynamicsJRLJapan::Joint::setName ( const std::string &  name  )  [virtual]

Set joint name.

Implements CjrlJoint.

virtual bool dynamicsJRLJapan::Joint::updateTransformation ( const vectorN &  inDofVector  )  [virtual]

Update this joint's transformation according to degree of freedom value from argument robot configuration.

This does not update the transformations of child joints.

Parameters:
inDofVector is a robot configuration vector.
Returns:
false if argument vector's size is not equal to the robot's number of degrees of freedom

Implements CjrlJoint.

virtual void dynamicsJRLJapan::Joint::upperBound ( unsigned int  inDofRank,
double  inUpperBound 
) [virtual]

Set the upper bound of a given degree of freedom of the joint.

Parameters:
inDofRank Id of the dof in the joint
inUpperBound Upper bound.

Implements CjrlJoint.

virtual double dynamicsJRLJapan::Joint::upperBound ( unsigned int  inDofRank  )  const [virtual]

Get the upper bound of a given degree of freedom of the joint.

Parameters:
inDofRank Id of the dof in the joint

Implements CjrlJoint.

virtual void dynamicsJRLJapan::Joint::upperVelocityBound ( unsigned int  inDofRank,
double  inUpperBound 
) [virtual]

Set the upper velocity bound of a given degree of freedom of the joint.

Parameters:
inDofRank Id of the dof in the joint
inUpperBound Upper bound.

Implements CjrlJoint.

virtual double dynamicsJRLJapan::Joint::upperVelocityBound ( unsigned int  inDofRank  )  const [virtual]

Get the upper veocity bound of a given degree of freedom of the joint.

Parameters:
inDofRank Id of the dof in the joint

Implements CjrlJoint.


Member Data Documentation