DUNE: Uniform Navigational Environment
2019.02.0
|
Public Member Functions | |
Task (const std::string &name, Tasks::Context &ctx) | |
void | onUpdateParameters (void) |
void | onActivation (void) |
void | onDeactivation (void) |
void | reset (void) |
void | onResourceRelease (void) |
void | onResourceInitialization (void) |
void | onEntityResolution (void) |
void | consume (const IMC::Brake *msg) |
void | consume (const IMC::ServoPosition *msg) |
void | consume (const IMC::DesiredControl *msg) |
void | consume (const IMC::ControlLoops *msg) |
void | consume (const IMC::EstimatedState *msg) |
void | consume (const IMC::Rpm *msg) |
void | allocate (float k, float m, float n) |
void | brake (float k, float m) |
void | brake (void) |
void | brakePitch (void) |
void | computeProducedTorque (void) |
void | dispatchAllFins (void) |
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 | |
IMC::SetServoPosition | m_fins [c_fins] |
IMC::SetServoPosition | m_last [c_fins] |
IMC::AllocatedControlTorques | m_allocated |
IMC::EstimatedState * | m_last_estimated_state |
IMC::Rpm * | m_last_rpm |
bool | m_braking |
unsigned | m_spos_ent |
float | m_servo_pos [c_fins] |
uint32_t | m_scope_ref |
Time::Delta | m_delta |
Arguments | m_args |
Math::MovingAverage< double > * | m_avg_ms |
Math::MovingAverage< double > * | m_avg_rpm |
Additional Inherited Members | |
Public Types inherited from DUNE::Concurrency::Runnable | |
enum | State { StateStarting, StateRunning, StateStopping, StateDead, StateUnknown } |
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 | onEntityReservation (void) |
virtual void | onReportEntityState (void) |
virtual void | onResourceAcquisition (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 Control::AUV::Allocator::Arguments::brake_margin, DUNE::Tasks::Context::config, Control::AUV::Allocator::Arguments::conv, DUNE::Tasks::Parameter::defaultValue(), DUNE::Parsers::Config::get(), Control::AUV::Allocator::Arguments::k_pitch, Control::AUV::Allocator::Arguments::k_roll, Control::AUV::Allocator::Arguments::k_yaw, m_args, m_avg_ms, m_avg_rpm, DUNE::Tasks::Task::m_ctx, Control::AUV::Allocator::Arguments::max_fin_rate, Control::AUV::Allocator::Arguments::max_fin_rot, Control::AUV::Allocator::Arguments::max_ms, Control::AUV::Allocator::Arguments::max_rpm, Control::AUV::Allocator::Arguments::ms_minimum, DUNE::Tasks::Task::param(), Control::AUV::Allocator::Arguments::pitch_brake, Control::AUV::Allocator::Arguments::roll_not_velocity_dependent, Control::AUV::Allocator::Arguments::rpm_minimum, DUNE::Tasks::Task::setEntityState(), Control::AUV::Allocator::Arguments::spos_label, Control::AUV::Allocator::Arguments::velocity_dependent, and Control::AUV::Allocator::Arguments::velocity_dependent_unit.
|
inline |
Allocate desired control torques on the fins.
[in] | k | desired control torque in roll |
[in] | m | desired control torque in pitch |
[in] | n | desired control torque in yaw |
References Control::AUV::Allocator::Arguments::conv, DUNE::Tasks::Task::dispatch(), dispatchAllFins(), Control::AUV::Allocator::Arguments::k_pitch, Control::AUV::Allocator::Arguments::k_roll, Control::AUV::Allocator::Arguments::k_yaw, m_allocated, m_args, m_avg_ms, m_avg_rpm, m_fins, m_last_estimated_state, m_last_rpm, Control::AUV::Allocator::Arguments::max_fin_rot, Control::AUV::Allocator::Arguments::max_ms, Control::AUV::Allocator::Arguments::max_rpm, Control::AUV::Allocator::Arguments::ms_minimum, Control::AUV::Allocator::Arguments::roll_not_velocity_dependent, Control::AUV::Allocator::Arguments::rpm_minimum, DUNE::Math::trimValue(), DUNE::Math::trimValueMod(), Control::AUV::Allocator::Arguments::velocity_dependent, and Control::AUV::Allocator::Arguments::velocity_dependent_unit.
Referenced by consume().
|
inline |
[in] | k | torque about x to apply |
[in] | m | torque about y to apply |
References Control::AUV::Allocator::Arguments::brake_margin, Control::AUV::Allocator::Arguments::conv, dispatchAllFins(), m_args, m_fins, Control::AUV::Allocator::Arguments::max_fin_rot, and DUNE::Math::trimValue().
|
inline |
Brake but ignore desired control.
References dispatchAllFins(), m_args, m_fins, and Control::AUV::Allocator::Arguments::max_fin_rot.
Referenced by consume().
|
inline |
Change my pitch up.
References dispatchAllFins(), m_args, m_fins, and Control::AUV::Allocator::Arguments::max_fin_rot.
Referenced by consume().
|
inline |
Compute actually produced torque.
References DUNE::Tasks::Task::dispatch(), and m_servo_pos.
Referenced by consume().
|
inline |
References brake(), brakePitch(), m_args, m_braking, and Control::AUV::Allocator::Arguments::pitch_brake.
|
inline |
References computeProducedTorque(), m_servo_pos, and m_spos_ent.
|
inline |
|
inline |
|
inline |
References DUNE::Tasks::Task::getSystemId(), and m_last_estimated_state.
|
inline |
References DUNE::Tasks::Task::getSystemId(), and m_last_rpm.
|
inline |
Dispatch all fins desired positions.
References DUNE::Tasks::Task::dispatch(), m_args, m_delta, m_fins, m_last, DUNE::Math::max(), and Control::AUV::Allocator::Arguments::max_fin_rate.
Referenced by allocate(), brake(), and brakePitch().
|
inlinevirtual |
Called when the task starts/resumes normal execution.
Reimplemented from DUNE::Tasks::Task.
References DUNE::Tasks::Task::setEntityState().
|
inlinevirtual |
Called when the task stops normal execution and enters an idleness state.
Reimplemented from DUNE::Tasks::Task.
References DUNE::Tasks::Task::setEntityState().
|
inlinevirtual |
Resolve entities for messages.
Reimplemented from DUNE::Tasks::Task.
References m_args, m_spos_ent, DUNE::Tasks::Task::resolveEntity(), and Control::AUV::Allocator::Arguments::spos_label.
|
inlinevirtual |
Implements DUNE::Tasks::Task.
References DUNE::Tasks::Task::stopping(), and DUNE::Tasks::Task::waitForMessages().
|
inlinevirtual |
Called when the task is instructed to initialize resources acquired previously or whose initialization depends on run-time parameters.
Reimplemented from DUNE::Tasks::Task.
References m_args, m_avg_ms, m_avg_rpm, m_fins, m_last, m_servo_pos, Control::AUV::Allocator::Arguments::ms_minimum, reset(), and Control::AUV::Allocator::Arguments::rpm_minimum.
|
inlinevirtual |
Release resources.
Reimplemented from DUNE::Tasks::Task.
References m_avg_ms, m_avg_rpm, m_last_estimated_state, and m_last_rpm.
|
inlinevirtual |
Called when the task is instructed to update its run-time parameters.
Derived classes that need to compute auxiliary values based on run-time parameters should override this function.
Reimplemented from DUNE::Tasks::Task.
References m_args, Control::AUV::Allocator::Arguments::max_fin_rate, Control::AUV::Allocator::Arguments::max_fin_rot, and DUNE::Tasks::Task::paramChanged().
|
inline |
References m_braking, and DUNE::Tasks::Task::requestDeactivation().
Referenced by consume(), and onResourceInitialization().
IMC::AllocatedControlTorques Control::AUV::Allocator::Task::m_allocated |
Allocated torques feedback message.
Referenced by allocate().
Arguments Control::AUV::Allocator::Task::m_args |
Task arguments.
Referenced by allocate(), brake(), brakePitch(), consume(), dispatchAllFins(), onEntityResolution(), onResourceInitialization(), onUpdateParameters(), and Task().
Math::MovingAverage<double>* Control::AUV::Allocator::Task::m_avg_ms |
Referenced by allocate(), onResourceInitialization(), onResourceRelease(), and Task().
Math::MovingAverage<double>* Control::AUV::Allocator::Task::m_avg_rpm |
Referenced by allocate(), onResourceInitialization(), onResourceRelease(), and Task().
Time::Delta Control::AUV::Allocator::Task::m_delta |
Time Delta.
Referenced by dispatchAllFins().
IMC::SetServoPosition Control::AUV::Allocator::Task::m_fins[c_fins] |
Fin commands.
Referenced by allocate(), brake(), brakePitch(), dispatchAllFins(), and onResourceInitialization().
IMC::SetServoPosition Control::AUV::Allocator::Task::m_last[c_fins] |
Fin last commands.
Referenced by dispatchAllFins(), and onResourceInitialization().
IMC::EstimatedState* Control::AUV::Allocator::Task::m_last_estimated_state |
Last lats EstimatedState.
Referenced by allocate(), consume(), and onResourceRelease().
IMC::Rpm* Control::AUV::Allocator::Task::m_last_rpm |
Last lats Rpm.
Referenced by allocate(), consume(), and onResourceRelease().
uint32_t Control::AUV::Allocator::Task::m_scope_ref |
float Control::AUV::Allocator::Task::m_servo_pos[c_fins] |
Servo positions.
Referenced by computeProducedTorque(), consume(), and onResourceInitialization().
unsigned Control::AUV::Allocator::Task::m_spos_ent |
Entity id for the servo position messages.
Referenced by consume(), and onEntityResolution().