In file /home/blah/darwin2k/src/d2k/ctrl/roverController.h:A controller for wheeled rovers.
Inheritance:
Public Fields
-
double accMax
- linear acceleration to use while driving
-
double kHeading
- controller gain for computing corrections to reduce heading error
-
double ka
- linear acceleration gain.
-
double kv
- gain for velocity error term
-
double kvt
- gain for velocity (ie.
-
double kvi
- integral gain for accumulated velocity error
-
int useMassProportionalGains
- indicates whether gains should be multiplied by rover mass
-
double tc
- a time constant used for computing acceleration during kinematic simulation
-
int commandMode
- the current mode of the controller
-
double speed
- the commanded driving speed; positive = forward, negative = back
-
double radius
- turning radius, when in TURN mode; positive = left, negative = right
-
triple goal
- goal location for SEEK_GOAL mode
Public Methods
-
virtual int computeVelocityCommand(void)
- computes velocity commands for all wheels based on the current mode
-
wheelModule* getWheel(int i)
- returns the i'th wheel
Public Members
-
enum driveMode
- enumerated type for roverController drive modes.
Public Fields
-
d2kCtrlStatus status
-
ptrList controllers
-
char gainFile[200]
-
singleJointController** jointToCtrl
-
double currentTime
Public Methods
-
int readGains(FILE* fp)
-
int writeGains(FILE* fp)
-
singleJointController* ctrl(int i)
-
singleJointController* ctrl(joint* jt)
Public Fields
-
vector accCmd
-
vector Tcmd
-
mechanism* mech
-
dynoTimer* timer
-
dofInfluence* inf
-
int alwaysUpdate
Public Methods
-
virtual double maxDt(void)
-
virtual int computeTorqueCommand(double currentTime, int &computedAcc)
-
virtual int computeAccelerationCommand(double currentTime)
-
virtual int madeProgress(double currentTime)
-
virtual int reset(void)
Public Members
-
inherited from d2kComponent
-
not currently used
Protected Fields
-
double _maxDt
Public Fields
-
d2kSimulator* sim
-
configuration* cfg
-
const char* label
-
int active
Public Methods
-
virtual int minCfgs(void) const
-
virtual int maxCfgs(void) const
-
virtual const char* getCfgName(int i)
-
virtual int readParams(paramParser* parser)
-
virtual int setVariables(const ptrList* taskParamRecs)
-
virtual int simInit(d2kSimulator* Sim)
-
virtual int init(ptrList* Cfgs)
-
virtual int forceCfgResolution(void)
-
virtual int cleanup(void)
-
virtual int update(int &violated)
-
virtual const cfgLabelRecord* getLabelRec(int i) const
Public Fields
-
static int staticClassID
-
int objectID
-
int verboseLevel
Public Methods
-
virtual const char* className(void) const
-
virtual synObject* copy(void) const
-
virtual int isOfType(int typeNum, int derivedOk)
-
static int setStaticClassID(void)
-
virtual int classID(void) const
Documentation
A controller for wheeled rovers. The roverController class implements a
simple algorithm for skid-steered control of the drive actuators for
wheeled rovers. Several different control modes are available:
straight-line, open loop driving; drive-to-location, turn-in-place, and
driving along arcs. The roverController uses the capabilities of the
jointController, from which it is derived, to compute joint torque
commands for joints connected to wheelModules; all other joint torque
commands are zero. The gains for the singleJointControllers are set
to ka, kv, ks, kvt, and kvi, respectively, multiplied by the radius
of the wheel being controlled. This allows control gains for the
roverController to be specified in terms of linear velocity and
acceleration, regardless of wheel radius.
File variables
- double accMax required
- double ka required
- double kv required
- double kvt required
- double kvi = kv*0.1;
- enum commandMode { STOP, DRIVE, TURN, ROTATE, SEEK_GOAL } = STOP;
- double speed = 0;
- double radius = 0;
- double kHeading = 20;
- double goalX = 0;
- double goalY = 5;
- int useMassProportionalGains = 0;
Also see jointController class for other
parameters.
- enum driveMode
- enumerated type for roverController drive modes.
- STOP - decelerate and then hold all wheels at current position.
- DRIVE - straight-line, open-loop driving at constant speed
- TURN - arc turn of specified radius
- ROTATE - turn in place
- SEEK_GOAL - drive to a specified location
- double accMax
- linear acceleration to use while driving
- double kHeading
- controller gain for computing corrections to reduce heading error
- double ka
- linear acceleration gain.
- double kv
- gain for velocity error term
- double kvt
- gain for velocity (ie. additional torque proportional to goal velocity)
- double kvi
- integral gain for accumulated velocity error
- int useMassProportionalGains
- indicates whether gains should be multiplied by rover mass
- double tc
- a time constant used for computing acceleration during kinematic
simulation
- int commandMode
- the current mode of the controller
- double speed
- the commanded driving speed; positive = forward, negative = back
- double radius
- turning radius, when in TURN mode; positive = left, negative = right
- triple goal
- goal location for SEEK_GOAL mode
- virtual int computeVelocityCommand(void)
- computes velocity commands for all wheels based on the current mode
- wheelModule* getWheel(int i)
- returns the i'th wheel
- This class has no child classes.
Alphabetic index HTML hierarchy of classes or Java
This page was generated with the help of DOC++.