Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

WalkCalibration Class Reference

allows interactive calibration of a walk engine More...

#include <WalkCalibration.h>

Inheritance diagram for WalkCalibration:

Detailed Description

allows interactive calibration of a walk engine

In retrospect, this might have been a little easier to do as a ControlBase/StateNode multiple inheritance instead of ControlBase/EventListener... oh well.

Definition at line 17 of file WalkCalibration.h.

List of all members.

Public Member Functions

 WalkCalibration ()
 constructor
 ~WalkCalibration ()
 destructor
virtual ControlBaseactivate (MC_ID disp_id, Socket *gui)
 Called when the control is activated (or the control system is reactivating).
virtual void refresh ()
 called when the child has deactivated and this control should refresh its display, or some other event (such as the user pressing the refresh button) has happened to cause a refresh to be needed
virtual void deactivate ()
 called when this control is being popped from the control stack
virtual ControlBasedoSelect ()
 when the user has trigger an "open selection" - default is to return the hilighted control*/
virtual void processEvent (const EventBase &e)
 listens for locomotion events so we know when to stop recording
virtual ControlBasetakeInput (const std::string &msg)
 called when the user has supplied a text string (may or may not have been prompted by doReadStdIn()! May not even be active yet - the user can direct the same input to a set of hilighted menus)
virtual void setHilights (const std::vector< unsigned int > &hi)
 sets the hilighted slots
virtual void hilightFirst ()
 sets the hilight to the first non-null slot

Protected Types

enum  {
  ROOT, CHOOSE, READY, MOVING,
  READING_1, READING_2, CLEAR
}
enum  dataSource {
  fs, fr, sr, br,
  bs, r, NUM_SRC
}
 

allows representation of the current sample type

More...

Protected Member Functions

void setupRoot ()
 sets state to root menu
void setupChoose ()
 sets state to choose type menu
void setupReady ()
 sets state to ready menu
void setupMoving ()
 sets state to moving menu
void setupReading1 ()
 sets state to enter first measurement menu
void setupReading2 ()
 sets state to enter second measurement menu
void setupClear ()
 sets state to clear confirmation menu
unsigned int getType ()
 returns current sample type
unsigned int getFirstIndex (dataSource t)
 returns a name index for the first measurement type
unsigned int getSecondIndex (dataSource t)
 returns a name index for the second measurement type
const char * getIndexName (unsigned int t)
 returns name for measurement type
const char * getFirstMeasure (dataSource t)
 returns name for first measurement type
const char * getSecondMeasure (dataSource t)
 returns name for second measurement type
float arclen (float d, float a, float sign)
 calculates arc distance corresponding to a displacement and angle, negated if necessary to match sign
void addSample ()
 adds data point corresponding to measurements stored in firstIn and secondIn
void addSample (std::vector< float * > &dat, float x, float y, float a)
 adds data point to dat for a given x,y,a (and old_x, old_y, old_a)

Static Protected Member Functions

static void loadData (const std::string &name, std::vector< float * > &data)
 does the work of loading data sets
static void saveData (const std::string &name, const std::vector< float * > &data)
 does the work of saving data sets
static void clearData (std::vector< float * > &data)
 clears current data
static void report (unsigned int row, float cmd, float actual)
 reports data as they are being taken
static void err (const std::string &str)
 pops up an error message on the controller and also displays it on the console

Protected Attributes

enum WalkCalibration:: { ... }  st
 the currently active state
enum WalkCalibration::dataSource curType
 allows representation of the current sample type
float old_x
 the x velocity recorded when we started moving
float old_y
 the y velocity recorded when we started moving
float old_a
 the a velocity recorded when we started moving
unsigned int startTime
 the time recording started
unsigned int stopTime
 the time recording stopped
ControlBasehelp
 control holding help info
FileInputControlload
 control for loading data
StringInputControlsave
 control for saving data
ControlBasemeasure
 control for taking measurements
ControlBaseclear
 control for clearing data
ToggleControlpolar
 control for selecting polar measurements for fs/bs
ToggleControlrect
 control for selecting cartesian measurements for fs/bs
bool isPolar
 true if polar measurements is selected
std::string lastLoad
 name last data file selected (so we know if a new has been selected
float firstIn
 the input given for the first measurement
float secondIn
 the input given for the second measurement
std::vector< float * > data [NUM_SRC]
 an array of vectors of sample points (one veotor for each of the sample types)
unsigned int cnts [NUM_SRC]
 count of samples for each sample type (cnts[i] should equal data[i].size())
std::string status
 string to send for ControllerGUI status message (current count of each sample type)

Static Protected Attributes

static const char * datanames [NUM_SRC] = { "fs","fr","sr","br","bs","rr" }
 name for each sample type

Private Member Functions

 WalkCalibration (const WalkCalibration &)
 don't call
WalkCalibrationoperator= (const WalkCalibration &)
 don't call

Member Enumeration Documentation

anonymous enum [protected]
Enumerator:
ROOT 

indicates the root menu is currently displayed (save/load data sets...)

CHOOSE 

indicates the sample type selection is displayed

READY 

waiting for user to indicate 0 point

MOVING 

recording, waiting for the motion stop event

READING_1 

waiting for user to supply the first measurement coordinate

READING_2 

waiting for user to supply the second measurement coordinate

CLEAR 

clear data confirmation menu

Definition at line 46 of file WalkCalibration.h.

enum WalkCalibration::dataSource [protected]

allows representation of the current sample type

Enumerator:
fs 

forward-sideways

fr 

forward-rotate

sr 

sideways-rotate

br 

backward-rotate

bs 

backward-sideways

r 

pure rotation

NUM_SRC 

number of data types

Definition at line 57 of file WalkCalibration.h.


Constructor & Destructor Documentation

WalkCalibration::WalkCalibration (  ) 

constructor

Definition at line 19 of file WalkCalibration.cc.

WalkCalibration::~WalkCalibration (  ) 

destructor

Definition at line 179 of file WalkCalibration.cc.

WalkCalibration::WalkCalibration ( const WalkCalibration  )  [private]

don't call


Member Function Documentation

ControlBase * WalkCalibration::activate ( MC_ID  disp_id,
Socket gui 
) [virtual]

Called when the control is activated (or the control system is reactivating).

Takes the id number of a LedMC which the control should use, maintained by Controller. Controls share the display which is passed, and may use the socket gui to communicate with the GUI controller, if it is connected.

Returns:
a ControlBase pointer. Return:
  • this if the control should stay active (if it's not a one-shot command)
  • NULL to return to parent
  • other address to spawn a child control

Reimplemented from ControlBase.

Definition at line 188 of file WalkCalibration.cc.

void WalkCalibration::addSample ( std::vector< float * > &  dat,
float  x,
float  y,
float  a 
) [protected]

adds data point to dat for a given x,y,a (and old_x, old_y, old_a)

Definition at line 881 of file WalkCalibration.cc.

void WalkCalibration::addSample (  )  [protected]

adds data point corresponding to measurements stored in firstIn and secondIn

Definition at line 799 of file WalkCalibration.cc.

Referenced by takeInput().

float WalkCalibration::arclen ( float  d,
float  a,
float  sign 
) [protected]

calculates arc distance corresponding to a displacement and angle, negated if necessary to match sign

Definition at line 741 of file WalkCalibration.cc.

Referenced by addSample().

void WalkCalibration::clearData ( std::vector< float * > &  data  )  [static, protected]

clears current data

Definition at line 412 of file WalkCalibration.cc.

Referenced by doSelect(), and loadData().

virtual void WalkCalibration::deactivate (  )  [virtual]

called when this control is being popped from the control stack

Reimplemented from ControlBase.

Definition at line 29 of file WalkCalibration.h.

ControlBase * WalkCalibration::doSelect (  )  [virtual]

when the user has trigger an "open selection" - default is to return the hilighted control*/

The value which is returned is then activate()ed and pushed on the Controller's stack

Reimplemented from ControlBase.

Definition at line 219 of file WalkCalibration.cc.

void WalkCalibration::err ( const std::string &  str  )  [static, protected]

pops up an error message on the controller and also displays it on the console

Definition at line 871 of file WalkCalibration.cc.

Referenced by loadData(), saveData(), setupMoving(), and takeInput().

unsigned int WalkCalibration::getFirstIndex ( WalkCalibration::dataSource  t  )  [protected]

returns a name index for the first measurement type

Definition at line 651 of file WalkCalibration.cc.

Referenced by setupChoose(), setupMoving(), and setupReady().

const char * WalkCalibration::getFirstMeasure ( WalkCalibration::dataSource  t  )  [protected]

returns name for first measurement type

Definition at line 698 of file WalkCalibration.cc.

Referenced by processEvent(), setupReading1(), and takeInput().

const char * WalkCalibration::getIndexName ( unsigned int  t  )  [protected]

returns name for measurement type

Definition at line 684 of file WalkCalibration.cc.

Referenced by setupChoose(), setupMoving(), and setupReady().

unsigned int WalkCalibration::getSecondIndex ( WalkCalibration::dataSource  t  )  [protected]

returns a name index for the second measurement type

Definition at line 668 of file WalkCalibration.cc.

Referenced by setupChoose(), setupMoving(), and setupReady().

const char * WalkCalibration::getSecondMeasure ( WalkCalibration::dataSource  t  )  [protected]

returns name for second measurement type

Definition at line 722 of file WalkCalibration.cc.

Referenced by processEvent(), setupReading2(), and takeInput().

unsigned int WalkCalibration::getType (  )  [protected]

returns current sample type

void WalkCalibration::hilightFirst (  )  [virtual]

sets the hilight to the first non-null slot

Reimplemented from ControlBase.

Definition at line 352 of file WalkCalibration.cc.

Referenced by setupClear().

void WalkCalibration::loadData ( const std::string &  name,
std::vector< float * > &  data 
) [static, protected]

does the work of loading data sets

Definition at line 366 of file WalkCalibration.cc.

Referenced by refresh().

WalkCalibration& WalkCalibration::operator= ( const WalkCalibration  )  [private]

don't call

void WalkCalibration::processEvent ( const EventBase e  )  [virtual]

listens for locomotion events so we know when to stop recording

Implements EventListener.

Definition at line 287 of file WalkCalibration.cc.

void WalkCalibration::refresh (  )  [virtual]

called when the child has deactivated and this control should refresh its display, or some other event (such as the user pressing the refresh button) has happened to cause a refresh to be needed

Reimplemented from ControlBase.

Definition at line 194 of file WalkCalibration.cc.

Referenced by doSelect(), processEvent(), and takeInput().

void WalkCalibration::report ( unsigned int  row,
float  cmd,
float  actual 
) [static, protected]

reports data as they are being taken

Definition at line 860 of file WalkCalibration.cc.

Referenced by addSample().

void WalkCalibration::saveData ( const std::string &  name,
const std::vector< float * > &  data 
) [static, protected]

does the work of saving data sets

Definition at line 390 of file WalkCalibration.cc.

Referenced by refresh().

void WalkCalibration::setHilights ( const std::vector< unsigned int > &  hi  )  [virtual]

sets the hilighted slots

Reimplemented from ControlBase.

Definition at line 339 of file WalkCalibration.cc.

Referenced by hilightFirst().

void WalkCalibration::setupChoose (  )  [protected]

sets state to choose type menu

Definition at line 430 of file WalkCalibration.cc.

Referenced by doSelect().

void WalkCalibration::setupClear (  )  [protected]

sets state to clear confirmation menu

Definition at line 639 of file WalkCalibration.cc.

Referenced by doSelect().

void WalkCalibration::setupMoving (  )  [protected]

sets state to moving menu

Definition at line 544 of file WalkCalibration.cc.

Referenced by doSelect().

void WalkCalibration::setupReading1 (  )  [protected]

sets state to enter first measurement menu

Definition at line 604 of file WalkCalibration.cc.

Referenced by processEvent().

void WalkCalibration::setupReading2 (  )  [protected]

sets state to enter second measurement menu

Definition at line 621 of file WalkCalibration.cc.

Referenced by setupReading1(), and takeInput().

void WalkCalibration::setupReady (  )  [protected]

sets state to ready menu

Definition at line 454 of file WalkCalibration.cc.

Referenced by doSelect(), and takeInput().

void WalkCalibration::setupRoot (  )  [protected]

sets state to root menu

Definition at line 418 of file WalkCalibration.cc.

Referenced by doSelect(), and WalkCalibration().

ControlBase * WalkCalibration::takeInput ( const std::string &  msg  )  [virtual]

called when the user has supplied a text string (may or may not have been prompted by doReadStdIn()! May not even be active yet - the user can direct the same input to a set of hilighted menus)

The value which is returned is then activate()ed and pushed on the Controller's stack

Reimplemented from ControlBase.

Definition at line 302 of file WalkCalibration.cc.


Member Data Documentation

control for clearing data

Definition at line 102 of file WalkCalibration.h.

Referenced by doSelect(), setupRoot(), WalkCalibration(), and ~WalkCalibration().

unsigned int WalkCalibration::cnts[NUM_SRC] [protected]

count of samples for each sample type (cnts[i] should equal data[i].size())

Definition at line 111 of file WalkCalibration.h.

Referenced by addSample(), doSelect(), refresh(), setupClear(), and WalkCalibration().

allows representation of the current sample type

the currently selected type of data being recorded

Referenced by addSample(), doSelect(), processEvent(), refresh(), setupMoving(), setupReading1(), setupReading2(), setupReady(), and takeInput().

std::vector<float*> WalkCalibration::data[NUM_SRC] [protected]

an array of vectors of sample points (one veotor for each of the sample types)

Definition at line 110 of file WalkCalibration.h.

Referenced by addSample(), doSelect(), and refresh().

const char * WalkCalibration::datanames = { "fs","fr","sr","br","bs","rr" } [static, protected]

name for each sample type

Definition at line 112 of file WalkCalibration.h.

Referenced by refresh().

the input given for the first measurement

Definition at line 108 of file WalkCalibration.h.

Referenced by addSample(), and takeInput().

control holding help info

Definition at line 98 of file WalkCalibration.h.

Referenced by setupRoot(), WalkCalibration(), and ~WalkCalibration().

bool WalkCalibration::isPolar [protected]

true if polar measurements is selected

Definition at line 105 of file WalkCalibration.h.

Referenced by addSample(), getFirstMeasure(), getSecondMeasure(), refresh(), and setupReady().

std::string WalkCalibration::lastLoad [protected]

name last data file selected (so we know if a new has been selected

Definition at line 106 of file WalkCalibration.h.

Referenced by refresh().

control for loading data

Definition at line 99 of file WalkCalibration.h.

Referenced by refresh(), setupRoot(), WalkCalibration(), and ~WalkCalibration().

control for taking measurements

Definition at line 101 of file WalkCalibration.h.

Referenced by doSelect(), setupRoot(), WalkCalibration(), and ~WalkCalibration().

the a velocity recorded when we started moving

Definition at line 94 of file WalkCalibration.h.

Referenced by addSample(), and setupMoving().

the x velocity recorded when we started moving

Definition at line 92 of file WalkCalibration.h.

Referenced by addSample(), and setupMoving().

the y velocity recorded when we started moving

Definition at line 93 of file WalkCalibration.h.

Referenced by addSample(), and setupMoving().

control for selecting polar measurements for fs/bs

Definition at line 103 of file WalkCalibration.h.

Referenced by doSelect(), refresh(), setHilights(), and setupReady().

control for selecting cartesian measurements for fs/bs

Definition at line 104 of file WalkCalibration.h.

Referenced by doSelect(), setHilights(), and setupReady().

control for saving data

Definition at line 100 of file WalkCalibration.h.

Referenced by refresh(), setupRoot(), WalkCalibration(), and ~WalkCalibration().

the input given for the second measurement

Definition at line 109 of file WalkCalibration.h.

Referenced by addSample(), and takeInput().

unsigned int WalkCalibration::startTime [protected]

the time recording started

Definition at line 95 of file WalkCalibration.h.

Referenced by addSample(), processEvent(), and setupMoving().

std::string WalkCalibration::status [protected]

string to send for ControllerGUI status message (current count of each sample type)

Definition at line 114 of file WalkCalibration.h.

Referenced by refresh(), setupClear(), and setupRoot().

unsigned int WalkCalibration::stopTime [protected]

the time recording stopped

Definition at line 96 of file WalkCalibration.h.

Referenced by addSample(), and processEvent().


The documentation for this class was generated from the following files:

Tekkotsu v5.1CVS
Generated Mon May 9 04:59:18 2016 by Doxygen 1.6.3