z1_controller/include/message/LowlevelState.h

61 lines
1.4 KiB
C
Raw Normal View History

2022-07-20 11:11:38 +08:00
#ifndef LOWLEVELSTATE_HPP
#define LOWLEVELSTATE_HPP
#include <iostream>
#include <vector>
#include "common/math/mathTools.h"
#include "common/enumClass.h"
2022-11-11 19:49:41 +08:00
#include "common/math/Filter.h"
2022-07-20 11:11:38 +08:00
struct LowlevelState{
public:
2022-09-13 19:53:15 +08:00
LowlevelState(double dt);
~LowlevelState();
2022-07-20 11:11:38 +08:00
std::vector<double> q;
std::vector<double> dq;
std::vector<double> ddq;
std::vector<double> tau;
2022-11-11 19:49:41 +08:00
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;
2022-09-13 19:53:15 +08:00
std::vector<uint8_t> errorstate;
2022-11-11 19:49:41 +08:00
std::vector<uint8_t> isMotorConnected;
2022-09-13 19:53:15 +08:00
2022-07-20 11:11:38 +08:00
std::vector<double> qFiltered;
std::vector<double> dqFiltered;
2022-11-11 19:49:41 +08:00
std::vector<double> ddqFiltered;
2022-07-20 11:11:38 +08:00
std::vector<double> tauFiltered;
LPFilter *qFilter;
LPFilter *dqFilter;
2022-11-11 19:49:41 +08:00
LPFilter *ddqFilter;
2022-07-20 11:11:38 +08:00
LPFilter *tauFilter;
2022-09-13 19:53:15 +08:00
void resizeGripper(double dt);
void runFilter();
2022-11-11 19:49:41 +08:00
bool checkError();
2022-09-13 19:53:15 +08:00
Vec6 getQ();
Vec6 getQd();
Vec6 getQdd();
Vec6 getTau();
Vec6 getQFiltered();
Vec6 getQdFiltered();
2022-11-11 19:49:41 +08:00
Vec6 getQddFiltered();
2022-09-13 19:53:15 +08:00
Vec6 getTauFiltered();
2022-11-11 19:49:41 +08:00
double getGripperQ();
double getGripperQd();
double getGripperTau();
double getGripperTauFiltered();
private:
size_t _dof = 6;
int temporatureLimit = 80.0;// centigrade
std::vector<int> _isMotorConnectedCnt;
2022-07-20 11:11:38 +08:00
};
#endif //LOWLEVELSTATE_HPP