00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _ROBOT_SIM_IKORTESTER_
00026 #define _ROBOT_SIM_IKORTESTER_
00027
00028 #include <robot/sim/sim>
00029
00030 #include <base/ReferencedObject>
00031 #include <base/PathName>
00032 #include <base/Matrix>
00033 #include <base/Named>
00034 #include <base/Time>
00035 #include <robot/sim/IKORTest>
00036
00037
00038 namespace robot {
00039 namespace sim {
00040
00041
00042
00043 class IKORTester : public base::Named, public base::ReferencedObject
00044 {
00045 public:
00046 IKORTester(ref<base::VFileSystem> fs, ref<base::Cache> cache);
00047
00048 virtual String className() const { return String("IKORTester"); }
00049
00050 void executeTests(ref<IKORTest> itest,
00051 bool saveResults=false, base::PathName alternateOutputFileName = base::PathName());
00052
00053 protected:
00054 base::Time executeTest(IKORTest::Test& test, base::Time simTime, ref<SimulatedBasicEnvironment> env,
00055 ref<SimulatedRobot> robot, Int testManipulatorIndex);
00056
00057 base::Vector calcEEVector(const IKORTest::Test& test, const KinematicChain& chain, const base::Vector& q) const;
00058
00059 ref<base::VFileSystem> filesystem;
00060 ref<base::Cache> cache;
00061 };
00062
00063
00064 }
00065 }
00066
00067 #endif