自分用4オムニ
Embed:
(wiki syntax)
Show/hide line numbers
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
Generated on Wed Jul 20 2022 00:45:50 by
1.7.2