00001 00002 // 00003 // Title : FKJacobianMitsubishiPA-10.h 00004 // Project : OSCAR 00005 // Created : January 5, 2005 00006 // Author : Chalongrath Pholsiri 00007 // Platforms : All 00008 // Copyright : Copyright© The University of Texas at Austin, 2002. All rights reserved. 00009 // 00010 // This software and documentation constitute an unpublished work 00011 // and contain valuable trade secrets and proprietary information 00012 // belonging to University. None of the foregoing material may be 00013 // copied or duplicated or disclosed without the express, written 00014 // permission of University. UNIVERSITY EXPRESSLY DISCLAIMS ANY 00015 // AND ALL WARRANTIES CONCERNING THIS SOFTWARE AND DOCUMENTATION, 00016 // INCLUDING ANY WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A 00017 // PARTICULAR PURPOSE, AND WARRANTIES OF PERFORMANCE, AND ANY WARRANTY 00018 // THAT MIGHT OTHERWISE ARISE FROM COURSE OF DEALING OR USAGE OF TRADE. 00019 // NO WARRANTY IS EITHER EXPRESS OR IMPLIED WITH RESPECT TO THE USE OF 00020 // THE SOFTWARE OR DOCUMENTATION. Under no circumstances shall 00021 // University be liable for incidental, special, indirect, direct or 00022 // consequential damages or loss of profits, interruption of business, 00023 // or related expenses which may arise from use of software or documentation, 00024 // including but not limited to those resulting from defects in software 00025 // and/or documentation, or loss or inaccuracy of data of any kind. 00026 // Purpose : Class to compute a semi closed-form Jacobian for 00027 // the Mitsubishi robot 00028 // 00029 //---------------------------------------------------------------------------- 00030 // 00031 // $Revisions$ 00032 // 00033 // 00035 00036 #ifndef FKJacobianMitsubishi_hpp 00037 #define FKJacobianMitsubishi_hpp 00038 00039 #include "ForwardKinematics/FKJacobianBase.h" 00040 #include "ForwardKinematics/FKPositionMitsubishiPA-10.h" 00041 00042 00044 namespace OSCAR { 00045 00053 class FKJacobianMitsubishi : public FKPositionMitsubishi, public FKJacobianBase 00054 { 00055 00056 public: 00057 00093 FKJacobianMitsubishi(const String& dhParameterFileName, OSCARError& err = DUMMY_ERROR(noError), const String& name = String(" ")); 00094 00095 00111 FKJacobianMitsubishi(const DHData& DHparams, OSCARError& err = DUMMY_ERROR(noError), const String& name = String(" ")); 00112 00113 00118 FKJacobianMitsubishi(const FKJacobianMitsubishi& fkj); 00119 00120 virtual ~FKJacobianMitsubishi(); 00121 00127 FKJacobianMitsubishi& operator=(const FKJacobianMitsubishi& fkj); 00128 00142 const Xform* GetHandPose(const Vector& inputVector); 00143 00160 const Matrix* GetJacobian(const Vector& jointVector); 00161 00172 const Matrix* GetJacobian(); 00173 00180 const Matrix* GetJacobianTranspose( ) { return jacobianTranspose; } 00181 00193 void SetBase(const Xform& pose); 00194 00206 void SetBase(const Vector3D& location); 00207 00208 protected: 00209 00210 Matrix* jacobian; // holds [6 x n] Jacobian 00211 Matrix* jacobianTranspose; 00212 Vector* currentJointVector; 00213 00214 // defined to avoid alloc/deallocation of temporaries 00215 Xform basePoseInv, modifiedHand; 00216 Matrix spatialXform; 00217 Matrix* tempJacobian; 00218 00219 void calculateJacobian(); 00220 void fillSpatialXform(); 00221 }; 00222 00223 } 00224 #endif // FKJacobianMitsubishi_hpp
| RRG Homepage | OSCAR Overview | OSCAR Tutorials | Simulations |