auv_control
/build/rock-master-18.09-control-orogen-auv-control-0.20180621/6dControl.hpp
Go to the documentation of this file.
1 #ifndef D_CONTROL_HPP
2 #define D_CONTROL_HPP
3 
4 #include <motor_controller/PID.hpp>
5 #include <math.h>
6 #include <base/Time.hpp>
7 #include <base/Eigen.hpp>
8 #include <base/Float.hpp>
9 #include <base/commands/LinearAngular6DCommand.hpp>
10 #include <rtt/FlowStatus.hpp>
11 
12 namespace auv_control{
14  bool linear[3];
15  bool angular[3];
16  };
17 
18  struct PIDState : public motor_controller::PIDState
19  {
20  bool active;
21 
23  : motor_controller::PIDState(), active(false) {}
24  PIDState(motor_controller::PIDState const& state, bool active)
25  : motor_controller::PIDState(state), active(active) {}
26  };
27 
31  base::Time time;
32  };
33 
35  motor_controller::PID linear[3];
36  motor_controller::PID angular[3];
37  };
38 }
39 
40 namespace base{
42  LinearAngular6DCommand cmd;
47  double hold_time;
48 
50  opt_orientation_distance = base::infinity<double>();
51  linear_tolerance = 0.2;
52  angular_tolerance = 0.2;
53  hold_time = 0;
54  }
55  };
56 
58  LinearAngular6DCommand current_delta;
61  };
62 
63 
65  motor_controller::PIDSettings linear[3];
66  motor_controller::PIDSettings angular[3];
67 
68  bool operator==(const LinearAngular6DPIDSettings& rhs) const{
69  for(int i = 0; i < 3; i++){
70  if(this->linear[i] != rhs.linear[i] || this->angular[i] != rhs.angular[i])
71  return false;
72  }
73  return true;
74  }
75 
76  bool operator!=(const LinearAngular6DPIDSettings& rhs) const{
77  return !(*this == rhs);
78  }
79  };
80 
82  motor_controller::ParallelPIDSettings linear[3];
83  motor_controller::ParallelPIDSettings angular[3];
84 
86  for(int i = 0; i < 3; i++){
87  if(this->linear[i] != rhs.linear[i] || this->angular[i] != rhs.angular[i])
88  return false;
89  }
90  return true;
91  }
92 
94  return !(*this == rhs);
95  }
96  };
97 }
98 #endif
bool angular[3]
Definition: 6dControl.hpp:15
bool linear[3]
Definition: 6dControl.hpp:14
Definition: 6dControl.hpp:57
Definition: 6dControl.hpp:41
LinearAngular6DWaypoint()
Definition: 6dControl.hpp:49
int queue_size
Definition: 6dControl.hpp:60
PIDState()
Definition: 6dControl.hpp:22
Definition: 6dControl.hpp:12
motor_controller::PIDSettings linear[3]
Definition: 6dControl.hpp:65
LinearAngular6DWaypoint current_waypoint
Definition: 6dControl.hpp:59
motor_controller::ParallelPIDSettings linear[3]
Definition: 6dControl.hpp:82
LinearAngular6DCommand cmd
Definition: 6dControl.hpp:42
motor_controller::PIDSettings angular[3]
Definition: 6dControl.hpp:66
double angular_tolerance
Definition: 6dControl.hpp:46
double linear_tolerance
Definition: 6dControl.hpp:45
Definition: 6dControl.hpp:34
double opt_orientation_distance
Definition: 6dControl.hpp:44
bool operator==(const LinearAngular6DParallelPIDSettings &rhs) const
Definition: 6dControl.hpp:85
bool active
Definition: 6dControl.hpp:20
Definition: 6dControl.hpp:81
double hold_time
Definition: 6dControl.hpp:47
Definition: 6dControl.hpp:40
Definition: 6dControl.hpp:28
motor_controller::ParallelPIDSettings angular[3]
Definition: 6dControl.hpp:83
Definition: 6dControl.hpp:18
PIDState(motor_controller::PIDState const &state, bool active)
Definition: 6dControl.hpp:24
bool operator==(const LinearAngular6DPIDSettings &rhs) const
Definition: 6dControl.hpp:68
base::Time time
Definition: 6dControl.hpp:31
bool operator!=(const LinearAngular6DParallelPIDSettings &rhs) const
Definition: 6dControl.hpp:93
LinearAngular6DCommand current_delta
Definition: 6dControl.hpp:58
Definition: 6dControl.hpp:64
double opt_orientation
Definition: 6dControl.hpp:43
Definition: 6dControl.hpp:13
bool operator!=(const LinearAngular6DPIDSettings &rhs) const
Definition: 6dControl.hpp:76