Blender  V3.3
Public Member Functions | Friends | List of all members
KDL::JntArray Class Reference

#include <jntarray.hpp>

Public Member Functions

 JntArray ()
 
 JntArray (unsigned int size)
 
 JntArray (const JntArray &arg)
 
 ~JntArray ()
 
void resize (unsigned int newSize)
 
JntArrayoperator= (const JntArray &arg)
 
double operator[] (unsigned int i) const
 
doubleoperator[] (unsigned int i)
 
doubleoperator() (unsigned int i)
 
unsigned int rows () const
 
unsigned int columns () const
 

Friends

void Add (const JntArray &src1, const JntArray &src2, JntArray &dest)
 
void Subtract (const JntArray &src1, const JntArray &src2, JntArray &dest)
 
void Multiply (const JntArray &src, const double &factor, JntArray &dest)
 
void Divide (const JntArray &src, const double &factor, JntArray &dest)
 
void MultiplyJacobian (const Jacobian &jac, const JntArray &src, Twist &dest)
 
void SetToZero (JntArray &array)
 
bool Equal (const JntArray &src1, const JntArray &src2, double eps)
 
bool operator== (const JntArray &src1, const JntArray &src2)
 

Detailed Description

   @brief This class represents an fixed size array containing
   joint values of a KDL::Chain.

   \warning An object constructed with the default constructor provides
   a valid, but inert, object. Many of the member functions will do
   the correct thing and have no affect on this object, but some 
   member functions can _NOT_ deal with an inert/empty object. These 
   functions will assert() and exit the program instead. The intended use 
   case for the default constructor (in an RTT/OCL setting) is outlined in
   code below - the default constructor plus the resize() function allow
   use of JntArray objects whose size is set within a configureHook() call
   (typically based on a size determined from a property).
class MyTask : public RTT::TaskContext
{
MyTask()
{} // invokes j's default constructor
bool configureHook()
{
unsigned int size = some_property.rvalue();
j.resize(size)
...
}
void updateHook()
{
use j here
}
};

Definition at line 67 of file jntarray.hpp.

Constructor & Destructor Documentation

◆ JntArray() [1/3]

KDL::JntArray::JntArray ( )

Construct with no data array

Postcondition
NULL == data
0 == rows()
Warning
use of an object constructed like this, without a resize() first, may result in program exit! See class documentation.

Definition at line 29 of file jntarray.cpp.

◆ JntArray() [2/3]

KDL::JntArray::JntArray ( unsigned int  size)

Constructor of the joint array

Parameters
sizesize of the array, this cannot be changed afterwards.
Precondition
0 < size
Postcondition
NULL != data
0 < rows()
all elements in data have 0 value

Definition at line 35 of file jntarray.cpp.

References SetToZero.

◆ JntArray() [3/3]

KDL::JntArray::JntArray ( const JntArray arg)

Copy constructor

Note
Will correctly copy an empty object

Definition at line 44 of file jntarray.cpp.

References NULL.

◆ ~JntArray()

KDL::JntArray::~JntArray ( )

Definition at line 61 of file jntarray.cpp.

Member Function Documentation

◆ columns()

unsigned int KDL::JntArray::columns ( ) const

Returns the number of columns of the array, always 1.

Definition at line 98 of file jntarray.cpp.

◆ operator()()

double * KDL::JntArray::operator() ( unsigned int  i)

access operator for the joint array. Use pointer here to allow access to sequential joint angles (required for ndof joints)

Returns
the joint value at position i, NULL if i is outside the valid range

Definition at line 86 of file jntarray.cpp.

References NULL.

◆ operator=()

JntArray & KDL::JntArray::operator= ( const JntArray arg)

Definition at line 52 of file jntarray.cpp.

◆ operator[]() [1/2]

double & KDL::JntArray::operator[] ( unsigned int  i)

set_item operator

Returns
reference to the joint value at position i,starting from zero.
Precondition
0 != size (ie non-default constructor or resize() called)

Definition at line 80 of file jntarray.cpp.

◆ operator[]() [2/2]

double KDL::JntArray::operator[] ( unsigned int  i) const

get_item operator for the joint array

Returns
the joint value at position i, starting from 0
Precondition
0 != size (ie non-default constructor or resize() called)

Definition at line 74 of file jntarray.cpp.

◆ resize()

void KDL::JntArray::resize ( unsigned int  newSize)

Resize the array

Warning
This causes a dynamic allocation (and potentially
also a dynamic deallocation). This will negatively affect real-time performance!
Postcondition
newSize == rows()
NULL != data
all elements in data have 0 value

Definition at line 66 of file jntarray.cpp.

References SetToZero.

Referenced by convert_channels(), and iTaSC::Armature::finalize().

◆ rows()

unsigned int KDL::JntArray::rows ( ) const

Friends And Related Function Documentation

◆ Add

void Add ( const JntArray src1,
const JntArray src2,
JntArray dest 
)
friend

Function to add two joint arrays, all the arguments must have the same size: A + B = C. This function is aliasing-safe, A or B can be the same array as C.

Parameters
src1A
src2B
destC

Definition at line 103 of file jntarray.cpp.

◆ Divide

void Divide ( const JntArray src,
const double factor,
JntArray dest 
)
friend

Function to divide all the array values with a scalar factor: A/b=C. This function is aliasing-safe, A can be the same array as C.

Parameters
srcA
factorb
destC

Definition at line 124 of file jntarray.cpp.

◆ Equal

bool Equal ( const JntArray src1,
const JntArray src2,
double  eps 
)
friend

Function to check if two arrays are the same with a precision of eps

Parameters
src1
src2
epsdefault: epsilon
Returns
true if each element of src1 is within eps of the same element in src2, or if both src1 and src2 have no data (ie 0==rows())

Definition at line 146 of file jntarray.cpp.

◆ Multiply

void Multiply ( const JntArray src,
const double factor,
JntArray dest 
)
friend

Function to multiply all the array values with a scalar factor: A*b=C. This function is aliasing-safe, A can be the same array as C.

Parameters
srcA
factorb
destC

Definition at line 117 of file jntarray.cpp.

◆ MultiplyJacobian

void MultiplyJacobian ( const Jacobian jac,
const JntArray src,
Twist dest 
)
friend

Function to multiply a KDL::Jacobian with a KDL::JntArray to get a KDL::Twist, it should not be used to calculate the forward velocity kinematics, the solver classes are built for this purpose. J*q = t

Parameters
jacJ
srcq
destt
Postcondition
dest==Twist::Zero() if 0==src.rows() (ie src is empty)

Definition at line 131 of file jntarray.cpp.

◆ operator==

bool operator== ( const JntArray src1,
const JntArray src2 
)
friend

Definition at line 155 of file jntarray.cpp.

◆ SetToZero

void SetToZero ( JntArray array)
friend

Function to set all the values of the array to 0

Parameters
array

Definition at line 140 of file jntarray.cpp.

Referenced by JntArray(), and resize().

◆ Subtract

void Subtract ( const JntArray src1,
const JntArray src2,
JntArray dest 
)
friend

Function to subtract two joint arrays, all the arguments must have the same size: A - B = C. This function is aliasing-safe, A or B can be the same array as C.

Parameters
src1A
src2B
destC

Definition at line 110 of file jntarray.cpp.


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