LinkStewart definitions. More...
#include <stewart.h>
Public Member Functions | |
Real | ActuationForce (const Matrix J1, const ColumnVector C, const int Index, const Real Gravity=GRAVITY) |
Return the actuation force that power the prismatic joint. | |
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. | |
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. | |
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. | |
ReturnMatrix | Find_a (const Matrix _wRp, const ColumnVector _q) |
Return the position of the attachment point on the platform. | |
ReturnMatrix | Find_ACM1 (const Real dl, const Real ddl) |
Return the acceleration of the center of mass of the first part of the link. | |
ReturnMatrix | Find_AngularKin (const Real dl, const Real ddl) |
Return the angular speed (Column 1) and angular acceleration (Column 2) of the link. | |
ReturnMatrix | Find_da (const ColumnVector dq, const ColumnVector Omega) |
Return the speed of the attachment point of the link on the platform. | |
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. | |
Real | Find_Lenght () |
Return the lenght of the link. | |
ReturnMatrix | Find_N (const Real Gravity=GRAVITY) |
Return the intermediate matrix N for force calculation. | |
ReturnMatrix | Find_UnitV () |
Return the unit vector of the link direction. | |
ReturnMatrix | Find_VctC () |
Return the unit vector of the universal joint along the third axis of the fixed revolute joint. | |
ReturnMatrix | Find_VctU () |
Return the unit vector of the universal joint along the first axis of the fixed revolute joint. | |
ReturnMatrix | Find_VctV () |
Return the unit vector of the universal joint along the second axis of the fixed revolute joint. | |
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_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. | |
Real | get_m1 () const |
Return the mass of part 1. | |
Real | get_m2 () const |
Return the mass of part 2. | |
LinkStewart (const ColumnVector &InitLink, const Matrix wRp, const ColumnVector q) | |
Constructor. | |
LinkStewart (const LinkStewart &x) | |
Copy constructor. | |
LinkStewart () | |
Default Constructor. | |
void | LTransform (const Matrix wRp, const ColumnVector q) |
Recalculate the link's parameters related to the platform position. | |
ReturnMatrix | Moment () |
Return the moment component transmitted to the link from the base or the platform (depending where is the universal joint) | |
ReturnMatrix | NormalForce () |
Return the normal component of the reaction force of the platform acting on the link. | |
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_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. | |
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 | tau_LTransform (const Real dl, const Real ddl, const Real Gravity) |
Recalculate the link's parameters related to the platform dynamics. | |
~LinkStewart () | |
Destructor. | |
Public Attributes | |
ColumnVector | ACM1 |
Acceleration of the first center of mass. | |
ColumnVector | aPos |
Position of the platform attachment point. | |
ColumnVector | da |
Speed of the platform attachment point . | |
ColumnVector | dda |
Acceleration of the platform attachment point. | |
ColumnVector | gravity |
Gravity vector. | |
Real | L |
Lenght of the link. | |
ColumnVector | LAlpha |
Angular acceleration of the link. | |
ColumnVector | LOmega |
Angular speed of the link. | |
ColumnVector | M |
Moment vector of the link. | |
ColumnVector | N |
Intermediate vector for dynamics calculations . | |
ColumnVector | UnitV |
Unit Vector of the link. | |
ColumnVector | Vc |
Unit Vector of the universal joint (Rotational). | |
ColumnVector | Vu |
Unit Vector of the universal joint (Rotational). | |
ColumnVector | Vv |
Unit Vector of the universal joint (Rotational). | |
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 | 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. | |
Real | m1 |
Mass of part 1. | |
Real | m2 |
Mass of part 2. | |
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 87 of file stewart.cpp.
LinkStewart::LinkStewart | ( | const LinkStewart & | x | ) |
Copy constructor.
Definition at line 126 of file stewart.cpp.
Default Constructor.
Definition at line 45 of file stewart.cpp.
Destructor.
Definition at line 154 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 759 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 727 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 329 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 347 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 378 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 802 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 585 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 438 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 464 of file stewart.cpp.
Return the lenght of the link.
where:
Definition at line 486 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 641 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 416 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 548 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 503 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 527 of file stewart.cpp.
ReturnMatrix LinkStewart::get_ap | ( | ) | const |
Return the position vector of platform attachement point.
Definition at line 255 of file stewart.cpp.
ReturnMatrix LinkStewart::get_b | ( | ) | const |
Return the position vector of base attachement point.
Definition at line 261 of file stewart.cpp.
Real LinkStewart::get_I1aa | ( | ) | const |
Return the value of inertia along the coaxial axis of part 1.
Definition at line 267 of file stewart.cpp.
Real LinkStewart::get_I1nn | ( | ) | const |
Return the value of inertia along the tangent axis of part 1.
Definition at line 273 of file stewart.cpp.
Real LinkStewart::get_I2aa | ( | ) | const |
Return the value of inertia along the coaxial axis of part 2.
Definition at line 279 of file stewart.cpp.
Real LinkStewart::get_I2nn | ( | ) | const |
Return the value of inertia along the tangent axis of part 2.
Definition at line 285 of file stewart.cpp.
Real LinkStewart::get_Lenght1 | ( | ) | const |
Return the lenght between platform attachment point and center of mass of part 1.
Definition at line 303 of file stewart.cpp.
Real LinkStewart::get_Lenght2 | ( | ) | const |
Return the lenght between base attachment point and center of mass of part 2.
Definition at line 309 of file stewart.cpp.
Real LinkStewart::get_m1 | ( | ) | const |
Return the mass of part 1.
Definition at line 291 of file stewart.cpp.
Real LinkStewart::get_m2 | ( | ) | const |
Return the mass of part 2.
Definition at line 297 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 315 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 666 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 687 of file stewart.cpp.
const LinkStewart & LinkStewart::operator= | ( | const LinkStewart & | x | ) |
Overload = operator.
Definition at line 159 of file stewart.cpp.
void LinkStewart::set_ap | ( | const ColumnVector | NewAp | ) |
Set the position vector of platform attachment point.
Definition at line 198 of file stewart.cpp.
void LinkStewart::set_b | ( | const ColumnVector | Newb | ) |
Set the position vector of the base attachment point.
Definition at line 189 of file stewart.cpp.
void LinkStewart::set_I1aa | ( | const Real | NewI1aa | ) |
Set the value of inertia along the coaxial axis of part 1.
Definition at line 207 of file stewart.cpp.
void LinkStewart::set_I1nn | ( | const Real | NewI1nn | ) |
Set the value of inertia along the tangent axis of part 1.
Definition at line 213 of file stewart.cpp.
void LinkStewart::set_I2aa | ( | const Real | NewI2aa | ) |
Set the value of inertia along the coaxial axis of part 2.
Definition at line 219 of file stewart.cpp.
void LinkStewart::set_I2nn | ( | const Real | NewI2nn | ) |
Set the value of inertia along the tangent axis of part 2.
Definition at line 225 of file stewart.cpp.
void LinkStewart::set_Lenght1 | ( | const Real | NewLenght1 | ) |
Set the lenght between platform attachment point and center of mass of part 1.
Definition at line 243 of file stewart.cpp.
void LinkStewart::set_Lenght2 | ( | const Real | NewLenght2 | ) |
Set the lenght between base attachment point and center of mass of part 2.
Definition at line 249 of file stewart.cpp.
void LinkStewart::set_m1 | ( | const Real | Newm1 | ) |
Set the mass of part 1.
Definition at line 231 of file stewart.cpp.
void LinkStewart::set_m2 | ( | const Real | Newm2 | ) |
Set the mass of part 2.
Definition at line 237 of file stewart.cpp.
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 366 of file stewart.cpp.
ColumnVector LinkStewart::ACM1 |
ColumnVector LinkStewart::ap [private] |
ColumnVector LinkStewart::aPos |
ColumnVector LinkStewart::b [private] |
ColumnVector LinkStewart::da |
ColumnVector LinkStewart::dda |
ColumnVector LinkStewart::gravity |
Real LinkStewart::I1aa [private] |
Real LinkStewart::I1nn [private] |
Real LinkStewart::I2aa [private] |
Real LinkStewart::I2nn [private] |
ColumnVector LinkStewart::LAlpha |
Real LinkStewart::Lenght1 [private] |
Real LinkStewart::Lenght2 [private] |
ColumnVector LinkStewart::LOmega |
ColumnVector LinkStewart::M |
Real LinkStewart::m1 [private] |
Real LinkStewart::m2 [private] |
ColumnVector LinkStewart::N |
ColumnVector LinkStewart::UnitV |
ColumnVector LinkStewart::Vc |
ColumnVector LinkStewart::Vu |
ColumnVector LinkStewart::Vv |