Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

rcrrt.h

Go to the documentation of this file.
00001 //----------------------------------------------------------------------
00002 //               The Motion Strategy Library (MSL)
00003 //----------------------------------------------------------------------
00004 //
00005 // Copyright (c) University of Illinois and Steven M. LaValle.     
00006 // All Rights Reserved.
00007 // 
00008 // Permission to use, copy, and distribute this software and its 
00009 // documentation is hereby granted free of charge, provided that 
00010 // (1) it is not a component of a commercial product, and 
00011 // (2) this notice appears in all copies of the software and
00012 //     related documentation. 
00013 // 
00014 // The University of Illinois and the author make no representations
00015 // about the suitability or fitness of this software for any purpose.  
00016 // It is provided "as is" without express or implied warranty.
00017 //----------------------------------------------------------------------
00018 
00019 #ifndef MSL_RRTDYN_H
00020 #define MSL_RRTDYN_H
00021 
00022 #include "rrt.h"
00023 
00024 
00036 class RCRRT: public RRTGoalBias {
00037 public:
00039   int inputnum;
00040 
00042   list<MSLVector> inputset;
00043 
00046   bool issolutionexist;
00047 
00049   MSLVector initexploreinfo;
00050 
00052   double initcoltend;
00053 
00054 
00058   bool IsNodeExpanded(MSLNode* x, double& biasvalue, 
00059                       bool forward);
00060 
00063   virtual bool IsInputApplied(const int& inputindex, 
00064                               const MSLVector& expolreinfo);
00065 
00066 
00068   virtual void BackWardBiasSet(MSLNode* n, MSLTree* t);
00069 
00071   double BiasValue(int backstep);
00072 
00073   RCRRT(Problem *problem);
00074   virtual ~RCRRT() {};
00075 
00076   virtual MSLNode* SelectNode(const MSLVector& x, MSLTree* t, 
00077                               bool forward);
00078 
00079   virtual bool Extend(const MSLVector& x, MSLTree* t, 
00080                       MSLNode*& nn,bool forward);
00081 
00084   virtual MSLVector SelectInput(MSLNode* n1, const MSLVector& x2, 
00085                                     MSLVector& nx_best, bool& success, 
00086                                     bool forward);
00087   
00088   virtual bool Connect(const MSLVector& x, MSLTree* t, 
00089                        MSLNode*& nn, bool forward);  
00090   
00091   virtual bool Plan();  
00092 };
00093 
00094 
00096 class RCRRTDual: public RCRRT
00097 {
00098  protected:
00099   void RecoverSolution(MSLNode* n1, MSLNode* n2);
00100 
00101  public:
00102 
00103   RCRRTDual(Problem *p);
00104   virtual ~RCRRTDual() {};
00105 
00106   virtual bool Plan();
00107   virtual bool GetConnected(MSLNode* n1, MSLNode* n2);
00108 };
00109 
00110 
00114 class RCRRTExtExt: public RCRRTDual
00115 {
00116  public:
00117   RCRRTExtExt(Problem *p);
00118   virtual ~RCRRTExtExt() {};
00119   virtual bool Plan();
00120 };
00121 
00122 
00125 
00126 class RCRRTBall: public RCRRT
00127 {
00128  public:
00129 
00131   double BallRadius;  
00132 
00135   int FailNumTh;
00136 
00138   int FailNum;
00139 
00140 
00141   RCRRTBall(Problem *p);
00142   virtual ~RCRRTBall() {};
00143 
00145   virtual MSLNode* SelectNode(const MSLVector &x, MSLTree* t, 
00146                                    bool forward);
00147 
00148   virtual bool Extend(const MSLVector &x, MSLTree* t, 
00149                       MSLNode*& nn, bool forward);
00150 
00152   virtual bool Connect(const MSLVector& x, MSLTree* t, MSLNode*& nn,
00153                        bool forward);  
00154   
00155   virtual bool Plan();
00156 };
00157 
00159 class RCRRTBallDual: public RCRRTBall
00160 {
00161  protected:
00162   void RecoverSolution(MSLNode* n1, MSLNode* n2);
00163 
00164  public:
00165 
00166   RCRRTBallDual(Problem *p);
00167   virtual ~RCRRTBallDual() {};
00168 
00169   virtual bool Plan();
00170   virtual bool GetConnected(MSLNode* n1, MSLNode* n2);
00171 };
00172 
00173 
00175 class RCRRTBallExtExt: public RCRRTBallDual
00176 {
00177  public:
00178   RCRRTBallExtExt(Problem *p);
00179   virtual ~RCRRTBallExtExt() {};
00180   virtual bool Plan();
00181 };
00182 
00183 #endif
00184 
00185 
00186 
00187 
00188 
00189 
00190 
Motion Strategy Library


Web page maintained by Steve LaValle