- 3.0.2 core module.
DiscreteController.h
Go to the documentation of this file.
1 /**********************************************************************************************************************
2 This file is part of the Control Toolbox (https://github.com/ethz-adrl/control-toolbox), copyright by ETH Zurich.
3 Licensed under the BSD-2 license (see LICENSE file in main directory)
4 **********************************************************************************************************************/
5 
6 #pragma once
7 
10 
11 
12 namespace ct {
13 namespace core {
14 
16 
21 template <size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
23 {
24 public:
25  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
26 
29 
32 
35 
37  virtual ~DiscreteController(){};
38 
40 
43  virtual DiscreteController* clone() const = 0;
44 
46 
56  virtual void computeControl(const state_vector_t& state, const int n, control_vector_t& controlAction) = 0;
57 };
58 
59 } // namespace core
60 } // namespace ct
virtual DiscreteController * clone() const =0
Deep cloning.
DiscreteController(const DiscreteController &other)
Copy constructor.
Definition: DiscreteController.h:34
DiscreteController()
Default constructor.
Definition: DiscreteController.h:31
Definition: ControlVector.h:12
virtual ~DiscreteController()
Destructor.
Definition: DiscreteController.h:37
constexpr size_t n
Definition: MatrixInversionTest.cpp:14
Definition: StateVector.h:12
Interface class for all controllers.
Definition: DiscreteController.h:22
ControlVector< CONTROL_DIM, SCALAR > control_vector_t
Definition: DiscreteController.h:28
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef StateVector< STATE_DIM, SCALAR > state_vector_t
Definition: DiscreteController.h:27
virtual void computeControl(const state_vector_t &state, const int n, control_vector_t &controlAction)=0
Compute control signal.