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