アイボ 咥え込み |
2006.11.15 初
■ クラス
class Mouthについて
顎関節を制御し、モノを咥える機能をインプリメントした。実際の関節への指示は頭部オブジェクトにて行うが、このクラスにより関節情報の管理を行う。 指示関節と現在の関節を比較することによりモノを咥えていることを認識する。 指示値と実値の差を管理することで咥える力を制御する。
class Mouth {
public:
Mouth();
~Mouth() {}
slongword indicate; //指示値
slongword real; //実値
void SetTarget(slongword);
void SetMode(HeadMoveMode, double);
void Reset(); //first を true に
double Next();
int Direction(); // -1:opening 0:stop 1:closing
void Bite(double p, double t, double s);
void Release(double pos, double s);
BiteState BiteCheck(slongword, slongword);
void Print(char*);
private:
slongword CheckAngle(bool &err);
HeadMoveMode mode;
slongword start;
slongword target;
double speed; //顎関節用速度
bool first; //初回ならtrue
bool bite;
double bitePower;
double biteThreshold;
slongword uangle; //フレーム当りの移動角度(顎関節)
double frame; //顎関節残りフレーム数
//// その他 ////
int verbose; //メッセージ出力レベル
};