00001 /* -*- mode: C++ -*- 00002 * 00003 * Navigator stop controller 00004 * 00005 * Copyright (C) 2007, 2010, Austin Robot Technology 00006 * License: Modified BSD Software License Agreement 00007 * 00008 * $Id: stop.h 872 2010-11-28 13:31:07Z jack.oquin $ 00009 */ 00010 00011 #ifndef __STOP_H__ 00012 #define __STOP_H__ 00013 00014 class Stop: public Controller 00015 { 00016 public: 00017 00018 Stop(Navigator *navptr, int _verbose); 00019 ~Stop(); 00020 00021 // regular control method -- not supported 00022 result_t control(pilot_command_t &pcmd); 00023 00024 // overloaded control method 00025 result_t control(pilot_command_t &pcmd, float distance, float threshold, 00026 float topspeed=3.0); 00027 void reset(void); 00028 00029 private: 00030 00031 // controller state 00032 bool stopping; // stopping initiated 00033 bool creeping; // creeping up to line 00034 double initial_speed; // initial speed while stopping 00035 }; 00036 00037 #endif // __STOP_H__