ROBOOP, A Robotics Object Oriented Package in C++
|
LinkStewart definitions. More...
#include <stewart.h>
Public Member Functions | |
LinkStewart (const ColumnVector &InitLink, const Matrix wRp, const ColumnVector q) | |
Constructor. More... | |
LinkStewart (const LinkStewart &x) | |
Copy constructor. | |
LinkStewart () | |
Default Constructor. | |
~LinkStewart () | |
Destructor. | |
const LinkStewart & | operator= (const LinkStewart &x) |
void | set_ap (const ColumnVector NewAp) |
Set the position vector of platform attachment point. | |
void | set_b (const ColumnVector Newb) |
Set the position vector of the base attachment point. | |
void | set_I1aa (const Real NewI1aa) |
Set the value of inertia along the coaxial axis of part 1. | |
void | set_I1nn (const Real NewI1nn) |
Set the value of inertia along the tangent axis of part 1. | |
void | set_I2aa (const Real NewI2aa) |
Set the value of inertia along the coaxial axis of part 2. | |
void | set_I2nn (const Real NewI2nn) |
Set the value of inertia along the tangent axis of part 2. | |
void | set_m1 (const Real Newm1) |
Set the mass of part 1. | |
void | set_m2 (const Real Newm2) |
Set the mass of part 2. | |
void | set_Lenght1 (const Real NewLenght1) |
Set the lenght between platform attachment point and center of mass of part 1. | |
void | set_Lenght2 (const Real NewLenght2) |
Set the lenght between base attachment point and center of mass of part 2. | |
ReturnMatrix | get_ap () const |
Return the position vector of platform attachement point. | |
ReturnMatrix | get_b () const |
Return the position vector of base attachement point. | |
Real | get_I1aa () const |
Return the value of inertia along the coaxial axis of part 1. | |
Real | get_I1nn () const |
Return the value of inertia along the tangent axis of part 1. | |
Real | get_I2aa () const |
Return the value of inertia along the coaxial axis of part 2. | |
Real | get_I2nn () const |
Return the value of inertia along the tangent axis of part 2. | |
Real | get_m1 () const |
Return the mass of part 1. | |
Real | get_m2 () const |
Return the mass of part 2. | |
Real | get_Lenght1 () const |
Return the lenght between platform attachment point and center of mass of part 1. | |
Real | get_Lenght2 () const |
Return the lenght between base attachment point and center of mass of part 2. | |
void | LTransform (const Matrix wRp, const ColumnVector q) |
Recalculate the link's parameters related to the platform position. More... | |
void | d_LTransform (const ColumnVector dq, const ColumnVector Omega, const Real dl, const Real ddl) |
Recalculate the link's parameters related to the platform speed. More... | |
void | dd_LTransform (const ColumnVector ddq, const ColumnVector Omega, const ColumnVector Alpha, const Real dl, const Real ddl) |
Recalculate the link's parameters related to the platform acceleration. More... | |
void | tau_LTransform (const Real dl, const Real ddl, const Real Gravity) |
Recalculate the link's parameters related to the platform dynamics. More... | |
ReturnMatrix | Find_UnitV () |
Return the unit vector of the link direction. More... | |
ReturnMatrix | Find_a (const Matrix _wRp, const ColumnVector _q) |
Return the position of the attachment point on the platform. More... | |
ReturnMatrix | Find_da (const ColumnVector dq, const ColumnVector Omega) |
Return the speed of the attachment point of the link on the platform. More... | |
ReturnMatrix | Find_dda (const ColumnVector ddq, const ColumnVector Omega, const ColumnVector Alpha) |
Return the acceleration of the attachment point of the link on the platform. More... | |
Real | Find_Lenght () |
Return the lenght of the link. More... | |
ReturnMatrix | Find_VctU () |
Return the unit vector of the universal joint along the first axis of the fixed revolute joint. More... | |
ReturnMatrix | Find_VctV () |
Return the unit vector of the universal joint along the second axis of the fixed revolute joint. More... | |
ReturnMatrix | Find_VctC () |
Return the unit vector of the universal joint along the third axis of the fixed revolute joint. More... | |
ReturnMatrix | Find_AngularKin (const Real dl, const Real ddl) |
Return the angular speed (Column 1) and angular acceleration (Column 2) of the link. More... | |
ReturnMatrix | NormalForce () |
Return the normal component of the reaction force of the platform acting on the link. More... | |
ReturnMatrix | AxialForce (const Matrix J1, const ColumnVector C, const int Index) |
Return the axial component of the reaction force of the platform acting on the link. More... | |
ReturnMatrix | Find_N (const Real Gravity=GRAVITY) |
Return the intermediate matrix N for force calculation. More... | |
ReturnMatrix | Moment () |
Return the moment component transmitted to the link from the base or the platform (depending where is the universal joint) More... | |
Real | ActuationForce (const Matrix J1, const ColumnVector C, const int Index, const Real Gravity=GRAVITY) |
Return the actuation force that power the prismatic joint. More... | |
ReturnMatrix | Find_ACM1 (const Real dl, const Real ddl) |
Return the acceleration of the center of mass of the first part of the link. More... | |
Public Attributes | |
ColumnVector | UnitV |
Unit Vector of the link. | |
ColumnVector | aPos |
Position of the platform attachment point. | |
ColumnVector | Vu |
Unit Vector of the universal joint (Rotational). | |
ColumnVector | Vc |
Unit Vector of the universal joint (Rotational). | |
ColumnVector | Vv |
Unit Vector of the universal joint (Rotational). | |
ColumnVector | da |
Speed of the platform attachment point . | |
ColumnVector | dda |
Acceleration of the platform attachment point. | |
ColumnVector | LOmega |
Angular speed of the link. | |
ColumnVector | LAlpha |
Angular acceleration of the link. | |
ColumnVector | ACM1 |
Acceleration of the first center of mass. | |
ColumnVector | M |
Moment vector of the link. | |
ColumnVector | N |
Intermediate vector for dynamics calculations . | |
ColumnVector | gravity |
Gravity vector. | |
Real | L |
Lenght of the link. | |
Private Attributes | |
ColumnVector | ap |
Platform coordinates of the link in the local frame. | |
ColumnVector | b |
Base coordinates of the link int the global frame. | |
Real | I1aa |
Inertia along the coaxial axis for part 1. | |
Real | I1nn |
Inertia along the tangent axis for part 1. | |
Real | I2aa |
Inertia along the coaxial axis for part 2. | |
Real | I2nn |
Inertia along the tangent axis for part 2. | |
Real | m1 |
Mass of part 1. | |
Real | m2 |
Mass of part 2. | |
Real | Lenght1 |
Lenght between the mass center (part 1) and the platform attachment. | |
Real | Lenght2 |
Lenght between the mass center (part 2) and the base attachment. | |
Friends | |
class | Stewart |
LinkStewart definitions.
A Stewart platform is composed 6 links. This class describe the proprities of each of the platform's link.
LinkStewart::LinkStewart | ( | const ColumnVector & | InitLink, |
const Matrix | wRp, | ||
const ColumnVector | q | ||
) |
Constructor.
InitLink,: | LinkStewart initialization matrix. |
wRp,: | Rotation matrix |
q,: | Position of the platform |
Definition at line 84 of file stewart.cpp.
Real LinkStewart::ActuationForce | ( | const Matrix | J1, |
const ColumnVector | C, | ||
const int | Index, | ||
const Real | Gravity = GRAVITY |
||
) |
Return the actuation force that power the prismatic joint.
J1,: | First intermidiate jacobian matrix (find with Stewart::Find_InvJacob1()) |
C,: | Intermidiate matrix in the dynamics calculation (find with Stewart::Find_C()) |
Index,: | Number of the link (1 to 6) |
Gravity,: | Gravity (9.81) |
Eq:
Where:
Definition at line 756 of file stewart.cpp.
ReturnMatrix LinkStewart::AxialForce | ( | const Matrix | J1, |
const ColumnVector | C, | ||
const int | Index | ||
) |
Return the axial component of the reaction force of the platform acting on the link.
J1,: | First intermidiate jacobian matrix (find with Stewart::Find_InvJacob1()) |
C,: | Intermidiate matrix in the dynamics calculation (find with Stewart::Find_C()) |
Index,: | Number of the link (1 to 6) |
Eq:
Where:
Definition at line 724 of file stewart.cpp.
void LinkStewart::d_LTransform | ( | const ColumnVector | dq, |
const ColumnVector | Omega, | ||
const Real | dl, | ||
const Real | ddl | ||
) |
Recalculate the link's parameters related to the platform speed.
dq,: | Speed of the platform. |
Omega,: | Agular speed of the platform. |
dl,: | Extension rate of the link. |
ddl,: | Extension acceleration of the link. |
Definition at line 326 of file stewart.cpp.
void LinkStewart::dd_LTransform | ( | const ColumnVector | ddq, |
const ColumnVector | Omega, | ||
const ColumnVector | Alpha, | ||
const Real | dl, | ||
const Real | ddl | ||
) |
Recalculate the link's parameters related to the platform acceleration.
ddq,: | Acceleration of the platform. |
Omega,: | Angular speed of the platform. |
Alpha,: | Angular acceleration of the platform. |
dl,: | Extension rate of the link. |
ddl,: | Extension acceleration of the link. |
Definition at line 344 of file stewart.cpp.
ReturnMatrix LinkStewart::Find_a | ( | const Matrix | wRp, |
const ColumnVector | q | ||
) |
Return the position of the attachment point on the platform.
wRp,: | Rotation matrix. |
q,: | Position of the platform. |
The position of the attachment point on the platform is equal to the position of the center of the platform plus the position of the attach (in the local referencial) multiplicated by the rotation matrix:
where:
Definition at line 375 of file stewart.cpp.
ReturnMatrix LinkStewart::Find_ACM1 | ( | const Real | dl, |
const Real | ddl | ||
) |
Return the acceleration of the center of mass of the first part of the link.
dl,: | Extention rate of the link |
ddl,: | Extention acceleration of the link |
Eq:
Where:
Definition at line 799 of file stewart.cpp.
ReturnMatrix LinkStewart::Find_AngularKin | ( | const Real | dl, |
const Real | ddl | ||
) |
Return the angular speed (Column 1) and angular acceleration (Column 2) of the link.
dl,: | Extention rate of the link |
ddl,: | Extention acceleration of the link |
Eqs for angular speed:
Eqs for angular acceleration:
where:
Definition at line 582 of file stewart.cpp.
ReturnMatrix LinkStewart::Find_da | ( | const ColumnVector | dq, |
const ColumnVector | Omega | ||
) |
Return the speed of the attachment point of the link on the platform.
dq,: | Speed of the platform |
Omega,: | Angular speed of the platform |
This function represent the equation:
Where:
Definition at line 435 of file stewart.cpp.
ReturnMatrix LinkStewart::Find_dda | ( | const ColumnVector | ddq, |
const ColumnVector | Omega, | ||
const ColumnVector | Alpha | ||
) |
Return the acceleration of the attachment point of the link on the platform.
ddq,: | Acceleration of the platform. |
Omega,: | Angular speed of the platform. |
Alpha,: | Angular acceleration of the platform |
This function represent the equation:
Where:
Definition at line 461 of file stewart.cpp.
Real LinkStewart::Find_Lenght | ( | ) |
Return the lenght of the link.
where:
Definition at line 483 of file stewart.cpp.
ReturnMatrix LinkStewart::Find_N | ( | const Real | Gravity = GRAVITY | ) |
Return the intermediate matrix N for force calculation.
Gravity,: | Gravity (9.81) |
Eqs:
Eq for ( is found with the Find_ACM1 function):
Where:
Definition at line 638 of file stewart.cpp.
ReturnMatrix LinkStewart::Find_UnitV | ( | ) |
Return the unit vector of the link direction.
The unit vector representing the orientation of the link is equal to:
where:
Definition at line 413 of file stewart.cpp.
ReturnMatrix LinkStewart::Find_VctC | ( | ) |
Return the unit vector of the universal joint along the third axis of the fixed revolute joint.
Eq:
Where:
Definition at line 545 of file stewart.cpp.
ReturnMatrix LinkStewart::Find_VctU | ( | ) |
Return the unit vector of the universal joint along the first axis of the fixed revolute joint.
This vector is equal to the unitary projection of the link unit vector on the X-Z plane:
; ;
where:
Definition at line 500 of file stewart.cpp.
ReturnMatrix LinkStewart::Find_VctV | ( | ) |
Return the unit vector of the universal joint along the second axis of the fixed revolute joint.
Eq:
Where:
Definition at line 524 of file stewart.cpp.
void LinkStewart::LTransform | ( | const Matrix | wRp, |
const ColumnVector | q | ||
) |
Recalculate the link's parameters related to the platform position.
wRp,: | rotation matrix. |
q,: | Position of the platform. |
Definition at line 312 of file stewart.cpp.
ReturnMatrix LinkStewart::Moment | ( | ) |
Return the moment component transmitted to the link from the base or the platform (depending where is the universal joint)
Eq:
Where:
Definition at line 663 of file stewart.cpp.
ReturnMatrix LinkStewart::NormalForce | ( | ) |
Return the normal component of the reaction force of the platform acting on the link.
Eq:
Where:
Definition at line 684 of file stewart.cpp.
const LinkStewart & LinkStewart::operator= | ( | const LinkStewart & | x | ) |
void LinkStewart::tau_LTransform | ( | const Real | dl, |
const Real | ddl, | ||
const Real | Gravity | ||
) |
Recalculate the link's parameters related to the platform dynamics.
dl,: | Extension rate of the link. |
ddl,: | Extension acceleration of the link. |
Gravity,: | Gravity (9.81). |
Definition at line 363 of file stewart.cpp.