00001 00002 // 00003 //Contents: Class TrajPlanner; base class of local planners used in APACE. 00004 // Class RRT_TrajPlanner; probabilistic local planner. 00005 // Class Jacobian_TrajPlanner; Jacobian-based local planner. 00006 // 00008 #ifndef _HEADER_LOCAL_PLANNER 00009 #define _HEADER_LOCAL_PLANNER 00010 00011 #pragma warning( disable : 4250 ) 00012 00013 #include "geometry/Frame.h" 00014 #include "Planners/PL_Boolean_Output.h" 00015 #include "Planners/PL_OpenGL.h" 00016 //#include "Planners/zhenwang/TrajPlanner.h" 00017 #include "planners/ik_mpep/IK_Jacobian.h" 00018 #include "Planners/ik_mpep/PL_MPEP.h" 00019 //class PL_MPEP; 00020 00021 class TrajPlanner: public PL_Boolean_Output, public PL_OpenGL 00022 { 00023 public: 00024 TrajPlanner(); 00025 virtual ~TrajPlanner(); 00026 virtual bool DrawExplicit () const; 00027 virtual bool Plan (){return true;}; 00028 00029 //New for trajectory 00030 virtual void SetGoalPose(Frame &goalPose){m_goalPose = goalPose;}; 00031 virtual void SetUsingOrientation(bool use){m_bUseOrientation = use;}; 00032 virtual void SetUseGoalConfig( bool use){m_bUseGoalConfig = use;} 00033 virtual void SetTrajectory(std::vector<Frame> &poses){}; 00034 protected: 00035 //std::vector<Frame> m_poses; 00036 Frame m_goalPose; 00037 bool m_bUseOrientation; 00038 bool m_bUseGoalConfig; 00039 }; 00040 00041 class RRT_TrajPlanner: public TrajPlanner 00042 { 00043 public: 00044 RRT_TrajPlanner(); 00045 virtual ~RRT_TrajPlanner(); 00046 00047 //Inherited form ancestor 00048 virtual void SetStartConfig( const Configuration& config ); 00049 virtual void SetGoalConfig( const Configuration& config); 00050 virtual void SetCollisionDetector (CD_BasicStyle* collisionDetector); 00051 virtual void SetTrajectory(std::vector<Frame> &poses); 00052 virtual bool Plan (); 00053 00054 private: 00055 PL_MPEP *planner; 00056 int m_nNumPose; 00057 }; 00058 00059 class Jacobian_TrajPlanner: public TrajPlanner 00060 { 00061 public: 00062 Jacobian_TrajPlanner(); 00063 ~Jacobian_TrajPlanner(); 00064 00065 //Inherited form ancestor 00066 virtual void SetStartConfig( const Configuration& config ); 00067 virtual void SetCollisionDetector (CD_BasicStyle* collisionDetector); 00068 virtual void SetTrajectory(std::vector<Frame> &poses); 00069 virtual bool Plan (); 00070 00071 private: 00072 IK_Jacobian *planner; 00073 CD_BasicStyle *pCollisionDetector; 00074 }; 00075 00076 #endif