Alex Pirciu
/
BFMC
a
include/Examples/SystemModels/ackermanntypes.hpp@1:ceee5a608e7c, 2019-03-28 (annotated)
- Committer:
- alexpirciu
- Date:
- Thu Mar 28 07:44:42 2019 +0000
- Revision:
- 1:ceee5a608e7c
assa
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
alexpirciu | 1:ceee5a608e7c | 1 | /** |
alexpirciu | 1:ceee5a608e7c | 2 | ****************************************************************************** |
alexpirciu | 1:ceee5a608e7c | 3 | * @file AckermannTypes.hpp |
alexpirciu | 1:ceee5a608e7c | 4 | * @author RBRO/PJ-IU |
alexpirciu | 1:ceee5a608e7c | 5 | * @version V1.0.0 |
alexpirciu | 1:ceee5a608e7c | 6 | * @date day-month-year |
alexpirciu | 1:ceee5a608e7c | 7 | * @brief This file contains the class declaration and implementation for the |
alexpirciu | 1:ceee5a608e7c | 8 | Ackermann types. |
alexpirciu | 1:ceee5a608e7c | 9 | ****************************************************************************** |
alexpirciu | 1:ceee5a608e7c | 10 | */ |
alexpirciu | 1:ceee5a608e7c | 11 | |
alexpirciu | 1:ceee5a608e7c | 12 | /* Include guard */ |
alexpirciu | 1:ceee5a608e7c | 13 | #ifndef ACKERMANN_TYPES_HPP |
alexpirciu | 1:ceee5a608e7c | 14 | #define ACKERMANN_TYPES_HPP |
alexpirciu | 1:ceee5a608e7c | 15 | |
alexpirciu | 1:ceee5a608e7c | 16 | #include <Linalg/linalg.h> |
alexpirciu | 1:ceee5a608e7c | 17 | |
alexpirciu | 1:ceee5a608e7c | 18 | namespace examples |
alexpirciu | 1:ceee5a608e7c | 19 | { |
alexpirciu | 1:ceee5a608e7c | 20 | namespace systemmodels |
alexpirciu | 1:ceee5a608e7c | 21 | { |
alexpirciu | 1:ceee5a608e7c | 22 | namespace ackermannmodel |
alexpirciu | 1:ceee5a608e7c | 23 | { |
alexpirciu | 1:ceee5a608e7c | 24 | class CState: public linalg::CMatrix<double,10,1> |
alexpirciu | 1:ceee5a608e7c | 25 | { |
alexpirciu | 1:ceee5a608e7c | 26 | public: |
alexpirciu | 1:ceee5a608e7c | 27 | CState():linalg::CMatrix<double,10,1>(){} |
alexpirciu | 1:ceee5a608e7c | 28 | CState(const linalg::CMatrix<double,10,1>& f_matrix):linalg::CMatrix<double,10,1>(f_matrix){} |
alexpirciu | 1:ceee5a608e7c | 29 | double& x(){return m_data[0][0];} |
alexpirciu | 1:ceee5a608e7c | 30 | const double& x() const {return m_data[0][0];} |
alexpirciu | 1:ceee5a608e7c | 31 | |
alexpirciu | 1:ceee5a608e7c | 32 | double& y(){return m_data[1][0];} |
alexpirciu | 1:ceee5a608e7c | 33 | const double& y() const {return m_data[1][0];} |
alexpirciu | 1:ceee5a608e7c | 34 | |
alexpirciu | 1:ceee5a608e7c | 35 | double& x_dot(){return m_data[2][0];} |
alexpirciu | 1:ceee5a608e7c | 36 | const double& x_dot() const {return m_data[2][0];} |
alexpirciu | 1:ceee5a608e7c | 37 | |
alexpirciu | 1:ceee5a608e7c | 38 | double& y_dot(){return m_data[3][0];} |
alexpirciu | 1:ceee5a608e7c | 39 | const double& y_dot() const{return m_data[3][0];} |
alexpirciu | 1:ceee5a608e7c | 40 | |
alexpirciu | 1:ceee5a608e7c | 41 | double& x_dot_prev(){return m_data[4][0];} |
alexpirciu | 1:ceee5a608e7c | 42 | const double& x_dot_prev() const{return m_data[4][0];} |
alexpirciu | 1:ceee5a608e7c | 43 | |
alexpirciu | 1:ceee5a608e7c | 44 | double& y_dot_prev(){return m_data[5][0];} |
alexpirciu | 1:ceee5a608e7c | 45 | const double& y_dot_prev() const{return m_data[5][0];} |
alexpirciu | 1:ceee5a608e7c | 46 | |
alexpirciu | 1:ceee5a608e7c | 47 | double& teta_rad(){return m_data[6][0];} |
alexpirciu | 1:ceee5a608e7c | 48 | const double& teta_rad() const{return m_data[6][0];} |
alexpirciu | 1:ceee5a608e7c | 49 | |
alexpirciu | 1:ceee5a608e7c | 50 | double& teta_rad_dot(){return m_data[7][0];} |
alexpirciu | 1:ceee5a608e7c | 51 | const double& teta_rad_dot() const{return m_data[7][0];} |
alexpirciu | 1:ceee5a608e7c | 52 | |
alexpirciu | 1:ceee5a608e7c | 53 | double& omega(){ return m_data[8][0];} |
alexpirciu | 1:ceee5a608e7c | 54 | const double& omega() const{return m_data[8][0];} |
alexpirciu | 1:ceee5a608e7c | 55 | |
alexpirciu | 1:ceee5a608e7c | 56 | double& i(){return m_data[9][0];} |
alexpirciu | 1:ceee5a608e7c | 57 | const double& i() const{return m_data[9][0];} |
alexpirciu | 1:ceee5a608e7c | 58 | |
alexpirciu | 1:ceee5a608e7c | 59 | // CState& operator=(const linalg::CMatrix<double,10,1>& f_matrix){ |
alexpirciu | 1:ceee5a608e7c | 60 | // for (uint32_t l_row = 0; l_row < 10; ++l_row) |
alexpirciu | 1:ceee5a608e7c | 61 | // { |
alexpirciu | 1:ceee5a608e7c | 62 | // for (uint32_t l_col = 0; l_col < 1; ++l_col) |
alexpirciu | 1:ceee5a608e7c | 63 | // { |
alexpirciu | 1:ceee5a608e7c | 64 | // this->m_data[l_row][l_col] = f_matrix[l_row][l_col]; |
alexpirciu | 1:ceee5a608e7c | 65 | // } |
alexpirciu | 1:ceee5a608e7c | 66 | // } |
alexpirciu | 1:ceee5a608e7c | 67 | // return *this; |
alexpirciu | 1:ceee5a608e7c | 68 | // } |
alexpirciu | 1:ceee5a608e7c | 69 | }; |
alexpirciu | 1:ceee5a608e7c | 70 | |
alexpirciu | 1:ceee5a608e7c | 71 | class CInput:public linalg::CMatrix<double,2,1> |
alexpirciu | 1:ceee5a608e7c | 72 | { |
alexpirciu | 1:ceee5a608e7c | 73 | public: |
alexpirciu | 1:ceee5a608e7c | 74 | CInput():linalg::CMatrix<double,2,1>(){} |
alexpirciu | 1:ceee5a608e7c | 75 | CInput(const linalg::CMatrix<double,2,1>& f_matrix):linalg::CMatrix<double,2,1>(f_matrix){} |
alexpirciu | 1:ceee5a608e7c | 76 | double& v(){return m_data[0][0];} |
alexpirciu | 1:ceee5a608e7c | 77 | const double& v()const{return m_data[0][0];} |
alexpirciu | 1:ceee5a608e7c | 78 | double& alpha(){return m_data[1][0];} |
alexpirciu | 1:ceee5a608e7c | 79 | const double& alpha()const{return m_data[1][0];} |
alexpirciu | 1:ceee5a608e7c | 80 | }; |
alexpirciu | 1:ceee5a608e7c | 81 | |
alexpirciu | 1:ceee5a608e7c | 82 | class COutput:public linalg::CMatrix<double,5,1> |
alexpirciu | 1:ceee5a608e7c | 83 | { |
alexpirciu | 1:ceee5a608e7c | 84 | public: |
alexpirciu | 1:ceee5a608e7c | 85 | COutput():linalg::CMatrix<double,5,1>(){} |
alexpirciu | 1:ceee5a608e7c | 86 | COutput(const linalg::CMatrix<double,5,1>& f_matrix):linalg::CMatrix<double,5,1>(f_matrix){} |
alexpirciu | 1:ceee5a608e7c | 87 | double& x_ddot(){return m_data[0][0];} |
alexpirciu | 1:ceee5a608e7c | 88 | const double& x_ddot() const{return m_data[0][0];} |
alexpirciu | 1:ceee5a608e7c | 89 | double& y_ddot(){return m_data[1][0];} |
alexpirciu | 1:ceee5a608e7c | 90 | const double& y_ddot()const {return m_data[1][0];} |
alexpirciu | 1:ceee5a608e7c | 91 | double& teta_rad_dot(){return m_data[2][0];} |
alexpirciu | 1:ceee5a608e7c | 92 | const double& teta_rad_dot()const{return m_data[2][0];} |
alexpirciu | 1:ceee5a608e7c | 93 | double& speed(){return m_data[3][0];} |
alexpirciu | 1:ceee5a608e7c | 94 | const double& speed()const {return m_data[3][0];} |
alexpirciu | 1:ceee5a608e7c | 95 | |
alexpirciu | 1:ceee5a608e7c | 96 | // double& alpha(){ |
alexpirciu | 1:ceee5a608e7c | 97 | // return m_data[4][0]; |
alexpirciu | 1:ceee5a608e7c | 98 | // } |
alexpirciu | 1:ceee5a608e7c | 99 | // const double& alpha()const{ |
alexpirciu | 1:ceee5a608e7c | 100 | // return m_data[4][0]; |
alexpirciu | 1:ceee5a608e7c | 101 | // } |
alexpirciu | 1:ceee5a608e7c | 102 | double& i(){return m_data[4][0];} |
alexpirciu | 1:ceee5a608e7c | 103 | const double& i()const{return m_data[4][0];} |
alexpirciu | 1:ceee5a608e7c | 104 | }; |
alexpirciu | 1:ceee5a608e7c | 105 | }; |
alexpirciu | 1:ceee5a608e7c | 106 | }; |
alexpirciu | 1:ceee5a608e7c | 107 | }; |
alexpirciu | 1:ceee5a608e7c | 108 | |
alexpirciu | 1:ceee5a608e7c | 109 | #endif |