00001 /* **-*-c++-*-************************************************************** 00002 Copyright (C)2003 David Jung <opensim@pobox.com> 00003 00004 This program/file is free software; you can redistribute it and/or modify 00005 it under the terms of the GNU General Public License as published by 00006 the Free Software Foundation; either version 2 of the License, or 00007 (at your option) any later version. 00008 00009 This program is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 GNU General Public License for more details. (http://www.gnu.org) 00013 00014 You should have received a copy of the GNU General Public License 00015 along with this program; if not, write to the Free Software 00016 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00017 00018 $Id: KinematicsTest 1036 2004-02-11 20:48:55Z jungd $ 00019 $Revision: 1.3 $ 00020 $Date: 2004-02-11 15:48:55 -0500 (Wed, 11 Feb 2004) $ 00021 $Author: jungd $ 00022 00023 ****************************************************************************/ 00024 00025 #ifndef _ROBOT_CONTROL_KINEMATICS_KINEMATICSTEST_ 00026 #define _ROBOT_CONTROL_KINEMATICS_KINEMATICSTEST_ 00027 00028 #include <cppunit/extensions/HelperMacros.h> 00029 00030 #include <base/Matrix> 00031 #include <base/Expression> 00032 #include <robot/TestRobot> 00033 #include <robot/control/kinematics/LeastNormIKSolver> 00034 #include <robot/control/kinematics/IKOR> 00035 #include <robot/control/kinematics/OldIKOR> 00036 00037 00038 namespace robot { 00039 namespace control { 00040 namespace kinematics { 00041 00042 00043 class KinematicsTest : public CppUnit::TestFixture 00044 { 00045 static const Int numOfTests = 1;//4; 00046 00047 CPPUNIT_TEST_SUITE( KinematicsTest ); 00048 00049 CPPUNIT_TEST( testNoMotion ); 00050 // CPPUNIT_TEST_EXCEPTION( testImpossibleMotion, std::invalid_argument ); 00051 // CPPUNIT_TEST( testLeastNormCriteria ); 00052 00053 CPPUNIT_TEST_SUITE_END(); 00054 00055 protected: 00056 static const Int dof = 6; 00057 static const Int dof2 = 5; 00058 00059 // D-H param vectors for test robot manipulator 00060 base::IVector jt, jt2; // joint type 00061 base::Vector alpha, a, d, theta; 00062 base::Vector alpha2, a2, d2, theta2; 00063 00064 ref<robot::TestRobot> robot, robot2; 00065 robot::KinematicChain chain, chain2; 00066 00067 ref<IKOR> ikor; 00068 ref<OldIKOR> oldikor; 00069 ref<LeastNormIKSolver> lnsolver; 00070 00071 00072 public: 00073 KinematicsTest(); 00074 00075 int countTestCases () const { return numOfTests; } 00076 00077 void setUp(); 00078 void tearDown(); 00079 00080 void testNoMotion(); 00081 void testImpossibleMotion(); 00082 void testLeastNormCriteria(); 00083 00084 }; 00085 00086 00087 } // namespace kinematics 00088 } // namespace control 00089 } // namespace robot 00090 00091 #endif