00001 #ifndef CAJUN_PATH_NUDGER_H
00002 #define CAJUN_PATH_NUDGER_H
00003
00004
00005 #include "planner_defs.H"
00006 #include "world_state.H"
00007
00008 #include "base_interpolator.H"
00009
00010
00011 #include <deque>
00012
00013
00014 namespace cajun
00015 {
00016
00017
00018 class path_nudger_t
00019 {
00020 public:
00021 path_nudger_t (world_state_t *world_state_);
00022
00023 void nudge_path (path_t &path_);
00024
00025 protected:
00026 struct bump_t
00027 {
00028 double tstamp;
00029 double x;
00030 double y;
00031 };
00032 std::deque<bump_t> m_bump;
00033
00034 world_state_t *m_ws;
00035 unsigned m_scangp_qid;
00036
00037 base_interpolator_t *m_interp;
00038
00039
00040 void attract (path_wp_t &pt_, double x_, double y_);
00041 void repel (path_wp_t &pt_, double x_, double y_);
00042 void interp_pres_path (path_t &path_);
00043
00044
00045 };
00046
00047
00048 };
00049
00050
00051 #endif