📄 headtricks.h
字号:
#ifndef HEADTRICKS_H
#define HEADTRICKS_H
// Bag of head tricks
#include "../Common/LocomotionCommand.h"
#include "../Common/HeadCommand.h"
#include "Trick.h"
class HeadTricks {
public :
// INCOMPLETE!!
class FixateOnBeacon : public Trick {
public:
FixateOnBeacon(int _framesAllowed);
virtual int Start();
virtual int Abort();
virtual int Continue();
virtual bool IsUsingHead();
virtual char* GetErrorMsg(int);
virtual char* GetName();
private:
Utilities utils;
int framesAllowed;
int currentFrame;
int targetBeacon;
double targetAngle;
double targetTilt;
};
class AngledSearch : public Trick {
public:
AngledSearch(bool);
virtual int Start();
virtual int Abort();
virtual int Continue();
virtual bool IsUsingHead();
virtual char* GetErrorMsg(int);
virtual char* GetName();
private:
Utilities utils;
bool panLeft;
};
class LookAt : public Trick {
public:
LookAt(double,double,double,int);
virtual int Start();
virtual int Abort();
virtual int Continue();
virtual bool IsUsingHead();
virtual char* GetErrorMsg(int);
virtual char* GetName();
private:
double tilt;
double pan;
double roll;
int numFrames;
int currentFrame;
Utilities utils;
};
class FollowBallWithHeadSticky : public Trick {
public:
FollowBallWithHeadSticky(int);
virtual int Start();
virtual int Abort();
virtual int Continue();
virtual bool IsUsingHead();
virtual char* GetErrorMsg(int);
virtual char* GetName();
private:
double underChinAngle;
int stickiness;
int stickinessCount;
int lastBallCx, lastBallCy;
double lastTiltSmall, lastTiltBig;
double lastPan;
double lastElevation, lastHeading;
int panDirection;
Utilities utils;
};
class HeadPanForBall : public Trick {
public:
HeadPanForBall();
HeadPanForBall(int);
virtual int Start();
virtual int Abort();
virtual int Continue();
virtual bool IsUsingHead();
virtual char* GetErrorMsg(int);
virtual char* GetName();
private :
Utilities utils;
int numFramesPerSweep;
};
class FollowBeaconWithHeadSticky : public Trick {
public:
FollowBeaconWithHeadSticky(int,VisionObject**);
virtual int Start();
virtual int Abort();
virtual int Continue();
virtual bool IsUsingHead();
virtual char* GetErrorMsg(int);
virtual char* GetName();
private:
int stickiness;
int stickinessCount;
int objectID;
VisionObject** targetBeaconReference;
bool targetGP;
Utilities utils;
};
class HeadPan : public Trick {
public:
HeadPan(double, double, double, double);
virtual int Start();
virtual int Abort();
virtual int Continue();
virtual bool IsUsingHead();
virtual char* GetErrorMsg(int);
virtual char* GetName();
private :
Utilities utils;
double left;
double right;
double tilt;
double speed;
};
class HoldThenMove : public Trick {
public:
HoldThenMove(double, double, double, double, double);
virtual int Start();
virtual int Abort();
virtual int Continue();
virtual bool IsUsingHead();
virtual char* GetErrorMsg(int);
virtual char* GetName();
private :
Utilities utils;
double holdTime;
double t1;
double t2;
double p;
double speed;
double t1step;
double t2step;
double pstep;
};
class QuickPan : public Trick {
public:
QuickPan(int _numFrames, bool _panLeft);
virtual int Start();
virtual int Abort();
virtual int Continue();
virtual bool IsUsingHead();
virtual char* GetErrorMsg(int);
virtual char* GetName();
private :
Utilities utils;
int currentFrame, numFrames, halfNumFrames;
bool panLeft;
double currentTilt1, currentTilt2, currentPan;
double interpolationRateTilt1, interpolationRateTilt2, interpolationRatePan;
};
};
#endif // HEADTRICKS_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -