#ifndef LOWLEVELSTATE_HPP #define LOWLEVELSTATE_HPP #include <iostream> #include <vector> #include "common/math/mathTools.h" #include "common/enumClass.h" #include "common/math/Filter.h" struct LowlevelState{ public: LowlevelState(double dt); ~LowlevelState(); std::vector<double> q; std::vector<double> dq; std::vector<double> ddq; std::vector<double> tau; std::vector<std::vector<double>> q_data; std::vector<std::vector<double>> dq_data; std::vector<std::vector<double>> ddq_data; std::vector<std::vector<double>> tau_data; std::vector<int> temperature; std::vector<uint8_t> errorstate; std::vector<uint8_t> isMotorConnected; std::vector<double> qFiltered; std::vector<double> dqFiltered; std::vector<double> ddqFiltered; std::vector<double> tauFiltered; LPFilter *qFilter; LPFilter *dqFilter; LPFilter *ddqFilter; LPFilter *tauFilter; void resizeGripper(double dt); void runFilter(); bool checkError(); Vec6 getQ(); Vec6 getQd(); Vec6 getQdd(); Vec6 getTau(); Vec6 getQFiltered(); Vec6 getQdFiltered(); Vec6 getQddFiltered(); Vec6 getTauFiltered(); double getGripperQ(); double getGripperQd(); double getGripperTau(); double getGripperTauFiltered(); private: size_t _dof = 6; int temporatureLimit = 80.0;// centigrade std::vector<int> _isMotorConnectedCnt; std::vector<bool> _isMotorLostConnection; }; #endif //LOWLEVELSTATE_HPP