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

modelcar.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_MODELCAR_H
00020 #define MSL_MODELCAR_H
00021 
00022 #include <list>
00023 #include <string>
00024 
00025 #include "model2d.h"
00026 #include "vector.h"
00027 #include "matrix.h"
00028 
00029 
00031 class ModelCar: public Model2DRigidCar {
00032  public:
00033   double Speed;
00034 
00035   ModelCar(string path);
00036   virtual ~ModelCar() {};
00037   virtual MSLVector StateToConfiguration(const MSLVector &x);
00038   virtual bool Satisfied(const MSLVector &state); 
00039 };
00040 
00041 
00043 class ModelCarSmooth: public Model2DRigidCarSmooth {
00044  public:
00045   ModelCarSmooth(string path);
00046   virtual ~ModelCarSmooth() {};
00047   virtual MSLVector StateToConfiguration(const MSLVector &x);
00048 };
00049 
00050 
00052 class ModelCarDyn: public Model2DRigidDyncar {
00053  public:
00054   ModelCarDyn(string path);
00055   virtual ~ModelCarDyn() {};
00056   virtual MSLVector StateToConfiguration(const MSLVector &x);
00057   virtual double Metric(const MSLVector &x1, const MSLVector &x2);
00058 };
00059 
00061 class ModelCarDynNtire: public Model2DRigidDyncarNtire {
00062  public:
00063   ModelCarDynNtire(string path);
00064   virtual ~ModelCarDynNtire() {};
00065   virtual MSLVector StateToConfiguration(const MSLVector &x);
00066   virtual double Metric(const MSLVector &x1, const MSLVector &x2);
00067 };
00068 
00069 
00078 class ModelCarDynRollover: public ModelCarDynNtire{  
00079  public:
00080   double K, c, Ixx;
00081   double T;
00082   double H, H2;
00083   double Ms;
00084   double Wn;
00085   double Fai;
00086   double x; 
00087   
00088   bool IsRollOver;
00089 
00090   ModelCarDynRollover(string path);
00091   virtual ~ModelCarDynRollover() {};
00092 
00093   int sgn(double x);
00094 
00095   virtual MSLVector StateTransitionEquation(const MSLVector &x1, const MSLVector &u);
00096 
00097   virtual MSLVector StateToConfiguration(const MSLVector &x);
00098   
00099   virtual MSLVector Integrate(const MSLVector &x, const MSLVector &u, const double &h);   
00100 
00101   virtual double Metric(const MSLVector &x1, const MSLVector &x2);
00102 
00103   bool RollOverFree(const MSLVector &x);
00104 
00105   bool Satisfied(const MSLVector &x);
00106 };
00107 
00108 
00111 class ModelCarDynSmoothRollover: public ModelCarDynRollover {
00112  public:
00113  
00114   ModelCarDynSmoothRollover(string path);
00115   virtual ~ModelCarDynSmoothRollover() {};
00116 
00117   virtual MSLVector StateTransitionEquation(const MSLVector &x1, const MSLVector &u);
00118 
00119   virtual MSLVector StateToConfiguration(const MSLVector &x);
00120 
00121   virtual double Metric(const MSLVector &x1, const MSLVector &x2);
00122   
00123   virtual MSLVector LinearInterpolate(const MSLVector &x1, 
00124                                       const MSLVector &x2, 
00125                                       const double &a);
00126   
00127 };
00128 
00129 #endif
00130 
00131 
00132 
00133 
00134 
00135 
00136 
00137 
Motion Strategy Library


Web page maintained by Steve LaValle