DUNE: Uniform Navigational Environment
2.5.0
|
Public Member Functions | |
Task (const std::string &name, Tasks::Context &ctx) | |
void | onActivation (void) |
void | onDeactivation (void) |
void | onResourceInitialization (void) |
void | onUpdateParameters (void) |
void | initializePIDs (void) |
void | reset (void) |
void | consume (const IMC::Abort *msg) |
void | consume (const IMC::Brake *msg) |
void | consume (const IMC::DesiredSpeed *msg) |
void | consume (const IMC::EstimatedState *msg) |
void | consume (const IMC::ControlLoops *msg) |
void | consume (const IMC::Rpm *msg) |
void | rpmToThrust (float rpmvalue, float desired_rpm, double timestep) |
void | mpsToRpm (float abs_gvel, double timestep) |
void | dispatchThrust (float value, double timestep) |
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 |
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) |
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) |
State | getState (void) |
bool | isCreated (void) |
bool | isStopping (void) |
bool | isRunning (void) |
bool | isStarting (void) |
bool | isDead (void) |
Public Attributes | |
float | m_desired_speed |
uint8_t | m_speed_units |
Delta | m_last_rpm |
Delta | m_last_mps |
DiscretePID | m_rpm_pid |
DiscretePID | m_mps_pid |
IMC::SetThrusterActuation | m_act |
IMC::SetThrusterActuation | m_last_act |
float | m_desired_rpm |
float | m_desired_gvel |
bool | m_u_active |
float | m_previous_rpm |
bool | m_braking |
IMC::ControlParcel | m_parcel_mps |
IMC::ControlParcel | m_parcel_rpm |
uint32_t | m_scope_ref |
Arguments | m_args |
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 | |
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 > | |
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 > | |
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 | onEntityReservation (void) |
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 | |
Context & | m_ctx |
|
inline |
References DUNE::Tasks::Parameter::defaultValue(), Control::AUV::Speed::Arguments::hardrpms, Control::AUV::Speed::Arguments::log_parcels, m_args, Control::AUV::Speed::Arguments::max_accel, Control::AUV::Speed::Arguments::max_int_mps, Control::AUV::Speed::Arguments::max_rpm, Control::AUV::Speed::Arguments::max_thrust, Control::AUV::Speed::Arguments::min_rpm, Control::AUV::Speed::Arguments::min_thrust, Control::AUV::Speed::Arguments::mps_ffgain, Control::AUV::Speed::Arguments::mps_gains, DUNE::Tasks::Task::param(), Control::AUV::Speed::Arguments::ramp_act, Control::AUV::Speed::Arguments::rpm_ffgain, Control::AUV::Speed::Arguments::rpm_gains, Control::AUV::Speed::Arguments::rpms_eos, and DUNE::Tasks::Task::setEntityState().
|
inline |
References DUNE::Tasks::Task::debug(), DUNE::Tasks::Task::getSystemId(), and reset().
|
inline |
References m_braking.
|
inline |
References DUNE::Tasks::Task::isActive(), m_desired_speed, and m_speed_units.
|
inline |
References DUNE::Tasks::Task::isActive(), m_last_mps, m_speed_units, m_u_active, and mpsToRpm().
|
inline |
|
inline |
|
inline |
Dispatch to bus SetThrusterActuation message.
[in] | value | set thrust actuation value |
[in] | timestep | amount of time since last control step |
References DUNE::Tasks::Task::dispatch(), m_act, m_args, m_braking, m_last_act, Control::AUV::Speed::Arguments::ramp_act, and DUNE::Math::trimValue().
Referenced by consume(), and rpmToThrust().
|
inline |
Initialize PID related variables.
References Control::AUV::Speed::Arguments::log_parcels, m_args, m_mps_pid, m_parcel_mps, m_parcel_rpm, m_rpm_pid, Control::AUV::Speed::Arguments::max_int_mps, Control::AUV::Speed::Arguments::max_thrust, Control::AUV::Speed::Arguments::min_thrust, Control::AUV::Speed::Arguments::mps_gains, and Control::AUV::Speed::Arguments::rpm_gains.
Referenced by onUpdateParameters().
|
inline |
Convert meters per second to a desired rpm value.
[in] | abs_gvel | absolute ground velocity |
[in] | timestep | amount of time since last control step |
References m_args, m_desired_gvel, m_desired_rpm, m_desired_speed, m_mps_pid, m_parcel_mps, m_previous_rpm, m_speed_units, Control::AUV::Speed::Arguments::max_accel, Control::AUV::Speed::Arguments::max_rpm, Control::AUV::Speed::Arguments::min_rpm, and Control::AUV::Speed::Arguments::mps_ffgain.
Referenced by consume().
|
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 |
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_act, DUNE::Tasks::Task::requestDeactivation(), and reset().
|
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 initializePIDs(), Control::AUV::Speed::Arguments::log_parcels, m_args, Control::AUV::Speed::Arguments::max_int_mps, Control::AUV::Speed::Arguments::max_thrust, Control::AUV::Speed::Arguments::min_thrust, Control::AUV::Speed::Arguments::mps_ffgain, Control::AUV::Speed::Arguments::mps_gains, DUNE::Tasks::Task::paramChanged(), reset(), Control::AUV::Speed::Arguments::rpm_ffgain, and Control::AUV::Speed::Arguments::rpm_gains.
|
inline |
References DUNE::Tasks::Task::dispatch(), m_act, m_braking, m_desired_speed, m_last_act, m_mps_pid, m_previous_rpm, m_rpm_pid, m_speed_units, and m_u_active.
Referenced by consume(), onResourceInitialization(), and onUpdateParameters().
|
inline |
Convert rpm value to thrust actuation.
[in] | rpmvalue | value of rpms currently in the motor |
[in] | desired_rpm | desired rpms for the motor |
[in] | timestep | amount of time since last control step |
References dispatchThrust(), Control::AUV::Speed::Arguments::hardrpms, m_args, m_parcel_rpm, m_rpm_pid, Control::AUV::Speed::Arguments::rpm_ffgain, and Control::AUV::Speed::Arguments::rpms_eos.
Referenced by consume().
IMC::SetThrusterActuation Control::AUV::Speed::Task::m_act |
Thruster actuaction.
Referenced by dispatchThrust(), onResourceInitialization(), and reset().
Arguments Control::AUV::Speed::Task::m_args |
Task arguments.
Referenced by dispatchThrust(), initializePIDs(), mpsToRpm(), onUpdateParameters(), rpmToThrust(), and Task().
bool Control::AUV::Speed::Task::m_braking |
True if braking.
Referenced by consume(), dispatchThrust(), and reset().
float Control::AUV::Speed::Task::m_desired_gvel |
Last desired ground velocity.
Referenced by mpsToRpm().
float Control::AUV::Speed::Task::m_desired_rpm |
Desired Rpms from ground velocity controller.
Referenced by consume(), and mpsToRpm().
float Control::AUV::Speed::Task::m_desired_speed |
Desired speed.
Referenced by consume(), mpsToRpm(), and reset().
IMC::SetThrusterActuation Control::AUV::Speed::Task::m_last_act |
Last thruster actuaction.
Referenced by dispatchThrust(), and reset().
Delta Control::AUV::Speed::Task::m_last_mps |
Time of last MPS message.
Referenced by consume().
Delta Control::AUV::Speed::Task::m_last_rpm |
Time of last RPM message.
Referenced by consume().
DiscretePID Control::AUV::Speed::Task::m_mps_pid |
MPS PID controller.
Referenced by initializePIDs(), mpsToRpm(), and reset().
IMC::ControlParcel Control::AUV::Speed::Task::m_parcel_mps |
Control Parcels for meters per second controller.
Referenced by initializePIDs(), and mpsToRpm().
IMC::ControlParcel Control::AUV::Speed::Task::m_parcel_rpm |
Control Parcels for rpm controller.
Referenced by initializePIDs(), and rpmToThrust().
float Control::AUV::Speed::Task::m_previous_rpm |
previous value of the desired rpm speed
Referenced by consume(), mpsToRpm(), and reset().
DiscretePID Control::AUV::Speed::Task::m_rpm_pid |
RPM PID controller.
Referenced by initializePIDs(), reset(), and rpmToThrust().
uint32_t Control::AUV::Speed::Task::m_scope_ref |
uint8_t Control::AUV::Speed::Task::m_speed_units |
Desired speed units.
Referenced by consume(), mpsToRpm(), and reset().
bool Control::AUV::Speed::Task::m_u_active |