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