自分用4オムニ

Dependents:   FourOmniMecha

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers TetraOmni.h Source File

TetraOmni.h

00001 #ifndef TetraOmni_h
00002 #define TetraOmni_h
00003 
00004 #include "mbed.h"
00005 
00006 class TetraOmni
00007 {
00008 public:
00009     //引数は(直進の速度比率,回転の速度比率,モータの最大RPS,擬似目標値の一度の増減rps値)
00010     TetraOmni(double MoveRatio,double RotationRatio,double MaxRPS,double rps_FakeDiff);
00011 
00012 
00013 
00014     //ホイールの擬似目標値を返す.IDは1〜4
00015     double Wheel_FakeTGTRPS(int Wheel_ID);
00016     
00017 
00018 
00019     //ホイールの正しい目標値を返す.IDは1〜4
00020     double Wheel_TrueTGTRPS(int Wheel_ID);
00021 
00022     //コントローラの値からホイール速度を計算
00023     //引数は(レバー入力の有無,レバー角度(deg),ジャイロ角度,回転入力の有無と方向,速度段階)
00024     //回転方向については2進数で00=not,01=right,10=left回転
00025     //speedについては00=middle,01=low,10=highの三段階
00026     void wheelTGTRPScalc(bool LeverState,double LeverAngle,double currentYawAngle,int RotState,int _SpeedState);
00027 
00028     //ホイールの擬似目標RPS値の計算
00029     void FakeRPScalc();
00030 
00031     void init();
00032 
00033     //速度段階の設定.0~100の値.初期設定は33,67,100の状態
00034     void SpeedStageSetting(double low,double middle,double high);
00035 
00036     double TGTRPS_SwitchingStage;  //デフォは10.数値は1以上にする
00037     double FlameSize;  //基本は1だが機体の回転速度が早すぎると思ったら下げればいい
00038 
00039 private:
00040     double _MoveRatio,_RotationRatio;
00041     double _MaxRPS;
00042     double _StandardYaw;
00043     double _rps_FakeDiff;
00044     double _WheelTGTRPS[4],_preWheelTGTRPS[4];
00045     double _SpeedStage[3];
00046     double FakeTargetRPS[4];
00047     double diff[4];
00048 };
00049 
00050 
00051 #endif