a

Dependencies:   mbed mbed-rtos

Committer:
alexpirciu
Date:
Thu Mar 28 07:44:42 2019 +0000
Revision:
1:ceee5a608e7c
assa

Who changed what in which revision?

UserRevisionLine numberNew 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