DUNE: Uniform Navigational Environment  2.3.2
Control::AUV::Attitude::Task Struct Reference

Public Member Functions

 Task (const std::string &name, Tasks::Context &ctx)
 
 ~Task (void)
 
void onResourceInitialization (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)
 
const char * getName (void) const
 
const char * getSystemName (void) const
 
unsigned int getSystemId (void) const
 
unsigned int getEntityId (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
 
- 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)
 
- 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)
 
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]
 
Arguments m_args
 

Additional Inherited Members

- Public Types inherited from DUNE::Concurrency::Runnable
enum  State {
  StateStarting, StateRunning, StateStopping, StateDead,
  StateUnknown
}
 
- Static Public Member Functions inherited from DUNE::Concurrency::Thread
static unsigned native (void)
 
- 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
const char * getEntityLabel (void) const
 
void setEntityLabel (const std::string &label)
 
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)
 
unsigned int resolveEntity (const std::string &label) const
 
std::string resolveEntity (unsigned int id) const
 
bool stopping (void)
 
bool isActive (void) const
 
void waitForMessages (double timeout)
 
void consumeMessages (void)
 
template<typename T >
Parameterparam (const std::string &name, T &var)
 
template<typename Y , typename T >
Parameterparam (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 >
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 void onEntityResolution (void)
 
virtual void onReportEntityState (void)
 
virtual void onResourceAcquisition (void)
 
virtual void onResourceRelease (void)
 
virtual void onRequestActivation (void)
 
virtual void onRequestDeactivation (void)
 
- Protected Member Functions inherited from DUNE::Concurrency::Thread
void startImpl (void)
 
void stopImpl (void)
 
void joinImpl (void)
 
void setPriorityImpl (Scheduler::Policy policy, unsigned priority)
 
- Protected Attributes inherited from DUNE::Tasks::Task
Contextm_ctx
 

Constructor & Destructor Documentation

Control::AUV::Attitude::Task::~Task ( void  )
inlinevirtual

Destructor.

Reimplemented from DUNE::Tasks::Task.

Member Function Documentation

void Control::AUV::Attitude::Task::onEntityReservation ( void  )
inlinevirtual
void Control::AUV::Attitude::Task::onEstimatedState ( const double  timestep,
const IMC::EstimatedState *  msg 
)
inline
void Control::AUV::Attitude::Task::onResourceInitialization ( void  )
inlinevirtual

Initialize resources and start capturing frames.

Reimplemented from DUNE::Control::BasicAutopilot.

void Control::AUV::Attitude::Task::reset ( void  )
inlinevirtual

Member variable reset function.

Reimplemented from DUNE::Control::BasicAutopilot.

References Control::AUV::Attitude::LP_MAX_LOOPS, and m_pid.

float Control::AUV::Attitude::Task::rollControl ( const double  timestep,
const IMC::EstimatedState *  msg 
)
inline

Control the roll angle.

Parameters
[in]timesteptime interval to use in pid controller
[in]msgpointer to EstimatedState message
Returns
desired torque about x axis

References Control::AUV::Attitude::LP_ROLL, m_args, m_pid, Control::AUV::Attitude::Arguments::roll_offset, and Control::AUV::Attitude::Arguments::use_roll_offset.

Referenced by onEstimatedState().

Member Data Documentation

IMC::DesiredHeadingRate Control::AUV::Attitude::Task::m_hrate_ref

Heading controller heading rate reference.

Referenced by headingControl().

IMC::ControlParcel Control::AUV::Attitude::Task::m_parcels[LP_MAX_LOOPS]

PID parcels.

Referenced by initializePIDs(), and onEntityReservation().

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().

Collaboration diagram for Control::AUV::Attitude::Task:
Collaboration graph