auv_control
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
auv_control::OptimalHeadingController Class Reference

The task context provides and requires services. It uses an ExecutionEngine to perform its functions. Essential interfaces are operations, data flow ports and properties. These interfaces have been defined using the oroGen specification. In order to modify the interfaces you should (re)use oroGen and rely on the associated workflow. Task that allows a vehicle to drive long distances in an optimal orientation. So the vehicle can drive faster to his target position. This controler works with Commands in AlignedPosition Frame. More...

#include <OptimalHeadingController.hpp>

Inheritance diagram for auv_control::OptimalHeadingController:

Public Member Functions

 OptimalHeadingController (std::string const &name="auv_control::OptimalHeadingController")
 
 OptimalHeadingController (std::string const &name, RTT::ExecutionEngine *engine)
 
 ~OptimalHeadingController ()
 
bool configureHook ()
 The following lines are template definitions for the various state machine. More...
 
bool startHook ()
 
void updateHook ()
 
void errorHook ()
 

Protected Member Functions

void keep ()
 
bool calcOutput (const LinearAngular6DCommandStatus &merged_command)
 

Protected Attributes

base::samples::RigidBodyState orientation_sample
 
base::Timeout new_orientation_samples_timeout
 

Friends

class OptimalHeadingControllerBase
 

Detailed Description

The task context provides and requires services. It uses an ExecutionEngine to perform its functions. Essential interfaces are operations, data flow ports and properties. These interfaces have been defined using the oroGen specification. In order to modify the interfaces you should (re)use oroGen and rely on the associated workflow. Task that allows a vehicle to drive long distances in an optimal orientation. So the vehicle can drive faster to his target position. This controler works with Commands in AlignedPosition Frame.

The name of a TaskContext is primarily defined via:

     deployment 'deployment_name'
         task('custom_task_name','auv_control::OptimalHeadingController')
     end

It can be dynamically adapted when the deployment is called with a prefix argument.

Constructor & Destructor Documentation

◆ OptimalHeadingController() [1/2]

OptimalHeadingController::OptimalHeadingController ( std::string const &  name = "auv_control::OptimalHeadingController")

TaskContext constructor for OptimalHeadingController

Parameters
nameName of the task. This name needs to be unique to make it identifiable via nameservices.
initial_stateThe initial TaskState of the TaskContext. Default is Stopped state.

◆ OptimalHeadingController() [2/2]

OptimalHeadingController::OptimalHeadingController ( std::string const &  name,
RTT::ExecutionEngine *  engine 
)

TaskContext constructor for OptimalHeadingController

Parameters
nameName of the task. This name needs to be unique to make it identifiable for nameservices.
engineThe RTT Execution engine to be used for this task, which serialises the execution of all commands, programs, state machines and incoming events for a task.

◆ ~OptimalHeadingController()

OptimalHeadingController::~OptimalHeadingController ( )

Default deconstructor of OptimalHeadingController

Member Function Documentation

◆ calcOutput()

bool OptimalHeadingController::calcOutput ( const LinearAngular6DCommandStatus merged_command)
protected

◆ configureHook()

bool OptimalHeadingController::configureHook ( )

The following lines are template definitions for the various state machine.

This hook is called by Orocos when the state machine transitions from PreOperational to Stopped. If it returns false, then the component will stay in PreOperational. Otherwise, it goes into Stopped.

It is meaningful only if the #needs_configuration has been specified in the task context definition with (for example):

task_context "TaskName" do
  needs_configuration
  ...
end

◆ errorHook()

void OptimalHeadingController::errorHook ( )

◆ keep()

void OptimalHeadingController::keep ( )
protected

◆ startHook()

bool OptimalHeadingController::startHook ( )

This hook is called by Orocos when the state machine transitions from Stopped to Running. If it returns false, then the component will stay in Stopped. Otherwise, it goes into Running and updateHook() will be called.

◆ updateHook()

void OptimalHeadingController::updateHook ( )

This hook is called by Orocos when the component is in the Running state, at each activity step. Here, the activity gives the "ticks" when the hook should be called.

The error(), exception() and fatal() calls, when called in this hook, allow to get into the associated RunTimeError, Exception and FatalError states.

In the first case, updateHook() is still called, and recover() allows you to go back into the Running state. In the second case, the errorHook() will be called instead of updateHook(). In Exception, the component is stopped and recover() needs to be called before starting it again. Finally, FatalError cannot be recovered.

Friends And Related Function Documentation

◆ OptimalHeadingControllerBase

friend class OptimalHeadingControllerBase
friend

Member Data Documentation

◆ new_orientation_samples_timeout

base::Timeout auv_control::OptimalHeadingController::new_orientation_samples_timeout
protected

◆ orientation_sample

base::samples::RigidBodyState auv_control::OptimalHeadingController::orientation_sample
protected

The documentation for this class was generated from the following files: