In file /home/blah/darwin2k/src/d2k/ctrl/roverController.h:

class roverController

A controller for wheeled rovers.


Public Fields

[more]double accMax
linear acceleration to use while driving
[more]double kHeading
controller gain for computing corrections to reduce heading error
[more]double ka
linear acceleration gain.
[more]double kv
gain for velocity error term
[more]double kvt
gain for velocity (ie.
[more]double kvi
integral gain for accumulated velocity error
[more]int useMassProportionalGains
indicates whether gains should be multiplied by rover mass
[more]double tc
a time constant used for computing acceleration during kinematic simulation
[more]int commandMode
the current mode of the controller
[more]double speed
the commanded driving speed; positive = forward, negative = back
[more]double radius
turning radius, when in TURN mode; positive = left, negative = right
[more]triple goal
goal location for SEEK_GOAL mode

Public Methods

[more]virtual int computeVelocityCommand(void)
computes velocity commands for all wheels based on the current mode
[more]wheelModule* getWheel(int i)
returns the i'th wheel

Public Members

[more]enum driveMode
enumerated type for roverController drive modes.

Inherited from jointController:

Public Fields

od2kCtrlStatus status
optrList controllers
ochar gainFile[200]
osingleJointController** jointToCtrl
odouble currentTime

Public Methods

oint readGains(FILE* fp)
oint writeGains(FILE* fp)
osingleJointController* ctrl(int i)
osingleJointController* ctrl(joint* jt)

Inherited from controller:

Public Fields

ovector accCmd
ovector Tcmd
omechanism* mech
odynoTimer* timer
odofInfluence* inf
oint alwaysUpdate

Public Methods

ovirtual double maxDt(void)
ovirtual int computeTorqueCommand(double currentTime, int &computedAcc)
ovirtual int computeAccelerationCommand(double currentTime)
ovirtual int madeProgress(double currentTime)
ovirtual int reset(void)

Public Members

o inherited from d2kComponent
o not currently used

Protected Fields

odouble _maxDt

Inherited from d2kComponent:

Public Fields

od2kSimulator* sim
oconfiguration* cfg
oconst char* label
oint active

Public Methods

ovirtual int minCfgs(void) const
ovirtual int maxCfgs(void) const
ovirtual const char* getCfgName(int i)
ovirtual int readParams(paramParser* parser)
ovirtual int setVariables(const ptrList* taskParamRecs)
ovirtual int simInit(d2kSimulator* Sim)
ovirtual int init(ptrList* Cfgs)
ovirtual int forceCfgResolution(void)
ovirtual int cleanup(void)
ovirtual int update(int &violated)
ovirtual const cfgLabelRecord* getLabelRec(int i) const

Inherited from synObject:

Public Fields

ostatic int staticClassID
oint objectID
oint verboseLevel

Public Methods

ovirtual const char* className(void) const
ovirtual synObject* copy(void) const
ovirtual int isOfType(int typeNum, int derivedOk)
ostatic int setStaticClassID(void)
ovirtual int classID(void) const


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

Also see jointController class for other parameters.
oenum driveMode
enumerated type for roverController drive modes.

This class has no child classes.

Alphabetic index HTML hierarchy of classes or Java

This page was generated with the help of DOC++.