00001 #ifndef PL_FORTEST_h
00002 #define PL_FORTEST_h 1
00003
00004 #pragma warning( disable : 4250 )
00005
00006 #include "Kinematics/Jacobian.h"
00007 #include "Robots/R_OpenChain.h"
00008 #include "geometry/Frame.h"
00009 #include "planners/ik_mpep/PL_MPEP.h"
00010 #include "planners/atace/LocalPlanner.h"
00011
00012 class PL_ForTest: public PL_MPEP
00013 {
00014 public:
00015 PL_ForTest();
00016 virtual ~PL_ForTest();
00017
00018
00019 virtual void SetCollisionDetector (CD_BasicStyle* collisionDetector);
00020 virtual bool PL_ForTest::DrawExplicit () const;
00021 virtual bool Plan ();
00022
00023 void SetStepAhead(int nAhead){m_nStepAhead = nAhead;};
00024 void SetMethodUsed(int nMethod){m_bUseJacobianSMGExploration=(nMethod==0);};
00025 void SetSMGStepSize(int dStep){m_nSMGStepSize = dStep;};
00026 void SetUseBacktracking(bool bUse){m_bUseBacktracking = bUse;};
00027 void SetObstacleAvoidLP(bool bUse){m_bUseObstacleAvoidLP = bUse;};
00028
00029 protected:
00030 VectorN ComputeDeltaEndEff(Frame &fromPose, Frame &toPose);
00031 bool FindLocalPath(Configuration &start, int nStart, int nEnd, PA_Points &localPath);
00032 bool FindLocalPath2(Configuration &start, int nStart, int nEnd, PA_Points &localPath);
00033 int Establish_Self_Motion_Graph(dynamic_trees &tr, vertex extended);
00034 int Extend_Node_Self_Motion_Graph(vertex g_vertex, Configuration **nextConf);
00035 int Extend_Node_Self_Motion_Graph_Jacobian(vertex g_vertex, Configuration **nextConf);
00036 bool AdjustConfiguration(Configuration &config, int nPose);
00037 bool IsJointWithinLimits(Configuration& config);
00038 void RemoveNode(vertex failVert);
00039
00040 protected:
00041 void ResetStatistics();
00042 void LogStatistics();
00043
00044 protected:
00045 R_OpenChain * m_pRobot;
00046 int m_nDof;
00047 int m_nToolFrame;
00048 Frame m_frEndEffector;
00049 CJacobian *m_pJacobian;
00050 Jacobian_TrajPlanner *m_pLocalPlanner;
00051
00052 protected:
00053 int m_nStepAhead;
00054 bool m_bUseJacobianSMGExploration;
00055 bool m_bUseBacktracking;
00056 bool m_bUseObstacleAvoidLP;
00057 double m_nSMGStepSize;
00058
00059 protected:
00060 int m_nSMGNodes;
00061 int m_nSMGraphs;
00062 };
00063 #endif