00001 #ifndef INCLUDE_NAVLIB_CONTROLLER_FSDWCONTROLLER 00002 #define INCLUDE_NAVLIB_CONTROLLER_FSDWCONTROLLER 00003 00004 #include "controller.h" 00005 #include "geometry.h" 00006 #include "path.h" 00007 00008 namespace navlib 00009 { 00013 class FSDWController : public Controller 00014 { 00015 public: 00016 FSDWController(Shape* body, double minFwdVel, double maxFwdVel, 00017 double maxTTC, double k1=1.0, double kd=1.0, double alpha=1.0, 00018 double beta=0.1, double gamma=1.0, double delta=0.01, 00019 size_t numCurves=51); 00020 virtual ~FSDWController() {}; 00021 Velocity getAction(Pose pose, Path* path, double dt, 00022 std::vector<Point> obstacles); 00023 00024 private: 00025 Shape* _body; 00026 Path* _path; 00027 Velocity _prevAction; 00028 double _k1; 00029 double _kd; 00030 double _alpha; 00031 double _beta; 00032 double _gamma; 00033 double _delta; 00034 double _minFwdVel; 00035 double _maxFwdVel; 00036 double _maxTTC; 00037 size_t _nc; 00038 double _s; 00039 }; 00040 } 00041 00042 #endif 00043