DUNE: Uniform Navigational Environment
2019.02.0
|
Public Member Functions | |
Task (const std::string &name, Tasks::Context &ctx) | |
void | onResourceInitialization (void) |
void | onResourceAcquisition (void) |
void | onResourceRelease (void) |
void | onAutopilotActivation (void) |
void | onAutopilotDeactivation (void) |
void | onUpdateParameters (void) |
void | initializePIDs (void) |
void | reset (void) |
void | onEntityReservation (void) |
void | onEstimatedState (const double timestep, const IMC::EstimatedState *msg) |
float | depthControl (const double timestep, const IMC::EstimatedState *msg) |
float | rollControl (const double timestep, const IMC::EstimatedState *msg) |
float | headingControl (const double timestep, const IMC::EstimatedState *msg) |
Public Member Functions inherited from DUNE::Control::BasicAutopilot | |
BasicAutopilot (const std::string &name, Tasks::Context &ctx, const uint32_t controllable_loops, const uint32_t required_loops) | |
virtual | ~BasicAutopilot (void) |
virtual void | onEstimatedState (const double timestep, const IMC::EstimatedState *msg)=0 |
void | consume (const IMC::EstimatedState *msg) |
void | consume (const IMC::DesiredZ *msg) |
void | consume (const IMC::DesiredPitch *msg) |
void | consume (const IMC::DesiredHeading *msg) |
void | consume (const IMC::DesiredHeadingRate *msg) |
void | consume (const IMC::ControlLoops *msg) |
void | consume (const IMC::DesiredVelocity *msg) |
void | onMain (void) |
Public Member Functions inherited from DUNE::Tasks::Task | |
Task (const std::string &name, Context &context) | |
virtual | ~Task (void) |
const char * | getName (void) const |
const char * | getSystemName (void) const |
unsigned int | getSystemId (void) const |
unsigned int | getEntityId (void) const |
unsigned int | resolveEntity (const std::string &label) const |
std::string | resolveEntity (unsigned int id) const |
DebugLevel | getDebugLevel (void) const |
uint16_t | getActivationTime (void) const |
uint16_t | getDeactivationTime (void) const |
unsigned int | resolveSystemName (const std::string &name) const |
const char * | resolveSystemId (unsigned int id) const |
void | loadConfig (void) |
void | setPriority (unsigned int value) |
unsigned int | getPriority (void) const |
void | inf (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void | war (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void | err (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void | cri (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void void | debug (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void void void | trace (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void void void void | spew (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void void void void void | dispatch (IMC::Message *msg, unsigned int flags=0) |
void | dispatch (IMC::Message &msg, unsigned int flags=0) |
void | dispatchReply (const IMC::Message &original, IMC::Message &msg, unsigned int flags=0) |
void | receive (const IMC::Message *msg) |
void | reserveEntities (void) |
void | resolveEntities (void) |
void | acquireResources (void) |
void | releaseResources (void) |
void | initializeResources (void) |
void | updateParameters (bool act_deact=true) |
void | writeParamsXML (std::ostream &os) const |
const char * | getEntityLabel (void) const |
void | setEntityLabel (const std::string &label) |
Public Member Functions inherited from DUNE::Tasks::AbstractTask | |
AbstractTask (void) | |
virtual | ~AbstractTask (void) |
Public Member Functions inherited from DUNE::Concurrency::Thread | |
Thread (void) | |
virtual | ~Thread (void) |
int | getProcessorUsage (void) |
Public Member Functions inherited from DUNE::Concurrency::Runnable | |
Runnable (void) | |
virtual | ~Runnable (void) |
void | start (void) |
void | stop (void) |
void | join (void) |
void | stopAndJoin (void) |
void | setPriority (Scheduler::Policy policy, unsigned priority) |
unsigned | getPriority (void) |
State | getState (void) |
bool | isCreated (void) |
bool | isStopping (void) |
bool | isRunning (void) |
bool | isStarting (void) |
bool | isDead (void) |
Public Attributes | |
DiscretePID | m_pid [LP_MAX_LOOPS] |
IMC::DesiredHeadingRate | m_hrate_ref |
IMC::DesiredPitch | m_pitch_ref |
IMC::ControlParcel | m_parcels [LP_MAX_LOOPS] |
CoarseAltitude::Arguments | m_ca_args |
CoarseAltitude * | m_ca |
IMC::ControlParcel | m_ca_parcel |
bool | m_extra_pitch |
Arguments | m_args |
int | m_sampling_rate_relation |
Additional Inherited Members | |
Public Types inherited from DUNE::Concurrency::Runnable | |
enum | State { StateStarting, StateRunning, StateStopping, StateDead, StateUnknown } |
Protected Types inherited from DUNE::Control::BasicAutopilot | |
enum | VerticalMode { VERTICAL_MODE_NONE, VERTICAL_MODE_DEPTH, VERTICAL_MODE_ALTITUDE, VERTICAL_MODE_PITCH, VERTICAL_MODE_HEAVE, VERTICAL_MODE_SIZE } |
enum | YawMode { YAW_MODE_NONE, YAW_MODE_HEADING, YAW_MODE_HRATE, YAW_MODE_BYPASS, YAW_MODE_SIZE } |
Protected Member Functions inherited from DUNE::Control::BasicAutopilot | |
void | onDeactivation (void) |
void | onActivation (void) |
void | signalBadYaw (const char *desc=DTR("yaw control mode %d not supported")) |
void | signalBadVertical (const char *desc=DTR("vertical control mode %d not supported")) |
float | getVerticalRef (void) const |
VerticalMode | getVerticalMode (void) const |
float | getYawRef (void) const |
YawMode | getYawMode (void) const |
float | getSurgeRef (void) const |
float | getSwayRef (void) const |
float | getBottomFollowDepth (void) const |
Protected Member Functions inherited from DUNE::Tasks::Task | |
void | setEntityState (IMC::EntityState::StateEnum state, Status::Code code) |
void | setEntityState (IMC::EntityState::StateEnum state, const std::string &description) |
IMC::EntityState::StateEnum | getEntityState (void) const |
unsigned int | reserveEntity (const std::string &label) |
template<typename E > | |
E * | reserveEntity (const std::string &label) |
Entities::BasicEntity * | getLocalEntity (const std::string &label) |
bool | stopping (void) |
bool | isActive (void) const |
bool | isActivating (void) const |
bool | isDeactivating (void) const |
void | waitForMessages (double timeout) |
void | consumeMessages (void) |
template<typename T > | |
Parameter & | param (const std::string &name, T &var) |
template<typename Y , typename T > | |
Parameter & | param (const std::string &name, T &var) |
template<typename T > | |
bool | paramChanged (T &var) |
void | paramActive (Parameter::Scope def_scope, Parameter::Visibility def_visibility, bool def_value=false) |
void | setParamSectionEditor (const std::string &name) |
template<typename M , typename T > | |
void | bind (T *task_obj, void(T::*consumer)(const M *)=&T::consume) |
template<typename T > | |
void | bind (T *task_obj, const std::vector< uint32_t > &list) |
template<typename T , typename M > | |
void | bind (T *task_obj, const std::vector< uint32_t > &list, void(T::*consumer)(const M *)=&T::consume) |
template<typename T > | |
void | bind (T *task_obj, const std::vector< std::string > &list) |
void | requestActivation (void) |
void | requestDeactivation (void) |
void | activate (void) |
void | activationFailed (const std::string &reason) |
void | deactivate (void) |
void | deactivationFailed (const std::string &reason) |
virtual bool | onWriteParamsXML (std::ostream &os) const |
virtual void | onEntityResolution (void) |
virtual void | onReportEntityState (void) |
virtual void | onRequestActivation (void) |
virtual void | onRequestDeactivation (void) |
virtual void | onQueryEntityParameters (const IMC::QueryEntityParameters *msg) |
virtual void | onSetEntityParameters (const IMC::SetEntityParameters *msg) |
virtual void | onPushEntityParameters (const IMC::PushEntityParameters *msg) |
virtual void | onPopEntityParameters (const IMC::PopEntityParameters *msg) |
Protected Member Functions inherited from DUNE::Concurrency::Thread | |
void | startImpl (void) |
void | stopImpl (void) |
void | joinImpl (void) |
void | setPriorityImpl (Scheduler::Policy policy, unsigned priority) |
unsigned | getPriorityImpl (void) |
Protected Attributes inherited from DUNE::Tasks::Task | |
Context & | m_ctx |
std::vector < Entities::BasicEntity * > | m_entities |
|
inline |
References DUNE::Tasks::Context::config, DUNE::Tasks::Parameter::defaultValue(), Control::AUV::Attitude::Arguments::depth_offset, Control::AUV::Attitude::Arguments::depth_threshold, Control::AUV::Attitude::Arguments::error_attitude, Control::AUV::Attitude::Arguments::extra_pitch, Control::AUV::Attitude::Arguments::force_pitch, Control::AUV::Attitude::Arguments::gains, DUNE::Parsers::Config::get(), Control::AUV::Attitude::Arguments::hrate_oloop, Control::AUV::Attitude::Arguments::log_parcels, Control::AUV::Attitude::LP_MAX_LOOPS, m_args, m_ca_args, DUNE::Tasks::Task::m_ctx, Control::AUV::Attitude::Arguments::max_fin_rot, Control::AUV::Attitude::Arguments::max_hrate, Control::AUV::Attitude::Arguments::max_int, Control::AUV::Attitude::Arguments::max_pitch, Control::AUV::Attitude::Arguments::max_pitch_act, Control::AUV::Attitude::Arguments::min_dvl_alt, Control::AUV::Attitude::Arguments::min_dvl_depth, Control::AUV::Attitude::RollCompensation::offset_angle, DUNE::Tasks::Task::param(), Control::AUV::Attitude::Arguments::rc, Control::AUV::Attitude::Arguments::roll_control_enabled, Control::AUV::Attitude::Arguments::sampling_rate_relation, Control::AUV::Attitude::RollCompensation::speed_bounds, Control::AUV::Attitude::RollCompensation::speed_gain, Control::AUV::Attitude::Arguments::surface_pitch, Control::AUV::Attitude::Arguments::use_depth_offset, Control::AUV::Attitude::RollCompensation::use_offset, Control::AUV::Attitude::RollCompensation::use_speed, and Control::AUV::Attitude::Arguments::zref_extra.
|
inline |
classical inner pitch/outter depth nested controller.
[in] | timestep | time interval to use in pid controller. |
[in] | msg | pointer to EstimatedState message. |
References Control::AUV::Attitude::Arguments::depth_offset, Control::AUV::Attitude::Arguments::depth_threshold, DUNE::Tasks::Task::dispatch(), Control::AUV::Attitude::Arguments::error_attitude, Control::AUV::Attitude::Arguments::extra_pitch, Control::AUV::Attitude::Arguments::force_pitch, DUNE::Control::BasicAutopilot::getBottomFollowDepth(), DUNE::Control::BasicAutopilot::getVerticalMode(), DUNE::Control::BasicAutopilot::getVerticalRef(), Control::AUV::Attitude::Arguments::log_parcels, Control::AUV::Attitude::LP_DEPTH, Control::AUV::Attitude::LP_PITCH, m_args, m_ca, m_ca_parcel, m_extra_pitch, m_hrate_ref, m_pid, m_pitch_ref, m_sampling_rate_relation, Control::AUV::Attitude::Arguments::max_pitch, Control::AUV::Attitude::Arguments::min_dvl_alt, Control::AUV::Attitude::Arguments::min_dvl_depth, Control::AUV::Attitude::Arguments::sampling_rate_relation, DUNE::Control::BasicAutopilot::signalBadVertical(), Control::AUV::Attitude::Arguments::surface_pitch, Control::AUV::Attitude::Arguments::use_depth_offset, DUNE::Control::BasicAutopilot::VERTICAL_MODE_ALTITUDE, DUNE::Control::BasicAutopilot::VERTICAL_MODE_DEPTH, DUNE::Control::BasicAutopilot::VERTICAL_MODE_PITCH, and Control::AUV::Attitude::Arguments::zref_extra.
Referenced by onEstimatedState().
|
inline |
Control the heading angle.
[in] | timestep | time interval to use in pid controller. |
[in] | msg | pointer to EstimatedState message. |
References DUNE::Tasks::Task::dispatch(), Control::AUV::Attitude::Arguments::error_attitude, Control::AUV::Attitude::Arguments::gains, DUNE::Control::BasicAutopilot::getYawMode(), DUNE::Control::BasicAutopilot::getYawRef(), Control::AUV::Attitude::Arguments::hrate_oloop, Control::AUV::Attitude::LP_HEADING, Control::AUV::Attitude::LP_HRATE, m_args, m_hrate_ref, m_pid, DUNE::Control::BasicAutopilot::signalBadYaw(), DUNE::Control::BasicAutopilot::YAW_MODE_BYPASS, DUNE::Control::BasicAutopilot::YAW_MODE_HEADING, and DUNE::Control::BasicAutopilot::YAW_MODE_HRATE.
Referenced by onEstimatedState().
|
inline |
Initialize PID related variables.
References Control::AUV::Attitude::Arguments::gains, Control::AUV::Attitude::Arguments::log_parcels, Control::AUV::Attitude::LP_DEPTH, Control::AUV::Attitude::LP_HEADING, Control::AUV::Attitude::LP_HRATE, Control::AUV::Attitude::LP_MAX_LOOPS, Control::AUV::Attitude::LP_PITCH, Control::AUV::Attitude::LP_ROLL, m_args, m_parcels, m_pid, Control::AUV::Attitude::Arguments::max_fin_rot, Control::AUV::Attitude::Arguments::max_hrate, Control::AUV::Attitude::Arguments::max_int, Control::AUV::Attitude::Arguments::max_pitch, and Control::AUV::Attitude::Arguments::max_pitch_act.
Referenced by onUpdateParameters().
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
Reserve entities for messages.
Reimplemented from DUNE::Tasks::Task.
References Control::AUV::Attitude::Arguments::log_parcels, Control::AUV::Attitude::LP_MAX_LOOPS, m_args, m_ca_parcel, m_parcels, and DUNE::Tasks::Task::reserveEntity().
|
inline |
Computes control values when receiving EstimatedState.
[in] | timestep | time interval to use in pid controller. |
[in] | msg | pointer to EstimatedState message. |
References depthControl(), DUNE::Tasks::Task::dispatch(), Control::AUV::Attitude::Arguments::error_attitude, headingControl(), DUNE::Math::inverse(), m_args, Control::AUV::Attitude::Arguments::max_fin_rot, Control::AUV::Attitude::Arguments::max_pitch_act, Control::AUV::Attitude::Arguments::roll_control_enabled, rollControl(), and DUNE::Math::trimValue().
|
inlinevirtual |
Acquire resources.
Reimplemented from DUNE::Control::BasicAutopilot.
|
inlinevirtual |
Initialize resources.
Reimplemented from DUNE::Control::BasicAutopilot.
|
inlinevirtual |
|
inlinevirtual |
Update internal parameters.
Reimplemented from DUNE::Tasks::Task.
References initializePIDs(), Control::AUV::Attitude::LP_MAX_LOOPS, m_args, m_ca, m_ca_args, m_sampling_rate_relation, Control::AUV::Attitude::Arguments::max_fin_rot, Control::AUV::Attitude::Arguments::max_hrate, Control::AUV::Attitude::Arguments::max_int, Control::AUV::Attitude::Arguments::max_pitch, Control::AUV::Attitude::Arguments::max_pitch_act, Control::AUV::Attitude::RollCompensation::offset_angle, DUNE::Tasks::Task::paramChanged(), Control::AUV::Attitude::Arguments::rc, reset(), Control::AUV::Attitude::Arguments::sampling_rate_relation, and Control::AUV::Attitude::Arguments::surface_pitch.
|
inlinevirtual |
Member variable reset function.
Reimplemented from DUNE::Control::BasicAutopilot.
References Control::AUV::Attitude::LP_MAX_LOOPS, and m_pid.
Referenced by onUpdateParameters().
|
inline |
Control the roll angle.
[in] | timestep | time interval to use in pid controller. |
[in] | msg | pointer to EstimatedState message. |
References Control::AUV::Attitude::Arguments::gains, Control::AUV::Attitude::LP_ROLL, m_args, m_parcels, m_pid, Control::AUV::Attitude::RollCompensation::offset_angle, Control::AUV::Attitude::Arguments::rc, Control::AUV::Attitude::RollCompensation::speed_bounds, Control::AUV::Attitude::RollCompensation::speed_gain, Control::AUV::Attitude::RollCompensation::use_offset, and Control::AUV::Attitude::RollCompensation::use_speed.
Referenced by onEstimatedState().
Arguments Control::AUV::Attitude::Task::m_args |
Referenced by depthControl(), headingControl(), initializePIDs(), onEntityReservation(), onEstimatedState(), onUpdateParameters(), rollControl(), and Task().
CoarseAltitude* Control::AUV::Attitude::Task::m_ca |
Coarse Altitude pointer to object.
Referenced by depthControl(), onAutopilotActivation(), onAutopilotDeactivation(), onResourceAcquisition(), onResourceRelease(), and onUpdateParameters().
CoarseAltitude::Arguments Control::AUV::Attitude::Task::m_ca_args |
Coarse Altitude arguments.
Referenced by onResourceAcquisition(), onUpdateParameters(), and Task().
IMC::ControlParcel Control::AUV::Attitude::Task::m_ca_parcel |
Parcel for coarse altitude.
Referenced by depthControl(), and onEntityReservation().
bool Control::AUV::Attitude::Task::m_extra_pitch |
Applying extra reference.
Referenced by depthControl().
IMC::DesiredHeadingRate Control::AUV::Attitude::Task::m_hrate_ref |
Heading controller heading rate reference.
Referenced by depthControl(), and headingControl().
IMC::ControlParcel Control::AUV::Attitude::Task::m_parcels[LP_MAX_LOOPS] |
PID parcels.
Referenced by initializePIDs(), onEntityReservation(), and rollControl().
DiscretePID Control::AUV::Attitude::Task::m_pid[LP_MAX_LOOPS] |
PID Controllers.
Referenced by depthControl(), headingControl(), initializePIDs(), reset(), and rollControl().
IMC::DesiredPitch Control::AUV::Attitude::Task::m_pitch_ref |
Depth controller pitch reference.
Referenced by depthControl().
int Control::AUV::Attitude::Task::m_sampling_rate_relation |
Referenced by depthControl(), and onUpdateParameters().