最終調整
Dependencies: mbed AQM0802 CRotaryEncoder TB6612FNG
Diff: main.cpp
- Revision:
- 29:01b7f40ec029
- Parent:
- 28:00cb072ad251
- Child:
- 30:14615f9ff467
--- a/main.cpp Mon Nov 25 05:37:20 2019 +0000 +++ b/main.cpp Mon Nov 25 05:58:11 2019 +0000 @@ -11,11 +11,11 @@ //☆★☆★各種パラメータ調整箇所☆★☆★☆★ -#define DEFAULT_SPEED 300 //1走目の基本速度 -#define LOW_SPEED 300 //2走目の低速速度[mm/sec] -#define MEDIUM_SPEED 500 //2走目の低速速度[mm/sec] -#define HIGH_SPEED 750 //2走目の低速速度[mm/sec] -#define DEFAULT_HIGH_SPEED 700 //3走目の低速速度[mm/sec] +#define DEFAULT_SPEED 750 //1走目の基本速度 +#define LOW_SPEED 750 //2走目の低速速度[mm/sec] +#define MEDIUM_SPEED 850 //2走目の低速速度[mm/sec] +#define HIGH_SPEED 1100 //2走目の低速速度[mm/sec] +#define DEFAULT_HIGH_SPEED 900 //3走目の低速速度[mm/sec] #define STOP_DISTANCE 100000 //停止距離200000[um]⇒20[cm] #define TURN_POWER 0.6 //コースアウト時の旋回力 #define PULSE_TO_UM 28 //エンコーダ1パルス当たりのタイヤ移動距離[um] @@ -25,6 +25,12 @@ #define MARKER_WIDTH 10000 //マーカ幅[um](ビニルテープ幅19000[um]以内) //コースの傷によってマーカ誤検知する場合は値を大きくする。 #define CROSS_JUDGE 4 //ラインセンサいくつ以上白線検知で交差点認識するか設定。 + +#define HIGH_SPEED_SECTION 1.25f //最高速度の左右回転差の上限倍率 +#define MIDIUM_SPEED_SECTION 2.0f //中間速度の左右回転差の上限倍率 +#define LOW_SPEED_SECTION 4.0f //最低速度の左右回転差の上限倍率 + + //モータ速度のゲイン関連(むやみに調整しない) #define M_KP 0.002f //P(比例)制御成分 #define M_KD 0.001f //D(微分)制御成分 @@ -229,14 +235,14 @@ //左右タイヤの走行距離の差分を用いた曲率演算 /////左が右の一倍以上かつ左が右の1.2倍以下もしくは右は左の1倍以上かつ右が左の1.2倍以下の時 - if((((course_data[Row][0])>=(course_data[Row][1]*1.0f))&&((course_data[Row][0])<(course_data[Row][1]*1.2f))) - || (((course_data[Row][0])>=(course_data[Row][1]*1.0f))&&((course_data[Row][0])<(course_data[Row][1]*1.2f)))){ + if((((course_data[Row][0])>=(course_data[Row][1]*1.0f))&&((course_data[Row][0])<(course_data[Row][1]*HIGH_SPEED_SECTION))) + || (((course_data[Row][0])>=(course_data[Row][1]*1.0f))&&((course_data[Row][0])<(course_data[Row][1]*HIGH_SPEED_SECTION)))){ Imaginary_Speed=High_Speed;//高速とする。 - }else if((((course_data[Row][0])>=(course_data[Row][1]*1.2f))&&((course_data[Row][0])<(course_data[Row][1]*1.5f))) - || (((course_data[Row][0])>=(course_data[Row][1]*1.2f))&&((course_data[Row][0])<(course_data[Row][1]*1.5f)))){ + }else if((((course_data[Row][0])>=(course_data[Row][1]*HIGH_SPEED_SECTION))&&((course_data[Row][0])<(course_data[Row][1]*MIDIUM_SPEED_SECTION))) + || (((course_data[Row][0])>=(course_data[Row][1]*HIGH_SPEED_SECTION))&&((course_data[Row][0])<(course_data[Row][1]*MIDIUM_SPEED_SECTION)))){ Imaginary_Speed=Medium_Speed;//中カーブは中速とする。 - }else if((((course_data[Row][0])>=(course_data[Row][1]*1.5f))&&((course_data[Row][0])<(course_data[Row][1]*2.0f))) - || (((course_data[Row][0])>=(course_data[Row][1]*1.5f))&&((course_data[Row][0])<(course_data[Row][1]*2.0f)))){ + }else if((((course_data[Row][0])>=(course_data[Row][1]*MIDIUM_SPEED_SECTION))&&((course_data[Row][0])<(course_data[Row][1]*LOW_SPEED_SECTION))) + || (((course_data[Row][0])>=(course_data[Row][1]*MIDIUM_SPEED_SECTION))&&((course_data[Row][0])<(course_data[Row][1]*LOW_SPEED_SECTION)))){ Imaginary_Speed=Low_Speed;//低速 } else{