z1_controller/include/trajectory/Trajectory.h

46 lines
1.5 KiB
C++
Executable File

#ifndef TRAJECTORY_H
#define TRAJECTORY_H
#include "common/math/mathTools.h"
#include "control/CtrlComponents.h"
#include "common/utilities/timer.h"
class Trajectory{
public:
Trajectory(CtrlComponents *ctrlComp);
virtual ~Trajectory(){}
virtual bool getJointCmd(Vec6 &q, Vec6 &qd){return false;};
virtual bool getJointCmd(Vec6 &q, Vec6 &qd, double &gripperQ, double &gripperQd){return false;};
virtual bool getCartesionCmd(Vec6 pastPosture, Vec6 &endPosture, Vec6 &endTwist){return false;};
void restart();
virtual void setGripper(double startQ, double endQ, double speed = M_PI);
bool correctYN(){return _settingCorrect;}
Vec6 getStartQ(){return _startQ;}
Vec6 getEndQ(){return _endQ;}
double getEndGripperQ(){return _endGripperQ;};
double getStartGripperQ(){return _startGripperQ;};
HomoMat getStartHomo(){return _startHomo;};
HomoMat getEndHomo(){return _endHomo;};
Vec6 getEndPosture(){return _endPosture;};
double getPathTime(){return _pathTime;}
protected:
void _runTime();
CtrlComponents *_ctrlComp;
ArmModel *_armModel;
CSVTool *_csvState;
bool _pathStarted = false;
bool _reached = false;
bool _settingCorrect = true;
double _startTime, _currentTime, _pathTime, _tCost;
Vec6 _qPast;
Vec6 _startQ, _endQ, _deltaQ;
HomoMat _startHomo, _endHomo;
Vec6 _startPosture, _endPosture, _deltaPosture;
double _startGripperQ, _endGripperQ;
};
#endif // TRAJECTORY_H