orocos_kdl
Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
KDL::Frame Class Reference

represents a frame transformation in 3D space (rotation + translation) More...

#include <frames.hpp>

Public Member Functions

 Frame ()
 
 Frame (const Frame &arg)
 The copy constructor. Normal copy by value semantics. More...
 
 Frame (const Rotation &R)
 The position matrix defaults to zero. More...
 
 Frame (const Rotation &R, const Vector &V)
 
 Frame (const Vector &V)
 The rotation matrix defaults to identity. More...
 
void Integrate (const Twist &t_this, double frequency)
 
Frame Inverse () const
 Gives back inverse transformation of a Frame. More...
 
Twist Inverse (const Twist &arg) const
 The same as p2=R.Inverse()*p but more efficient. More...
 
Vector Inverse (const Vector &arg) const
 The same as p2=R.Inverse()*p but more efficient. More...
 
Wrench Inverse (const Wrench &arg) const
 The same as p2=R.Inverse()*p but more efficient. More...
 
void Make4x4 (double *d)
 Reads data from an double array. More...
 
double operator() (int i, int j)
 
double operator() (int i, int j) const
 
Twist operator* (const Twist &arg) const
 
Vector operator* (const Vector &arg) const
 
Wrench operator* (const Wrench &arg) const
 
Frameoperator= (const Frame &arg)
 Normal copy-by-value semantics. More...
 

Static Public Member Functions

static Frame DH (double a, double alpha, double d, double theta)
 
static Frame DH_Craig1989 (double a, double alpha, double d, double theta)
 
static Frame Identity ()
 

Public Attributes

Rotation M
 Orientation of the Frame. More...
 
Vector p
 origine of the Frame More...
 

Friends

bool Equal (const Frame &a, const Frame &b, double eps)
 
bool operator!= (const Frame &a, const Frame &b)
 The literal inequality operator!=(). More...
 
Frame operator* (const Frame &lhs, const Frame &rhs)
 Composition of two frames. More...
 
bool operator== (const Frame &a, const Frame &b)
 The literal equality operator==(), also identical. More...
 

Detailed Description

represents a frame transformation in 3D space (rotation + translation)

if V2 = Frame*V1 (V2 expressed in frame A, V1 expressed in frame B) then V2 = Frame.M*V1+Frame.p

Frame.M contains columns that represent the axes of frame B wrt frame A Frame.p contains the origin of frame B expressed in frame A.

Definition at line 572 of file frames.hpp.

Constructor & Destructor Documentation

◆ Frame() [1/5]

Frame::Frame ( const Rotation R,
const Vector V 
)
inline

Definition at line 400 of file frames.inl.

◆ Frame() [2/5]

Frame::Frame ( const Vector V)
inlineexplicit

The rotation matrix defaults to identity.

Definition at line 394 of file frames.inl.

◆ Frame() [3/5]

Frame::Frame ( const Rotation R)
inlineexplicit

The position matrix defaults to zero.

Definition at line 388 of file frames.inl.

◆ Frame() [4/5]

KDL::Frame::Frame ( )
inline

Definition at line 586 of file frames.hpp.

◆ Frame() [5/5]

Frame::Frame ( const Frame arg)
inline

The copy constructor. Normal copy by value semantics.

Definition at line 435 of file frames.inl.

Member Function Documentation

◆ DH()

Frame KDL::Frame::DH ( double  a,
double  alpha,
double  d,
double  theta 
)
static

Definition at line 95 of file frames.cpp.

◆ DH_Craig1989()

Frame KDL::Frame::DH_Craig1989 ( double  a,
double  alpha,
double  d,
double  theta 
)
static

Definition at line 78 of file frames.cpp.

◆ Identity()

Frame Frame::Identity ( )
inlinestatic
Returns
the identity transformation Frame(Rotation::Identity(),Vector::Zero()).

Definition at line 700 of file frames.inl.

◆ Integrate()

void Frame::Integrate ( const Twist t_this,
double  frequency 
)
inline

The twist <t_this> is expressed wrt the current frame. This frame is integrated into an updated frame with <samplefrequency>. Very simple first order integration rule.

Definition at line 624 of file frames.inl.

◆ Inverse() [1/4]

Frame Frame::Inverse ( ) const
inline

Gives back inverse transformation of a Frame.

Definition at line 422 of file frames.inl.

◆ Inverse() [2/4]

Twist Frame::Inverse ( const Twist arg) const
inline

The same as p2=R.Inverse()*p but more efficient.

Definition at line 282 of file frames.inl.

◆ Inverse() [3/4]

Vector Frame::Inverse ( const Vector arg) const
inline

The same as p2=R.Inverse()*p but more efficient.

Definition at line 417 of file frames.inl.

◆ Inverse() [4/4]

Wrench Frame::Inverse ( const Wrench arg) const
inline

The same as p2=R.Inverse()*p but more efficient.

Definition at line 165 of file frames.inl.

◆ Make4x4()

void KDL::Frame::Make4x4 ( double *  d)

Reads data from an double array.

Definition at line 64 of file frames.cpp.

◆ operator()() [1/2]

double Frame::operator() ( int  i,
int  j 
)
inline

Treats a frame as a 4x4 matrix and returns element i,j Access to elements 0..3,0..3, bounds are checked when NDEBUG is not set

Definition at line 667 of file frames.inl.

◆ operator()() [2/2]

double Frame::operator() ( int  i,
int  j 
) const
inline

Treats a frame as a 4x4 matrix and returns element i,j Access to elements 0..3,0..3, bounds are checked when NDEBUG is not set

Definition at line 683 of file frames.inl.

◆ operator*() [1/3]

Twist Frame::operator* ( const Twist arg) const
inline

Transformation of both the velocity reference point and of the base to which the twist is expressed. look at Rotation*Twist for a transformation of only the base to which the twist is expressed.

Complexity : 24M+18A

Definition at line 274 of file frames.inl.

◆ operator*() [2/3]

Vector Frame::operator* ( const Vector arg) const
inline

Transformation of the base to which the vector is expressed.

Definition at line 412 of file frames.inl.

◆ operator*() [3/3]

Wrench Frame::operator* ( const Wrench arg) const
inline

Transformation of both the force reference point and of the base to which the wrench is expressed. look at Rotation*Wrench operator for a transformation of only the base to which the twist is expressed.

Complexity : 24M+18A

Definition at line 156 of file frames.inl.

◆ operator=()

Frame & Frame::operator= ( const Frame arg)
inline

Normal copy-by-value semantics.

Definition at line 428 of file frames.inl.

Friends And Related Function Documentation

◆ Equal

bool Equal ( const Frame a,
const Frame b,
double  eps 
)
friend

do not use operator == because the definition of Equal(.,.) is slightly different. It compares whether the 2 arguments are equal in an eps-interval

◆ operator!=

bool operator!= ( const Frame a,
const Frame b 
)
friend

The literal inequality operator!=().

◆ operator*

Frame operator* ( const Frame lhs,
const Frame rhs 
)
friend

Composition of two frames.

◆ operator==

bool operator== ( const Frame a,
const Frame b 
)
friend

The literal equality operator==(), also identical.

Member Data Documentation

◆ M

Rotation KDL::Frame::M

Orientation of the Frame.

Definition at line 575 of file frames.hpp.

◆ p

Vector KDL::Frame::p

origine of the Frame

Definition at line 574 of file frames.hpp.


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