![]() |
DUNE: Uniform Navigational Environment
2.3.1
|
Public Member Functions | |
| Task (const std::string &name, Tasks::Context &ctx) | |
| void | reset (void) |
| void | onResourceInitialization (void) |
| void | onUpdateParameters (void) |
| void | onEstimatedState (const double timestep, const IMC::EstimatedState *msg) |
| float | surgeControl (const double timestep, const IMC::EstimatedState *msg) |
| float | swayControl (const double timestep, const IMC::EstimatedState *msg) |
| float | headingControl (const double timestep, const IMC::EstimatedState *msg) |
| void | tal (double X, double Y, double N) |
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 |
| 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_hrate_pid |
| DiscretePID | m_heading_pid |
| DiscretePID | m_surge_pid |
| DiscretePID | m_sway_pid |
| IMC::DesiredHeadingRate | m_hrate_ref |
| 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 > | |
| 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::ROV::HorizontalPlane::Arguments::heading_gains, Control::ROV::HorizontalPlane::Arguments::hrate_bypass, Control::ROV::HorizontalPlane::Arguments::hrate_gains, m_args, Control::ROV::HorizontalPlane::Arguments::max_hrate, Control::ROV::HorizontalPlane::Arguments::max_surge, Control::ROV::HorizontalPlane::Arguments::max_sway, Control::ROV::HorizontalPlane::Arguments::max_thrust, Control::ROV::HorizontalPlane::Arguments::n_thrusters, DUNE::Tasks::Task::param(), Control::ROV::HorizontalPlane::Arguments::surge_gains, Control::ROV::HorizontalPlane::Arguments::sway_gains, and Control::ROV::HorizontalPlane::Arguments::tmat.
|
inline |
Compute thrust necessary to comply with desired heading or heading rate.
References DUNE::Tasks::Task::dispatch(), DUNE::Control::BasicAutopilot::getYawMode(), DUNE::Control::BasicAutopilot::getYawRef(), m_heading_pid, m_hrate_pid, m_hrate_ref, 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 |
References headingControl(), surgeControl(), swayControl(), and tal().
|
inlinevirtual |
Called when the task is instructed to initialize resources acquired previously or whose initialization depends on run-time parameters.
Reimplemented from DUNE::Control::BasicAutopilot.
References Control::ROV::HorizontalPlane::Arguments::heading_gains, Control::ROV::HorizontalPlane::Arguments::hrate_gains, m_args, m_heading_pid, m_hrate_pid, m_surge_pid, m_sway_pid, Control::ROV::HorizontalPlane::Arguments::max_hrate, Control::ROV::HorizontalPlane::Arguments::max_thrust, Control::ROV::HorizontalPlane::Arguments::surge_gains, and Control::ROV::HorizontalPlane::Arguments::sway_gains.
|
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::ROV::HorizontalPlane::Arguments::max_hrate, and DUNE::Tasks::Task::paramChanged().
|
inlinevirtual |
Reset to initial values.
Reimplemented from DUNE::Control::BasicAutopilot.
References m_heading_pid, m_hrate_pid, m_surge_pid, m_sway_pid, and tal().
|
inline |
Compute thrust necessary to comply with desired surge speed.
References DUNE::Control::BasicAutopilot::getSurgeRef(), and m_surge_pid.
Referenced by onEstimatedState().
|
inline |
Compute thrust necessary to comply with desired sway speed.
References DUNE::Control::BasicAutopilot::getSwayRef(), and m_sway_pid.
Referenced by onEstimatedState().
|
inline |
function for thrust allocation surge, sway and yaw force (respectively X, Y and N)
References DUNE::Tasks::Task::dispatch(), m_args, Control::ROV::HorizontalPlane::Arguments::max_thrust, Control::ROV::HorizontalPlane::Arguments::n_thrusters, Control::ROV::HorizontalPlane::Arguments::tmat, and DUNE::Math::trimValue().
Referenced by onEstimatedState(), and reset().
| Arguments Control::ROV::HorizontalPlane::Task::m_args |
Referenced by onResourceInitialization(), onUpdateParameters(), tal(), and Task().
| DiscretePID Control::ROV::HorizontalPlane::Task::m_heading_pid |
Heading PID controller.
Referenced by headingControl(), onResourceInitialization(), and reset().
| DiscretePID Control::ROV::HorizontalPlane::Task::m_hrate_pid |
Heading rate PID controller.
Referenced by headingControl(), onResourceInitialization(), and reset().
| IMC::DesiredHeadingRate Control::ROV::HorizontalPlane::Task::m_hrate_ref |
Heading controller heading rate reference.
Referenced by headingControl().
| DiscretePID Control::ROV::HorizontalPlane::Task::m_surge_pid |
Surge PID controller.
Referenced by onResourceInitialization(), reset(), and surgeControl().
| DiscretePID Control::ROV::HorizontalPlane::Task::m_sway_pid |
Sway PID controller.
Referenced by onResourceInitialization(), reset(), and swayControl().
