auv_control
BasePIDController.hpp
Go to the documentation of this file.
1 /* Generated from orogen/lib/orogen/templates/tasks/Task.hpp */
2 
3 #ifndef AUV_CONTROL_BASEPIDCONTROLLER_TASK_HPP
4 #define AUV_CONTROL_BASEPIDCONTROLLER_TASK_HPP
5 
6 #include "auv_control/BasePIDControllerBase.hpp"
7 #include <motor_controller/PID.hpp>
8 
9 namespace auv_control {
10 
26  class BasePIDController : public BasePIDControllerBase
27  {
28  friend class BasePIDControllerBase;
29  protected:
30 
31  struct currentState{
32  base::Vector3d linear;
33  base::Vector3d angular;
34  base::Time time;
35  };
36  struct currentCov{
37  base::Matrix3d linear;
38  base::Matrix3d angular;
39  base::Time time;
40  };
55 
56  bool calcOutput(const LinearAngular6DCommandStatus &merged_command);
57  void keepPosition();
58 
59 
61  virtual bool setPid_settings(::base::LinearAngular6DPIDSettings const & value);
62 
70  std::pair<base::LinearAngular6DCommand, LinearAngular6DPIDState> calcPIDStateCommand(
71  const base::LinearAngular6DCommand &reference, const currentState &current_state, LinearAngular6DPID &pid);
72 
73  public:
78  BasePIDController(std::string const& name = "auv_control::BasePIDController");
79 
85  BasePIDController(std::string const& name, RTT::ExecutionEngine* engine);
86 
90 
105  bool configureHook();
106 
112  bool startHook();
113 
128  void updateHook();
129 
136  void errorHook();
137 
141  void stopHook();
142 
147  void cleanupHook();
148  };
149 }
150 
151 #endif
152 
virtual bool setParallel_pid_settings(::base::LinearAngular6DParallelPIDSettings const &value)
Definition: BasePIDController.cpp:24
virtual bool setPid_settings(::base::LinearAngular6DPIDSettings const &value)
Definition: BasePIDController.cpp:38
base::Time time
Definition: BasePIDController.hpp:39
bool startHook()
Definition: BasePIDController.cpp:113
~BasePIDController()
Definition: BasePIDController.cpp:18
base::Vector3d angular
Definition: BasePIDController.hpp:33
Definition: BasePIDController.hpp:36
Definition: 6dControl.hpp:12
void stopHook()
Definition: BasePIDController.cpp:134
friend class BasePIDControllerBase
Definition: BasePIDController.hpp:28
void updateHook()
Definition: BasePIDController.cpp:119
LinearAngular6DPID mPIDs
Definition: BasePIDController.hpp:54
base::Matrix3d angular
Definition: BasePIDController.hpp:38
std::pair< base::LinearAngular6DCommand, LinearAngular6DPIDState > calcPIDStateCommand(const base::LinearAngular6DCommand &reference, const currentState &current_state, LinearAngular6DPID &pid)
Definition: BasePIDController.cpp:52
BasePIDController(std::string const &name="auv_control::BasePIDController")
Definition: BasePIDController.cpp:8
currentCov mCurrentCov
Definition: BasePIDController.hpp:50
base::Vector3d linear
Definition: BasePIDController.hpp:32
Definition: 6dControl.hpp:34
Definition: BasePIDController.hpp:31
void cleanupHook()
Definition: BasePIDController.cpp:138
Definition: 6dControl.hpp:81
The task context provides and requires services. It uses an ExecutionEngine to perform its functions...
Definition: BasePIDController.hpp:26
bool configureHook()
The following lines are template definitions for the various state machine.
Definition: BasePIDController.cpp:93
void errorHook()
Definition: BasePIDController.cpp:123
void keepPosition()
Definition: BasePIDController.cpp:174
base::Matrix3d linear
Definition: BasePIDController.hpp:37
currentState mCurrentState
Definition: BasePIDController.hpp:45
bool calcOutput(const LinearAngular6DCommandStatus &merged_command)
Definition: BasePIDController.cpp:142
Definition: 6dControl.hpp:64
base::Time time
Definition: BasePIDController.hpp:34