Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

ControlInformation.h

Go to the documentation of this file.
00001 
00002 //
00003 //       Title           : ControlInformation.h
00004 //       Project         : 
00005 //       Created         : Mon Dec 23 11:09:55 2002
00006 //       Author          : Chalongrath Pholsiri
00007 //       Platforms       : All
00008 //       Copyright       : The University of Texas at Austin
00009 //                         All Rights Reserved.
00010 //       Access          : Company Confidential
00011 //       Purpose         : Declaration of ControlInformation class
00012 //
00013 //----------------------------------------------------------------------------
00014 //
00015 //       Classes:
00016 //               <none>
00017 //
00018 //       Global Functions:
00019 //               <none>
00020 //
00021 //       Global Variables:
00022 //               <none>
00023 //
00024 //----------------------------------------------------------------------------
00025 //
00026 //       $Revisions$
00027 //
00028 //       $Log: ControlInformation.h,v $
00029 //       Revision 1.3  2005/03/14 21:51:01  pmarch
00030 //       Added to namespace OSCAR and removed "RR" from front of class names.
00031 //
00032 //       Revision 1.2  2004/07/26 22:10:20  chetan
00033 //       Made changes to compile with Warning Level 4 and also under the latest C++ standard
00034 //
00035 //       Revision 1.1  2004/06/01 21:59:34  dinesh
00036 //       Workspace for the Control Systems Domain
00037 //
00038 //
00040 
00041 #ifndef ControlInformation_hpp
00042 #define ControlInformation_hpp
00043 
00044 #include "Math/Vector.h"
00045 #include "Math/Matrix.h"
00046 
00048 namespace OSCAR {
00049 
00050   // This class is similar to RRInformation for it serves as to eliminate repeated calculations of
00051   // some important elements used in control algorithms.
00052 
00053   class ControlInformation
00054   {
00055   public:
00056           ControlInformation(unsigned int dof, unsigned int noOutputs);
00057           ~ControlInformation();
00058 
00059           Vector *gravityTorques;                       // n-vector of gravity torques
00060           Vector *velocityTorques;                      // n-vector of velocity torques
00061           Vector *velInducedAcc;                        // JdotQdot term
00062 
00063           Matrix *jacobian;                                     // m X n EEF Jacobian
00064           Matrix *jacobianTranspose;            // transpose of Jacobian
00065           Matrix *jacobianInverse;                      // inverse or pseudoinverse of Jacobian
00066           Matrix *inertiaJacobianInverse;       // inertia-weighted pseudoinverse of Jacobian
00067           Matrix *inertia;                                      // n X n inertia matrix (M)
00068           Matrix *inertiaInverse;                       // inverse of inertia matrix    (M^-1)
00069           Matrix *operationalInertia;           // m X m operational space inertia matrix       (JM^-1Jt)^-1
00070 
00071           // the followings are for null space calculations and valid only for redundant robots
00072           Matrix *nullProjector;                        // n X n null space projector   (I - J# J)
00073                                                                                   // J# could be either jacobianInverse of inertiaJacobianInverse
00074                                                                                   // depending on the algorithm
00075 
00076           Matrix *nullJacobian;                         // r X n null space Jacobian matrix
00077           Matrix *minNullProjector;                     // n X r minimal set null space projector
00078           Matrix *nullJacobianDot;                      // time derivative of null space Jacobian matrix
00079           Matrix *prevNullJacobian;
00080 
00081           double timeStep;
00082   };
00083 
00084 }
00085 #endif // ControlInformation_hpp
00086 
RRG Homepage OSCAR Overview OSCAR Tutorials Simulations