Robotics Library  0.7.0
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
rl::kin::Puma Class Reference

TRR base and TRT wrist. More...

#include <Puma.h>

Inheritance diagram for rl::kin::Puma:
Inheritance graph
[legend]

Public Types

enum  Arm { ARM_LEFT = -1, ARM_RIGHT = 1 }
 
enum  Elbow { ELBOW_ABOVE = 1, ELBOW_BELOW = -1 }
 
enum  Wrist { WRIST_FLIP = 1, WRIST_NONFLIP = -1 }
 

Public Member Functions

 Puma ()
 
virtual ~Puma ()
 
virtual Kinematicsclone () const
 
Arm getArm () const
 
Elbow getElbow () const
 
Wrist getWrist () const
 
bool inversePosition (const ::rl::math::Transform &x, ::rl::math::Vector &q, const ::std::size_t &leaf=0, const ::rl::math::Real &delta=::std::numeric_limits< ::rl::math::Real >::infinity(), const ::rl::math::Real &epsilon=1.0e-3f, const ::std::size_t &iterations=1000)
 Calculate inverse position kinematics. More...
 
bool isSingular () const
 Check if current configuration is singular. More...
 
void parameters (const ::rl::math::Vector &q, Arm &arm, Elbow &elbow, Wrist &wrist) const
 
void setArm (const Arm &arm)
 
void setElbow (const Elbow &elbow)
 
void setWrist (const Wrist &wrist)
 
- Public Member Functions inherited from rl::kin::Kinematics
 Kinematics ()
 
virtual ~Kinematics ()
 
bool areColliding (const ::std::size_t &i, const ::std::size_t &j) const
 See if specified bodies should be tested for collisions with each other. More...
 
virtual void clip (::rl::math::Vector &q) const
 Clip specified configuration to be within joint limits. More...
 
virtual ::rl::math::Real distance (const ::rl::math::Vector &q1, const ::rl::math::Vector &q2) const
 Calculate distance measure between specified configuration. More...
 
virtual const ::rl::math::TransformforwardPosition (const ::std::size_t &i=0) const
 Get forward position kinematics. More...
 
virtual void forwardForce (const ::rl::math::Vector &tau, ::rl::math::Vector &f) const
 Calculate forward force kinematics. More...
 
virtual void forwardVelocity (const ::rl::math::Vector &qdot, ::rl::math::Vector &xdot) const
 Calculate forward velocity kinematics. More...
 
::rl::math::Vector generatePositionGaussian (const ::rl::math::Vector &rand, const ::rl::math::Vector &mean, const ::rl::math::Vector &sigma) const
 
::rl::math::Vector generatePositionUniform (const ::rl::math::Vector &rand) const
 
::std::size_t getBodies () const
 Get number of links. More...
 
::std::size_t getDof () const
 Get number of degrees of freedom (DOF). More...
 
const ::rl::math::TransformgetFrame (const ::std::size_t &i) const
 Get link frame. More...
 
const ::rl::math::MatrixgetJacobian () const
 Get Jacobian. More...
 
const ::rl::math::MatrixgetJacobianInverse () const
 Get Jacobian-Inverse. More...
 
JointgetJoint (const ::std::size_t &i) const
 
::rl::math::Real getManipulabilityMeasure () const
 Get manipulability measure. More...
 
::std::string getManufacturer () const
 
::rl::math::Real getMaximum (const ::std::size_t &i) const
 
void getMaximum (::rl::math::Vector &max) const
 
::rl::math::Real getMinimum (const ::std::size_t &i) const
 
void getMinimum (::rl::math::Vector &min) const
 
::std::string getName () const
 
::std::size_t getOperationalDof () const
 Get number of end effectors. More...
 
void getPosition (::rl::math::Vector &q) const
 Get current joint position. More...
 
void getPositionUnits (::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 > &units) const
 
void getSpeed (::rl::math::Vector &speed) const
 
void getSpeedUnits (::Eigen::Matrix< ::rl::math::Unit, ::Eigen::Dynamic, 1 > &units) const
 
virtual void interpolate (const ::rl::math::Vector &q1, const ::rl::math::Vector &q2, const ::rl::math::Real &alpha, ::rl::math::Vector &q) const
 
virtual void inverseForce (const ::rl::math::Vector &f, ::rl::math::Vector &tau) const
 Calculate inverse force kinematics. More...
 
virtual ::rl::math::Real inverseOfTransformedDistance (const ::rl::math::Real &d) const
 
virtual void inverseVelocity (const ::rl::math::Vector &xdot, ::rl::math::Vector &qdot) const
 Calculate inverse velocity kinematics. More...
 
bool isColliding (const ::std::size_t &i) const
 See if specified body should be tested for collisions with the environment. More...
 
virtual bool isValid (const ::rl::math::Vector &q) const
 Check if specified configuration is within joint limits. More...
 
virtual ::rl::math::Real maxDistanceToRectangle (const ::rl::math::Vector &q, const ::rl::math::Vector &min, const ::rl::math::Vector &max) const
 
virtual ::rl::math::Real minDistanceToRectangle (const ::rl::math::Vector &q, const ::rl::math::Vector &min, const ::rl::math::Vector &max) const
 
virtual ::rl::math::Real minDistanceToRectangle (const ::rl::math::Real &q, const ::rl::math::Real &min, const ::rl::math::Real &max, const ::std::size_t &cuttingDimension) const
 
virtual ::rl::math::Real newDistance (const ::rl::math::Real &dist, const ::rl::math::Real &oldOff, const ::rl::math::Real &newOff, const int &cuttingDimension) const
 
void setColliding (const ::std::size_t &i, const bool &doesCollide)
 Set if specified body should be tested for collisions with the environment. More...
 
void setColliding (const ::std::size_t &i, const ::std::size_t &j, const bool &doCollide)
 Set if specified bodies should be tested for collisions with each other. More...
 
void setPosition (const ::rl::math::Vector &q)
 Update current joint position. More...
 
virtual void step (const ::rl::math::Vector &q1, const ::rl::math::Vector &qdot, ::rl::math::Vector &q2) const
 
::rl::math::Transformtool (const ::std::size_t &i=0)
 
const ::rl::math::Transformtool (const ::std::size_t &i=0) const
 
virtual ::rl::math::Real transformedDistance (const ::rl::math::Real &d) const
 
virtual ::rl::math::Real transformedDistance (const ::rl::math::Vector &q1, const ::rl::math::Vector &q2) const
 
virtual ::rl::math::Real transformedDistance (const ::rl::math::Real &q1, const ::rl::math::Real &q2, const ::std::size_t &i) const
 
virtual void updateFrames ()
 Update frames. More...
 
virtual void updateJacobian ()
 Update Jacobian. More...
 
virtual void updateJacobianInverse (const ::rl::math::Real &lambda=0.0f, const bool &doSvd=true)
 Update Jacobian-Inverse. More...
 
::rl::math::Transformworld ()
 
const ::rl::math::Transformworld () const
 

Private Member Functions

template<typename T >
atan2 (const T &y, const T &x) const
 
template<typename T >
cos (const T &x) const
 
template<typename T >
sin (const T &x) const
 

Private Attributes

Arm arm
 
Elbow elbow
 
Wrist wrist
 

Additional Inherited Members

- Static Public Member Functions inherited from rl::kin::Kinematics
static Kinematicscreate (const ::std::string &filename)
 
- Protected Types inherited from rl::kin::Kinematics
typedef ::boost::adjacency_list< ::boost::vecS, ::boost::vecS, ::boost::bidirectionalS, ::std::shared_ptr< Frame >, ::std::shared_ptr< Transform >, ::boost::no_property, ::boost::vecS > Tree
 
typedef ::boost::graph_traits< Tree >::edge_descriptor Edge
 
typedef ::boost::graph_traits< Tree >::edge_iterator EdgeIterator
 
typedef ::std::pair< EdgeIterator, EdgeIteratorEdgeIteratorPair
 
typedef ::boost::graph_traits< Tree >::in_edge_iterator InEdgeIterator
 
typedef ::std::pair< InEdgeIterator, InEdgeIteratorInEdgeIteratorPair
 
typedef ::boost::graph_traits< Tree >::out_edge_iterator OutEdgeIterator
 
typedef ::std::pair< OutEdgeIterator, OutEdgeIteratorOutEdgeIteratorPair
 
typedef ::boost::graph_traits< Tree >::vertex_descriptor Vertex
 
typedef ::boost::graph_traits< Tree >::vertex_iterator VertexIterator
 
typedef ::std::pair< VertexIterator, VertexIteratorVertexIteratorPair
 
- Protected Member Functions inherited from rl::kin::Kinematics
void update ()
 
void update (Vertex &u)
 
- Protected Attributes inherited from rl::kin::Kinematics
::std::vector< Element * > elements
 
::std::vector< Frame * > frames
 
::std::vector< Vertexleaves
 
::std::vector< Link * > links
 
::rl::math::Matrix jacobian
 
::rl::math::Matrix jacobianInverse
 
::std::vector< Joint * > joints
 
::std::string manufacturer
 
::std::string name
 
Vertex root
 
::std::vector< Edgetools
 
::std::vector< Transform * > transforms
 
Tree tree
 

Detailed Description

TRR base and TRT wrist.

Member Enumeration Documentation

◆ Arm

Enumerator
ARM_LEFT 
ARM_RIGHT 

◆ Elbow

Enumerator
ELBOW_ABOVE 
ELBOW_BELOW 

◆ Wrist

Enumerator
WRIST_FLIP 
WRIST_NONFLIP 

Constructor & Destructor Documentation

◆ Puma()

rl::kin::Puma::Puma ( )

◆ ~Puma()

rl::kin::Puma::~Puma ( )
virtual

Member Function Documentation

◆ atan2()

template<typename T >
T rl::kin::Puma::atan2 ( const T &  y,
const T &  x 
) const
inlineprivate

◆ clone()

Kinematics * rl::kin::Puma::clone ( ) const
virtual

Reimplemented from rl::kin::Kinematics.

◆ cos()

template<typename T >
T rl::kin::Puma::cos ( const T &  x) const
inlineprivate

◆ getArm()

Puma::Arm rl::kin::Puma::getArm ( ) const

◆ getElbow()

Puma::Elbow rl::kin::Puma::getElbow ( ) const

◆ getWrist()

Puma::Wrist rl::kin::Puma::getWrist ( ) const

◆ inversePosition()

bool rl::kin::Puma::inversePosition ( const ::rl::math::Transform x,
::rl::math::Vector q,
const ::std::size_t &  leaf = 0,
const ::rl::math::Real delta = ::std::numeric_limits< ::rl::math::Real>::infinity(),
const ::rl::math::Real epsilon = 1.0e-3f,
const ::std::size_t &  iterations = 1000 
)
virtual

Calculate inverse position kinematics.

Reimplemented from rl::kin::Kinematics.

◆ isSingular()

bool rl::kin::Puma::isSingular ( ) const
virtual

Check if current configuration is singular.

Reimplemented from rl::kin::Kinematics.

◆ parameters()

void rl::kin::Puma::parameters ( const ::rl::math::Vector q,
Arm arm,
Elbow elbow,
Wrist wrist 
) const

◆ setArm()

void rl::kin::Puma::setArm ( const Arm arm)

◆ setElbow()

void rl::kin::Puma::setElbow ( const Elbow elbow)

◆ setWrist()

void rl::kin::Puma::setWrist ( const Wrist wrist)

◆ sin()

template<typename T >
T rl::kin::Puma::sin ( const T &  x) const
inlineprivate

Member Data Documentation

◆ arm

Arm rl::kin::Puma::arm
private

◆ elbow

Elbow rl::kin::Puma::elbow
private

◆ wrist

Wrist rl::kin::Puma::wrist
private

The documentation for this class was generated from the following files: