Blender V5.0
iTaSC::Frame Class Reference

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

#include <frames.hpp>

Public Member Functions

 Frame (const Rotation &R, const Vector &V)
 Frame (const Vector &V)
 The rotation matrix defaults to identity.
 Frame (const Rotation &R)
 The position matrix defaults to zero.
 Frame ()
 Frame (const Frame &arg)
 The copy constructor. Normal copy by value semantics.
void setValue (float *oglmat)
void getValue (float *oglmat) const
void Make4x4 (double *d)
 Reads data from an double array.
double operator() (int i, int j)
 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.
double operator() (int i, int j) const
 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.
Frame Inverse () const
 Gives back inverse transformation of a Frame.
Vector Inverse (const Vector &arg) const
 The same as p2=R.Inverse()*p but more efficient.
Wrench Inverse (const Wrench &arg) const
 The same as p2=R.Inverse()*p but more efficient.
Twist Inverse (const Twist &arg) const
 The same as p2=R.Inverse()*p but more efficient.
Frameoperator= (const Frame &arg)
 Normal copy-by-value semantics.
Vector operator* (const Vector &arg) const
 Transformation of the base to which the vector is expressed.
Wrench operator* (const Wrench &arg) const
 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.
Twist operator* (const Twist &arg) const
 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.
void Integrate (const Twist &t_this, double frequency)
 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.

Static Public Member Functions

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

Public Attributes

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

Friends

Frame operator* (const Frame &lhs, const Frame &rhs)
 Composition of two frames.
bool Equal (const Frame &a, const Frame &b, double eps=epsilon)
 do not use operator == because the definition of Equal(.,.) is slightly different. It compares whether the 2 arguments are equal in an eps-interval
bool operator== (const Frame &a, const Frame &b)
 The literal equality operator==(), also identical.
bool operator!= (const Frame &a, const Frame &b)
 The literal inequality operator!=().

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 526 of file frames.hpp.

Constructor & Destructor Documentation

◆ Frame() [1/5]

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

Definition at line 410 of file frames.hpp.

◆ Frame() [2/5]

Frame::Frame ( const Vector & V)
inlineexplicit

The rotation matrix defaults to identity.

Definition at line 404 of file frames.hpp.

◆ Frame() [3/5]

Frame::Frame ( const Rotation & R)
inlineexplicit

The position matrix defaults to zero.

Definition at line 398 of file frames.hpp.

◆ Frame() [4/5]

KDL::Frame::Frame ( )
inline

Definition at line 543 of file frames.hpp.

◆ Frame() [5/5]

Frame::Frame ( const Frame & arg)
inline

The copy constructor. Normal copy by value semantics.

Definition at line 445 of file frames.hpp.

Member Function Documentation

◆ DH()

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

Definition at line 70 of file frames.cpp.

◆ DH_Craig1989()

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

Definition at line 53 of file frames.cpp.

◆ getValue()

void Frame::getValue ( float * oglmat) const
inline

Definition at line 733 of file frames.hpp.

◆ Identity()

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

Definition at line 720 of file frames.hpp.

Referenced by iTaSC::WorldObject::WorldObject().

◆ 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 629 of file frames.hpp.

◆ Inverse() [1/4]

Frame Frame::Inverse ( ) const
inline

Gives back inverse transformation of a Frame.

Definition at line 432 of file frames.hpp.

◆ Inverse() [2/4]

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

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

Definition at line 303 of file frames.hpp.

◆ Inverse() [3/4]

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

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

Definition at line 427 of file frames.hpp.

◆ Inverse() [4/4]

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

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

Definition at line 186 of file frames.hpp.

◆ Make4x4()

void Frame::Make4x4 ( double * d)

Reads data from an double array.

Definition at line 39 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 687 of file frames.hpp.

◆ 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 703 of file frames.hpp.

◆ 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 295 of file frames.hpp.

◆ operator*() [2/3]

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

Transformation of the base to which the vector is expressed.

Definition at line 422 of file frames.hpp.

◆ 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 177 of file frames.hpp.

◆ operator=()

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

Normal copy-by-value semantics.

Definition at line 438 of file frames.hpp.

◆ setValue()

void Frame::setValue ( float * oglmat)
inline

Definition at line 725 of file frames.hpp.

◆ Equal

bool Equal ( const Frame & a,
const Frame & b,
double eps = epsilon )
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

Definition at line 1076 of file frames.hpp.

◆ operator!=

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

The literal inequality operator!=().

Definition at line 1353 of file frames.hpp.

◆ operator*

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

Composition of two frames.

Definition at line 416 of file frames.hpp.

◆ operator==

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

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

Definition at line 1344 of file frames.hpp.

Member Data Documentation

◆ M

Orientation of the Frame.

Definition at line 529 of file frames.hpp.

◆ p

origine of the Frame

Definition at line 528 of file frames.hpp.


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