|
LRAUV
revA
|
This is the primary "control" for the vehicle's depth. More...
#include <VerticalControl.h>


Public Member Functions | |
| VerticalControl (const Module *module) | |
| virtual | ~VerticalControl () |
| void | initialize (void) |
| Provide a space for initialization before being run. More... | |
| void | run () |
| The actual "payload" of the component. More... | |
| void | uninitialize (void) |
| Uninit function. More... | |
Public Member Functions inherited from SyncComponent | |
| CycleOrder | getCycleOrder (void) |
| Getter function for controlThreadOrderPreference. More... | |
| void | setRepeating (bool repeating) |
| int | getDivisor () const |
| int | getModulo () const |
| bool | isRepeater () |
| bool | isRepeating () |
Public Member Functions inherited from Component | |
| virtual | ~Component () |
| Destructor cleans up readers_ and writers_. More... | |
| void | registerReader (DataReader *reader) |
| void | unregisterReader (DataReader *reader) |
| void | registerWriter (DataWriter *writer) |
| void | unregisterWriter (DataWriter *writer) |
| void | disableMetering (void) |
| FlexArray< DataReader * > & | getReaderList (void) |
| FlexArray< DataWriter * > & | getWriterList (void) |
| const Module * | getModule () |
| virtual void | configure () |
| Read (or re-read!) configuration settings. More... | |
| virtual void | execute (void) |
| bool | isActive () const |
| Indicates if the component is active. More... | |
| const CodedStr & | getName (void) const |
| Returns the name. More... | |
| const Timestamp & | getTimeOfLastRun (void) const |
| ComponentState | getState (void) |
| Return the component's current state. More... | |
| void | setState (ComponentState state) |
| RunState | getRunState (void) |
| Return the component's run state. More... | |
| bool | isUsingRunState () |
| Return true if using runState. More... | |
| void | requestData (bool requestingData) |
| Tell the component to start (or stop) sending data. More... | |
| void | requestStart () |
| Tell the component to start runnning. More... | |
| void | requestPause (const Timespan expectedPauseTime) |
| Tell the component to pause runnning. More... | |
| void | requestResume () |
| Tell the component resume from pause. More... | |
| void | requestStop () |
| Tell the component to stop runnning. More... | |
| virtual RunState | start () |
| Do what needs to be done to run Similar to initialize, in old init/run/uninit sequence. More... | |
| virtual RunState | starting () |
| Might follow a STOP...START sequence Subseqent. More... | |
| virtual RunState | runnable () |
| Should eventually follow a START request or RESETTING. More... | |
| virtual RunState | satisfied () |
| Possible return value of a Behavior. More... | |
| virtual RunState | pause () |
| Pause for a short period (indicated by pauseTime) More... | |
| virtual RunState | pausing () |
| Might follow a PAUSE request. More... | |
| virtual RunState | paused () |
| Should eventually follow a PAUSE request: should set continueTime. More... | |
| virtual RunState | resume () |
| Resume from PAUSE. More... | |
| virtual RunState | resuming () |
| Might follow a PAUSE...RESUME sequence. More... | |
| virtual RunState | resetting () |
| Might occur in case of Error. More... | |
| virtual RunState | stop () |
| Initial state – can be later followed by START. More... | |
| virtual RunState | stopping () |
| Might follow a STOP request. More... | |
| virtual RunState | stopped () |
| Should eventually follow a STOP request. More... | |
| void | setCriticalFailureReported (bool boolVal) |
| void | setRecoveringFromCritical (bool boolVal) |
| void | setFailureReported (bool boolVal) |
| bool | isFailureUninitialized () |
| void | setFailureUninitialized (bool boolVal) |
| void | setRetryTimeout (const Timespan &timeout) |
| virtual bool | isCompleted (void) |
| Query if this component is completed. More... | |
| void | setPeriod (const Timespan &period) |
| Set the period of this component... used if it is periodic. More... | |
| const Timespan & | getPeriod (void) |
| Returns the component's period (regardless of whether it is periodic) More... | |
| ComponentType | getComponentType () |
| Getter function for ComponentType. More... | |
| virtual bool | isFailed (void) const |
| virtual FailureMode::FailType | getFailureType (void) const |
| virtual bool | getCriticalFailureReported (void) const |
| virtual bool | getFailureReported (void) const |
| virtual Timespan | getRetryTimeout (void) const |
| virtual FailureMode::FailType | setFailure (FailureMode::FailType failureType) |
| virtual int | getFailCount (void) const |
| virtual bool | isFailureMissionCritical () |
| virtual int | getAllowableFailures (void) const |
| virtual void | setAllowableFailures (int fails) |
| Logger & | getLogger (void) |
| virtual int | incrementFailCount (void) |
| virtual void | resetFailCount (void) |
| virtual int | getSkippedRunsSinceFail (void) const |
| virtual int | incrementSkippedRunsSinceFail (void) |
| virtual void | logVoltage (float voltage, float averageVoltage) |
| virtual void | logCurrent (float current, float averageCurrent) |
| const Timestamp & | getWriteTimestamp (void) |
| void | setWriteTimestamp (const Timestamp &writeTimestamp) |
| BlobReader * | newBlobReader (const BlobURI &blobURI) |
| BlobReader * | newBlobReaderFromUniversal (const Str &componentName, const UniversalBlobURI &blobURI) |
| BlobWriter * | newBlobWriter (const BlobURI &blobURI, Logger::TimePrecisionType timePrecision=Logger::TIME_PRECISION_MILLIS) |
| ConfigReader * | newConfigReader (const ConfigURI &configURI) |
| DataReader * | newDataReader (const DataURI &dataURI) |
| DataReader * | newDataReaderFromUniversal (const Str &componentName, const UniversalURI &universalURI) |
| DataWriter * | newDataWriter (const DataURI &dataURI, Logger::TimePrecisionType timePrecision=Logger::TIME_PRECISION_MILLIS) |
| UniversalBlobReader * | newUniversalBlobReader (const UniversalBlobURI &universalURI) |
| UniversalBlobWriter * | newUniversalBlobWriter (const UniversalBlobURI &universalURI, const Unit &accuracyUnit=Units::NONE, const float accuracy=DataElement::NO_ACCURACY, Logger::TimePrecisionType timePrecision=Logger::TIME_PRECISION_MILLIS) |
| UniversalDataReader * | newUniversalReader (const UniversalURI &universalURI) |
| UniversalDataWriter * | newUniversalWriter (const UniversalURI &universalURI, const Unit &accuracyUnit=Units::NONE, const float accuracy=DataElement::NO_ACCURACY, Logger::TimePrecisionType timePrecision=Logger::TIME_PRECISION_MILLIS) |
Private Member Functions | |
| VerticalControl (const VerticalControl &old) | |
| bool | readConfig (void) |
| Load VerticalControl parameters. More... | |
| void | controlVertical (void) |
| void | controlDepth (float depthCmd) |
| void | controlDepthRate (float depthRateCmd) |
| void | setPitch (float pitchCmd) |
| void | setPitchRate (float pitchRateCmd) |
| void | setMassAndElevator (float massPositionCmd, float elevatorAngleCmd) |
| attempts to achieve the desired mass and elevator settings More... | |
| void | setBuoyancy (float buoyancyCmd) |
| float | elevatorControl (float pitch, float pitchCmd, float pitchRate) |
| float | massControl (float pitch, float pitchCmd, float pitchRate, bool forceIntegrator=false) |
| void | massAndElevatorControl (float pitch, float pitchCmd, float pitchRate, float &massPositionAction, float &elevatorAngleAction) |
| void | floatAtSurface () |
| float | getMassPitchFilterError (float pitch, float pitchCmd, float dt) |
| void | overrideVertical () |
| Apply buoyancy or drop weight overrides if necessary. More... | |
Additional Inherited Members | |
Public Types inherited from Component | |
| enum | ComponentState { BLOCK_CONTINUOUS, BLOCK_PERIODIC, BLOCK_NORMAL, BLOCK_COMPLETED, BLOCK_UNKNOWN } |
| In this model, the component has basically two states: wanting to run, and completed (no longer needing to run). More... | |
| enum | ComponentType { COMPONENT_ASYNC, COMPONENT_CONFIG, COMPONENT_BEHAVIOR, COMPONENT_SYNC } |
| Components can indicate how they want to be handled by their type. More... | |
| enum | RunState { NO_RUN_STATE = 0, START, STARTING, RUNNABLE, SATISFIED, PAUSE, PAUSING, PAUSED, RESUME, RESUMING, RESETTING, STOP, STOPPING, STOPPED } |
Static Public Attributes inherited from SyncComponent | |
| static const int | CYCLE_INCREMENT |
| static const int | CYCLE_REPEAT_OFFSET |
| static const CycleOrder | CYCLE_STARTER |
| static const CycleOrder | CYCLE_SIMULATOR |
| static const CycleOrder | CYCLE_SENSOR |
| static const CycleOrder | CYCLE_DERIVATION |
| static const CycleOrder | CYCLE_ESTIMATION |
| static const CycleOrder | CYCLE_NAVIGATION |
| static const CycleOrder | CYCLE_MISSION_MANAGER |
| static const CycleOrder | CYCLE_MISSION |
| static const CycleOrder | CYCLE_CONTROL |
| static const CycleOrder | CYCLE_SERVO |
| static const CycleOrder | CYCLE_TEST |
| static const CycleOrder | CYCLE_REPORTER |
| static const CycleOrder | CYCLE_LOGGER |
Protected Types inherited from Component | |
| enum | ConfigOption { CONFIG_SIMULATE_HARDWARE, CONFIG_POWER, CONFIG_FREQUENCY, CONFIG_LATENCY } |
Protected Member Functions inherited from SyncControlComponent | |
| SyncControlComponent (const Str &name, const Module *module, int divisor=1, int modulo=0) | |
Protected Member Functions inherited from SyncComponent | |
| void | setRepeater (bool repeater) |
Protected Member Functions inherited from Component | |
| virtual ConfigURI | getConfigURI (ConfigOption configOption) const |
| Should return [myNamespace]::SIMULATE_HARDWARE, or [myNamespace]::POWER, etc. More... | |
| virtual ConfigURI | getConfigURI (ConfigOption configOption, ElementURI forElement) const |
| Should return [myNamespace]::POWER_[forElement], [myNamespace]::LATENCY_[forElement], etc. More... | |
| virtual void | setDurationOfLastRun (const Timespan &span) |
| virtual void | setTimeOfRun (const Timestamp &time) |
| virtual void | setTimeOfLastRun (const Timestamp &time) |
| virtual void | setDt (const Timespan &dt) |
| virtual bool | setEnabled (bool enabled=true) |
| void | setRunState (const RunState runState) |
| const Timespan | getPauseTime () const |
| virtual void | setFailureMissionCritical (bool failureMissionCritical) |
| bool | simulateHardware () |
Protected Attributes inherited from Component | |
| Logger | logger_ |
| Syslog::Severity | debugLevel_ |
| ComponentState | state_ |
| Keep track of whether the component has "completed" or should be run again. More... | |
| Timespan | desiredPeriod_ |
| CodedStr & | name_ |
| Store the component's name (used for logging purposes) More... | |
| Timestamp | timeOfRun_ |
| Timestamp | timeOfLastRun_ |
| Timespan | durationOfLastRun_ |
| Timespan | dt_ |
| Timespan | retryTimeout_ |
| bool | enabled_ |
| bool | failureReported_ |
| Indicates if the failure has been reported – cuts down on syslog. More... | |
| bool | criticalFailureReported_ |
| Indicates if a "Critical" failure has been reported – cuts down on syslog. More... | |
| bool | recoveringFromCritical_ |
| Indicates that a component had a previous critical failure that has been cleared temporarily awaiting final word from the component itself. More... | |
| bool | failureUninitialized_ |
| Indicates if the failure has resulted in an uninitialize call. More... | |
| int | failCount_ |
| Number of failures logged by PCaller. More... | |
| bool | failureMissionCritical_ |
| If true (default), complete failure ends mission. More... | |
| int | allowableFailures_ |
| Number of failures allowed to occur. More... | |
| int | skippedRunsSinceFail_ |
| Number of skipped runs since failureMode_ set by failCount_. More... | |
| FailureMode::FailType | failureType_ |
| Failed status. If failCount_ > 0, then this may be reset. More... | |
| Timestamp | timeOfFailure_ |
| Time of last failure. Relevant only if failed=true. More... | |
| Timestamp | writeTimestamp_ |
| Time of last write. More... | |
| FlexArray< DataReader * > | readers_ |
| FlexArray< DataWriter * > | writers_ |
| const Module * | module_ |
| Timespan | pauseTime_ |
| bool | meteringEnabled_ |
| If true, metering is enabled. More... | |
| DataWriter * | durationOfLastRunWriter_ |
| Writer for durationOfLastRun. More... | |
| DataWriter * | voltageWriter_ |
| DataWriter * | avgVoltageWriter_ |
| DataWriter * | currentWriter_ |
| DataWriter * | avgCurrentWriter_ |
| bool | persistentPause_ |
| True if data is persistent while component is paused. More... | |
This is the primary "control" for the vehicle's depth.
It accepts a number of inputs that specify the desired depth or pitch of the vehicle, and combined with depth and pitch sensor inputs, converts the settings to commands that are ultimately relayed to devices via ElevatorServo, MovableMassServo, and BuoyancyServo.
VerticalControl.h should only be included by VerticalControl.cpp Other classes should include VerticalControlIF.h
| VerticalControl::VerticalControl | ( | const Module * | module | ) |
References buoyancyActionWriter_, buoyancyCmdReader_, buoyancyDefault_, buoyancyDefaultCfgReader_, buoyancyLimitHiCCCfgReader_, buoyancyLimitLoCCCfgReader_, buoyancyNeutralCfgReader_, buoyancyPositionReader_, buoyancyPumpDepthCfgReader_, UniversalURI::DEPTH, depth2buoyIntInternalWriter_, UniversalURI::DEPTH_RATE, depthCmdReader_, depthDeadbandCfgReader_, depthErrorInternalWriter_, depthIntegralInternalWriter_, depthRateCmdReader_, depthRateDeadbandCfgReader_, depthRateReader_, depthRateSamplesCfgReader_, depthReader_, dropWtDepthExcursionCfgReader_, dropWtOverrideDelayCfgReader_, dtWriter_, elevatorAngleActionReader_, elevatorAngleActionWriter_, elevatorAngleCmdReader_, elevatorAngleReader_, elevatorDeadbandCfgReader_, elevatorIntegralWriter_, elevatorLimitCfgReader_, elevatorTurnTimeCfgReader_, elevDeviationCfgReader_, excursionDepthTimeoutCfgReader_, VerticalControlIF::FLOAT_ON_SURFACE, kdDepthBuoyCfgReader_, kdDepthCfgReader_, kdDepthRateBuoyCfgReader_, kdPitchElevatorCfgReader_, kdPitchMassCfgReader_, kiDepthBuoyCfgReader_, kiDepthCfgReader_, kiDepthOffCfgReader_, kiDepthRateBuoyCfgReader_, kiPitchElevatorCfgReader_, kiPitchMassCfgReader_, kpDepthBuoyCfgReader_, kpDepthCfgReader_, kpDepthRateBuoyCfgReader_, kpPitchElevatorCfgReader_, kpPitchMassCfgReader_, lastBuoyancyCmd_, limitDepthTrajectoryCfgReader_, Component::logger_, massDeadbandCfgReader_, massDefaultCfgReader_, massFilterLimitCfgReader_, massFilterWidthCfgReader_, massIntegralWriter_, massPitchErrorWriter_, massPositionActionReader_, massPositionActionWriter_, massPositionCmdReader_, massPositionLimitAftCfgReader_, massPositionLimitFwdCfgReader_, massPositionReader_, massTurnTimeCfgReader_, maxBuoyDiveAccelCfgReader_, maxBuoyDiveRateCfgReader_, maxBuoyIntCfgReader_, maxDepthIntCfgReader_, maxDiveAccelCfgReader_, maxDiveRateCfgReader_, maxPitchElevatorIntCfgReader_, maxPitchMassIntCfgReader_, maxPitchRateCfgReader_, minAscendPitchCfgReader_, minDepthExcursionCfgReader_, Component::newConfigReader(), Component::newDataReader(), Component::newDataWriter(), Component::newUniversalReader(), nominalDtCfgReader_, periodCmdReader_, pitchCmdReader_, pitchInternalWriter_, pitchLimitCfgReader_, pitchRateCmdReader_, pitchRateReader_, pitchReader_, UniversalURI::PLATFORM_BUOYANCY_POSITION, UniversalURI::PLATFORM_ELEVATOR_ANGLE, UniversalURI::PLATFORM_MASS_POSITION, UniversalURI::PLATFORM_PITCH_ANGLE, UniversalURI::PLATFORM_PITCH_RATE, smoothDepthInternalWriter_, speedCmdReader_, speedCmdWriter_, stopDepthExcursionCfgReader_, stopOverrideDelayBuoyCfgReader_, stopOverrideDelayCfgReader_, surfaceThresholdCfgReader_, Logger::syslog(), useElevIntInDepthModeCfgReader_, verticalMode_, and verticalModeReader_.
|
virtual |
References depthRateFilter_, and massFilter_.
|
private |
|
private |
References Timespan::asFloat(), buoyancyCmd_, buoyancyLimitHiCC_, buoyancyLimitLoCC_, buoyancyNeutral_, depth2buoyInt_, depthDeadband_, depthErrorInternalWriter_, depthIntegral_, depthRateCmdReader_, depthRateReader_, depthReader_, depthTrajectory_, dt, Component::dt_, elevatorPitchIntegral_, floatAtSurface(), Trajectory::getXDot(), kdDepth_, kdDepthBuoy_, kiDepth_, kiDepthBuoy_, kiDepthOff_, kpDepth_, kpDepthBuoy_, lastBuoyancyCmd_, lastDepthCmd_, AuvMath::Limit(), limitDepthTrajectory_, massControl(), maxBuoyDiveAccel_, maxBuoyDiveRate_, maxBuoyInt_, maxDepthInt_, maxDiveAccel_, maxDiveRate_, Units::METER, Units::METER_PER_SECOND, AuvMath::Min(), AuvMath::NanZero(), nominalDt_, pitchCmdReader_, pitchLimit_, pitchRateReader_, pitchReader_, Trajectory::project(), Units::RADIAN, Units::RADIAN_PER_SECOND, DataReader::read(), setMassAndElevator(), setPitch(), Trajectory::setX(), Trajectory::setXDot(), smoothDepthInternalWriter_, speedCmd_, surfaceThreshold_, useElevIntInDepthMode_, DataReader::wasTouchedSinceLastRun(), and DataWriter::write().
Referenced by controlVertical(), and floatAtSurface().
|
private |
References Timespan::asFloat(), buoyancyCmd_, buoyancyLimitHiCC_, buoyancyLimitLoCC_, buoyancyNeutral_, depth2buoyInt_, depthRateReader_, depthReader_, depthTrajectory_, dt, Component::dt_, floatAtSurface(), Trajectory::getXDot(), kdDepthRateBuoy_, kiDepthOff_, kiDepthRateBuoy_, kpDepthRateBuoy_, lastBuoyancyCmd_, lastDepthRateCmd_, AuvMath::Limit(), massAndElevatorControl(), massControl(), maxBuoyInt_, Units::METER, Units::METER_PER_SECOND, AuvMath::NanZero(), nominalDt_, pitchLimit_, pitchRateReader_, pitchReader_, Units::RADIAN, Units::RADIAN_PER_SECOND, DataReader::read(), setMassAndElevator(), and speedCmd_.
Referenced by controlVertical().
|
private |
References buoyancyCmd_, buoyancyCmdReader_, buoyancyLimitHiCC_, buoyancyPosition_, buoyancyPositionReader_, controlDepth(), controlDepthRate(), Units::CUBIC_CENTIMETER, VerticalControlIF::DEPTH, depth2buoyInt_, VerticalControlIF::DEPTH_RATE, depthCmdReader_, depthIntegral_, depthRateCmdReader_, depthTrajectory_, elevatorAngleCmdReader_, elevatorPitchIntegral_, Units::ENUM, Syslog::ERROR, VerticalControlIF::FLOAT_ON_SURFACE, floatAtSurface(), DataReader::isActive(), Component::isActive(), Supervisor::IsMissionManagerFailed(), lastBuoyancyPosition_, Component::logger_, VerticalControlIF::MASS_AND_ELEVATOR, massDefault_, massFilter_, massFilterBins_, massFilterPos_, massFilterWidth_, massPitchIntegral_, massPositionCmdReader_, Units::METER, Units::METER_PER_SECOND, nominalDt_, VerticalControlIF::NONE, periodCmd_, periodCmdReader_, VerticalControlIF::PITCH, VerticalControlIF::PITCH_RATE, VerticalControlIF::PITCH_ZERO, pitchCmdReader_, pitchRateCmdReader_, Units::RADIAN, Units::RADIAN_PER_SECOND, DataReader::read(), readConfig(), setBuoyancy(), setMassAndElevator(), setPitch(), setPitchRate(), Trajectory::setXDot(), speedCmd_, speedCmdReader_, VerticalControlIF::SURFACE, Logger::syslog(), verticalMode_, verticalModeReader_, and DataReader::wasTouchedSinceLastRun().
Referenced by run().
|
private |
References Timespan::asFloat(), dt, Component::dt_, elevatorLimit_, elevatorPitchIntegral_, kdPitchElevator_, kiPitchElevator_, kpPitchElevator_, AuvMath::Limit(), massPitchIntegral_, maxPitchElevatorInt_, AuvMath::NanZero(), VerticalControlIF::PITCH, VerticalControlIF::PITCH_ZERO, useElevIntInDepthMode_, and verticalMode_.
Referenced by setPitch().
|
private |
References buoyancyLimitHiCC_, buoyancyPumpDepth_, controlDepth(), depth2buoyInt_, depthIntegral_, depthReader_, elevatorLimit_, elevatorPitchIntegral_, massDefault_, massPitchIntegral_, massPositionLimitAft_, Units::METER, DataReader::read(), setBuoyancy(), setMassAndElevator(), and surfaceThreshold_.
Referenced by controlDepth(), controlDepthRate(), and controlVertical().
|
private |
References massFilter_, massFilterBins_, massFilterLimit_, and massFilterPos_.
Referenced by massAndElevatorControl(), and massControl().
|
virtual |
Provide a space for initialization before being run.
Reimplemented from Component.
References buoyancyDefault_, Syslog::CRITICAL, excursionStartTime_, Component::logger_, Timestamp::Now(), ok_, readConfig(), and Logger::syslog().
Referenced by run().
|
private |
References Timespan::asFloat(), VerticalControlIF::DEPTH, VerticalControlIF::DEPTH_RATE, dt, Component::dt_, dtWriter_, elevatorAngleReader_, elevatorLimit_, elevatorPitchIntegral_, getMassPitchFilterError(), kdPitchElevator_, kiPitchElevator_, kiPitchMass_, kpPitchElevator_, lastPitch_, AuvMath::Limit(), massDefault_, massPitchErrorWriter_, massPitchIntegral_, massPositionLimitAft_, massPositionLimitFwd_, massPositionReader_, maxPitchElevatorInt_, maxPitchMassInt_, Units::METER, AuvMath::NanZero(), VerticalControlIF::PITCH, VerticalControlIF::PITCH_ZERO, Units::RADIAN, DataReader::read(), Units::SECOND, VerticalControlIF::SURFACE, useElevIntInDepthMode_, verticalMode_, and DataWriter::write().
Referenced by controlDepthRate(), and setPitch().
|
private |
References Timespan::asFloat(), dt, Component::dt_, getMassPitchFilterError(), kdPitchMass_, kiPitchMass_, kpPitchMass_, lastPitch_, AuvMath::Limit(), massDefault_, massPitchErrorWriter_, massPitchIntegral_, massPositionLimitAft_, massPositionLimitFwd_, maxPitchMassInt_, AuvMath::NanZero(), VerticalControlIF::PITCH, VerticalControlIF::PITCH_ZERO, Units::RADIAN, verticalMode_, and DataWriter::write().
Referenced by controlDepth(), controlDepthRate(), and setPitch().
|
private |
Apply buoyancy or drop weight overrides if necessary.
References LPC3Reg::ActivateBurnwire(), Timespan::asFloat(), burnwireActivated_, Syslog::CRITICAL, Units::DEGREE, VerticalControlIF::DEPTH, VerticalControlIF::DEPTH_RATE, depthCmdReader_, depthDeadband_, depthRateCmdReader_, depthRateDeadband_, depthRateFilter_, depthRateFilterIndex_, depthRateReader_, depthRateSamples_, depthReader_, depthTrajectory_, dropWtDepthExcursion_, dropWtOverrideDelay_, Component::dt_, Timestamp::elapsed(), elevDeviation_, excursionDepthTimeout_, excursionStartTime_, failToGoDownDepth_, failToGoDownStart_, failToGoUpDepth_, failToGoUpStart_, VerticalControlIF::FLOAT_ON_SURFACE, Trajectory::getX(), DataReader::isActive(), Component::logger_, VerticalControlIF::MASS_AND_ELEVATOR, Units::METER, Units::METER_PER_SECOND, minAscendPitchCfg_, minDepthExcursion_, missionEnded_, VerticalControlIF::NONE, Timestamp::NOT_SET_TIME, Timestamp::Now(), ok_, VerticalControlIF::PITCH, VerticalControlIF::PITCH_RATE, VerticalControlIF::PITCH_ZERO, pitchCmdReader_, pitchRateCmdReader_, pitchReader_, previouslyBelowExcursion_, Units::RADIAN, DataReader::read(), speedCmd_, stopDepthExcursion_, stopOverrideDelay_, stopOverrideDelayBuoy_, VerticalControlIF::SURFACE, surfaceThreshold_, Logger::syslog(), verticalMode_, and DataReader::wasTouchedSinceLastRun().
Referenced by run().
|
private |
Load VerticalControl parameters.
References Units::BOOL, buoyancyDefault_, buoyancyDefaultCfgReader_, buoyancyLimitHiCC_, buoyancyLimitHiCCCfgReader_, buoyancyLimitLoCC_, buoyancyLimitLoCCCfgReader_, buoyancyNeutral_, buoyancyNeutralCfgReader_, buoyancyPumpDepth_, buoyancyPumpDepthCfgReader_, Units::COUNT, Units::CUBIC_CENTIMETER, depthDeadband_, depthDeadbandCfgReader_, depthRateDeadband_, depthRateDeadbandCfgReader_, depthRateFilter_, depthRateFilterIndex_, depthRateSamples_, depthRateSamplesCfgReader_, dropWtDepthExcursion_, dropWtDepthExcursionCfgReader_, dropWtOverrideDelay_, dropWtOverrideDelayCfgReader_, elevatorDeadbandCfgReader_, elevatorLimit_, elevatorLimitCfgReader_, elevatorTurnTime_, elevatorTurnTimeCfgReader_, elevDeadband_, elevDeviation_, elevDeviationCfgReader_, excursionDepthTimeout_, excursionDepthTimeoutCfgReader_, kdDepth_, kdDepthBuoy_, kdDepthBuoyCfgReader_, kdDepthCfgReader_, kdDepthRateBuoy_, kdDepthRateBuoyCfgReader_, kdPitchElevator_, kdPitchElevatorCfgReader_, kdPitchMass_, kdPitchMassCfgReader_, kiDepth_, kiDepthBuoy_, kiDepthBuoyCfgReader_, kiDepthCfgReader_, kiDepthOff_, kiDepthOffCfgReader_, kiDepthRateBuoy_, kiDepthRateBuoyCfgReader_, kiPitchElevator_, kiPitchElevatorCfgReader_, kiPitchMass_, kiPitchMassCfgReader_, kpDepth_, kpDepthBuoy_, kpDepthBuoyCfgReader_, kpDepthCfgReader_, kpDepthRateBuoy_, kpDepthRateBuoyCfgReader_, kpPitchElevator_, kpPitchElevatorCfgReader_, kpPitchMass_, kpPitchMassCfgReader_, limitDepthTrajectory_, limitDepthTrajectoryCfgReader_, massDeadband_, massDeadbandCfgReader_, massDefault_, massDefaultCfgReader_, massFilterLimit_, massFilterLimitCfgReader_, massFilterWidth_, massFilterWidthCfgReader_, massPositionLimitAft_, massPositionLimitAftCfgReader_, massPositionLimitFwd_, massPositionLimitFwdCfgReader_, massTurnTime_, massTurnTimeCfgReader_, maxBuoyDiveAccel_, maxBuoyDiveAccelCfgReader_, maxBuoyDiveRate_, maxBuoyDiveRateCfgReader_, maxBuoyInt_, maxBuoyIntCfgReader_, maxDepthInt_, maxDepthIntCfgReader_, maxDiveAccel_, maxDiveAccelCfgReader_, maxDiveRate_, maxDiveRateCfgReader_, maxPitchElevatorInt_, maxPitchElevatorIntCfgReader_, maxPitchMassInt_, maxPitchMassIntCfgReader_, maxPitchRate_, maxPitchRateCfgReader_, Units::METER, Units::METER_PER_SECOND, Units::METER_PER_SECOND_SQUARED, minAscendPitchCfg_, minAscendPitchCfgReader_, minDepthExcursion_, minDepthExcursionCfgReader_, nominalDt_, nominalDtCfgReader_, pitchLimit_, pitchLimitCfgReader_, Units::RADIAN, Units::RADIAN_PER_METER, Units::RADIAN_PER_SECOND, Units::RADIAN_PER_SECOND_PER_METER, Units::RADIAN_SECOND_PER_METER, Units::RATIO, DataReader::read(), Units::RECIPROCAL_SECOND, Units::SECOND, Timespan::Seconds(), stopDepthExcursion_, stopDepthExcursionCfgReader_, stopOverrideDelay_, stopOverrideDelayBuoy_, stopOverrideDelayBuoyCfgReader_, stopOverrideDelayCfgReader_, surfaceThreshold_, surfaceThresholdCfgReader_, useElevIntInDepthMode_, and useElevIntInDepthModeCfgReader_.
Referenced by controlVertical(), and initialize().
|
virtual |
The actual "payload" of the component.
Reimplemented from Component.
References controlVertical(), Units::CUBIC_CENTIMETER, depth2buoyInt_, depth2buoyIntInternalWriter_, depthIntegral_, depthIntegralInternalWriter_, elevatorIntegralWriter_, elevatorPitchIntegral_, Syslog::ERROR, VerticalControlIF::FLOAT_ON_SURFACE, initialize(), DataReader::isActive(), Component::logger_, massIntegralWriter_, massPitchIntegral_, Units::METER, ok_, overrideVertical(), Units::RADIAN, Logger::syslog(), verticalMode_, verticalModeReader_, and DataWriter::write().
|
private |
References buoyancyActionWriter_, buoyancyDefault_, buoyancyLimitHiCC_, buoyancyLimitLoCC_, buoyancyPumpDepth_, Units::CUBIC_CENTIMETER, depthReader_, AuvMath::Limit(), Units::METER, DataReader::read(), and DataWriter::write().
Referenced by controlVertical(), and floatAtSurface().
|
private |
attempts to achieve the desired mass and elevator settings
References elevatorAngleActionReader_, elevatorAngleActionWriter_, elevatorAngleCmdReader_, elevatorLimit_, elevDeadband_, DataReader::isActive(), AuvMath::Limit(), massDeadband_, massPositionActionReader_, massPositionActionWriter_, massPositionCmdReader_, massPositionLimitAft_, massPositionLimitFwd_, Units::METER, Units::RADIAN, DataReader::read(), AuvMath::Sign(), DataReader::wasTouchedSinceLastRun(), and DataWriter::write().
Referenced by controlDepth(), controlDepthRate(), controlVertical(), floatAtSurface(), and setPitch().
|
private |
References elevatorAngleActionWriter_, elevatorAngleCmdReader_, elevatorControl(), DataReader::isActive(), DataWriter::isImplemented(), AuvMath::Limit(), massAndElevatorControl(), massControl(), massPositionCmdReader_, maxPitchRate_, Units::METER, Units::METER_PER_SECOND, pitchInternalWriter_, pitchLimit_, pitchRateReader_, pitchReader_, Units::RADIAN, DataReader::read(), setMassAndElevator(), speedCmdWriter_, DataReader::wasTouchedSinceLastRun(), and DataWriter::write().
Referenced by controlDepth(), controlVertical(), and setPitchRate().
|
private |
References Timespan::asFloat(), dt, Component::dt_, AuvMath::Limit(), maxPitchRate_, AuvMath::NanZero(), pitchLimit_, pitchReader_, Units::RADIAN, DataReader::read(), and setPitch().
Referenced by controlVertical().
|
virtual |
|
private |
Action Writers.
Referenced by setBuoyancy(), and VerticalControl().
|
private |
Referenced by controlDepth(), controlDepthRate(), and controlVertical().
|
private |
Referenced by controlVertical(), and VerticalControl().
|
private |
Configuration values.
Referenced by initialize(), readConfig(), setBuoyancy(), and VerticalControl().
|
private |
Config readers.
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), controlDepthRate(), controlVertical(), floatAtSurface(), readConfig(), and setBuoyancy().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), controlDepthRate(), readConfig(), and setBuoyancy().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), controlDepthRate(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlVertical().
|
private |
Referenced by controlVertical(), and VerticalControl().
|
private |
Referenced by floatAtSurface(), readConfig(), and setBuoyancy().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by overrideVertical().
|
private |
Referenced by controlDepth(), controlDepthRate(), controlVertical(), floatAtSurface(), and run().
|
private |
Debugging Writers.
Referenced by run(), and VerticalControl().
|
private |
Referenced by controlVertical(), overrideVertical(), and VerticalControl().
|
private |
Referenced by controlDepth(), overrideVertical(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), and VerticalControl().
|
private |
Referenced by controlDepth(), controlVertical(), floatAtSurface(), and run().
|
private |
Referenced by run(), and VerticalControl().
|
private |
Referenced by controlDepth(), controlVertical(), overrideVertical(), and VerticalControl().
|
private |
Referenced by overrideVertical(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by overrideVertical(), readConfig(), and ~VerticalControl().
|
private |
Referenced by overrideVertical(), and readConfig().
|
private |
Referenced by controlDepth(), controlDepthRate(), overrideVertical(), and VerticalControl().
|
private |
Referenced by overrideVertical(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Universal Readers.
Referenced by controlDepth(), controlDepthRate(), floatAtSurface(), overrideVertical(), setBuoyancy(), and VerticalControl().
|
private |
Referenced by controlDepth(), controlDepthRate(), controlVertical(), and overrideVertical().
|
private |
Referenced by overrideVertical(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by overrideVertical(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by massAndElevatorControl(), and VerticalControl().
|
private |
Action Readers – for reading last positions, even if from Maintain command.
Referenced by setMassAndElevator(), and VerticalControl().
|
private |
Referenced by setMassAndElevator(), setPitch(), and VerticalControl().
|
private |
Referenced by controlVertical(), setMassAndElevator(), setPitch(), and VerticalControl().
|
private |
Referenced by massAndElevatorControl(), and VerticalControl().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by run(), and VerticalControl().
|
private |
Referenced by elevatorControl(), floatAtSurface(), massAndElevatorControl(), readConfig(), and setMassAndElevator().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), controlVertical(), elevatorControl(), floatAtSurface(), massAndElevatorControl(), and run().
|
private |
Referenced by readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by readConfig(), and setMassAndElevator().
|
private |
Referenced by overrideVertical(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by overrideVertical(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by initialize(), and overrideVertical().
|
private |
Referenced by overrideVertical().
|
private |
Referenced by overrideVertical().
|
private |
Referenced by overrideVertical().
|
private |
Referenced by overrideVertical().
|
private |
Referenced by controlDepth(), and readConfig().
|
private |
Referenced by controlDepth(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepthRate(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by elevatorControl(), massAndElevatorControl(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by massControl(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), and readConfig().
|
private |
Referenced by controlDepth(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), controlDepthRate(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepthRate(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by elevatorControl(), massAndElevatorControl(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by massAndElevatorControl(), massControl(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), and readConfig().
|
private |
Referenced by controlDepth(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepthRate(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by elevatorControl(), massAndElevatorControl(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by massControl(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), controlDepthRate(), and VerticalControl().
|
private |
Referenced by controlVertical().
|
private |
Referenced by controlDepth().
|
private |
Referenced by controlDepthRate().
|
private |
Referenced by massAndElevatorControl(), and massControl().
|
private |
|
private |
|
private |
Referenced by controlDepth(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by readConfig(), and setMassAndElevator().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlVertical(), floatAtSurface(), massAndElevatorControl(), massControl(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlVertical(), getMassPitchFilterError(), and ~VerticalControl().
|
private |
Referenced by controlVertical(), and getMassPitchFilterError().
|
private |
Referenced by getMassPitchFilterError(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlVertical(), and getMassPitchFilterError().
|
private |
Referenced by controlVertical(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by run(), and VerticalControl().
|
private |
Referenced by massAndElevatorControl(), massControl(), and VerticalControl().
|
private |
Referenced by controlVertical(), elevatorControl(), floatAtSurface(), massAndElevatorControl(), massControl(), and run().
|
private |
Referenced by setMassAndElevator(), and VerticalControl().
|
private |
Referenced by setMassAndElevator(), and VerticalControl().
|
private |
Referenced by controlVertical(), setMassAndElevator(), setPitch(), and VerticalControl().
|
private |
Referenced by floatAtSurface(), massAndElevatorControl(), massControl(), readConfig(), and setMassAndElevator().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by massAndElevatorControl(), massControl(), readConfig(), and setMassAndElevator().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by massAndElevatorControl(), and VerticalControl().
|
private |
Referenced by readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), controlDepthRate(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by elevatorControl(), massAndElevatorControl(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by massAndElevatorControl(), massControl(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by readConfig(), setPitch(), and setPitchRate().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by overrideVertical(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by overrideVertical(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by overrideVertical().
|
private |
Referenced by controlDepth(), controlDepthRate(), controlVertical(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by initialize(), overrideVertical(), and run().
|
private |
Referenced by controlVertical().
|
private |
Other controllers' Command readers.
Referenced by controlVertical(), and VerticalControl().
|
private |
Referenced by controlDepth(), controlVertical(), overrideVertical(), and VerticalControl().
|
private |
Referenced by setPitch(), and VerticalControl().
|
private |
Referenced by controlDepth(), controlDepthRate(), readConfig(), setPitch(), and setPitchRate().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlVertical(), overrideVertical(), and VerticalControl().
|
private |
Referenced by controlDepth(), controlDepthRate(), setPitch(), and VerticalControl().
|
private |
Referenced by controlDepth(), controlDepthRate(), overrideVertical(), setPitch(), setPitchRate(), and VerticalControl().
|
private |
Referenced by overrideVertical().
|
private |
Referenced by controlDepth(), and VerticalControl().
|
private |
Referenced by controlDepth(), controlDepthRate(), controlVertical(), and overrideVertical().
|
private |
Referenced by controlVertical(), and VerticalControl().
|
private |
Referenced by setPitch(), and VerticalControl().
|
private |
Referenced by overrideVertical(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by overrideVertical(), and readConfig().
|
private |
Referenced by overrideVertical(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), floatAtSurface(), overrideVertical(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlDepth(), elevatorControl(), massAndElevatorControl(), and readConfig().
|
private |
Referenced by readConfig(), and VerticalControl().
|
private |
Referenced by controlVertical(), elevatorControl(), massAndElevatorControl(), massControl(), overrideVertical(), run(), and VerticalControl().
|
private |
Command readers.
Referenced by controlVertical(), run(), and VerticalControl().
|
private |