Run Class Reference

#include <run.h>

Inheritance diagram for Run:
Inheritance graph

List of all members.

Public Member Functions

result_t control (pilot_command_t &pcmd)
void reset (void)
 Run (Navigator *navptr, int _verbose)
 ~Run ()

Private Types

enum  state_t { Continue, Escape, Replan }

Private Member Functions

void begin_escape (void)
Controller::result_t go (pilot_command_t &pcmd)
Controller::result_t initialize (pilot_command_t &pcmd)
void set_go_state (state_t)
ElementID starting_waypt (void)

Private Attributes

MapPose blockage_pose
float blockage_waypt_dist
state_t go_state
int last_replan

Detailed Description

Definition at line 22 of file run.h.

Member Enumeration Documentation

enum Run::state_t [private]

Definition at line 34 of file run.h.

Constructor & Destructor Documentation

Run::Run ( Navigator navptr,
int  _verbose 

Definition at line 36 of file

Run::~Run (  ) 

Definition at line 50 of file

Member Function Documentation

void Run::begin_escape ( void   )  [private]

Definition at line 63 of file

Controller::result_t Run::control ( pilot_command_t pcmd  )  [virtual]

Main controller whenever E-stop is in the Run state.

Each order contains a behavior which determines the navigator run state for this cycle.

OK if able to continue running; NotImplemented if unrecognized behavior in order; NotApplicable if unable to determine starting way-point for Initialize behavior; other results from subordinate controllers.

Reimplemented from Controller.

Definition at line 87 of file

Controller::result_t Run::go ( pilot_command_t pcmd  )  [private]

controller for Go behavior.

either implement blockage handling or delete it.

Blockage handling:

Set obstacle blockage timer when car stops.

Restart timer in observer_clear() and in follow_lane when waiting for an obstacle in a stop line (not intersection) safety area.

When the blockage timer expires, remember the current pose, stop calling the road controller, and instead call the unstuck controller (VoronoiZone). When it has gone 10m, run the starting_waypt() algorithm to determine a new replan_waypt. When Commander sees replan_waypt set without the roadblock flag, it will make a new plan. When the new plan is received, reset the road controller and attempt to continue.

While blocked, mark waypt[1] reached whenever the front bumper is within zone_waypoint_radius. TODO: configure a larger radius.

Commander looks at both the roadblock flag and the replan_waypt. If replan_waypt is set it makes a new plan from there. If the roadblock flag is also set, it marks a blockage in the RNDF after last_waypt. Commander marks every order with a replan_num that is incremented every time replan route runs, so Navigator can detect when that has been done.

Definition at line 219 of file

Controller::result_t Run::initialize ( pilot_command_t pcmd  )  [private]

Initialize behavior

OK if successful NotApplicable is unable to determine initial way-point
pcmd is a halt navdata->last_waypt is starting way-point, if found

Definition at line 166 of file

void Run::reset ( void   )  [virtual]

Reimplemented from Controller.

Definition at line 305 of file

void Run::set_go_state ( state_t  newstate  )  [private]

set new Go behavior state

Definition at line 318 of file

ElementID Run::starting_waypt ( void   )  [private]

find starting way-point for Commander

: starting way-point for planning, if available; null ElementID, otherwise.

Definition at line 334 of file

Member Data Documentation

MapPose Run::blockage_pose [private]

Definition at line 42 of file run.h.

float Run::blockage_waypt_dist [private]

Definition at line 43 of file run.h.

Definition at line 41 of file run.h.

Halt* Run::halt [private]

Definition at line 58 of file run.h.

int Run::last_replan [private]

Definition at line 44 of file run.h.

Road* Run::road [private]

Definition at line 59 of file run.h.

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Author(s): Austin Robot Technology, Jack O'Quin
autogenerated on Fri Jan 11 10:05:41 2013