加減速走行時の次マーカ検出前のブレーキングシステムを導入。各速度域におけるブレーキのタイミングとPDパラメータの調整を入念に行うこと。また、LCDの表示事項はストップゴールの表示は必要性を感じなかったため、走行交差点数のパラメータ表示に変更した。

Dependencies:   mbed AQM0802 CRotaryEncoder TB6612FNG

Files at this revision

API Documentation at this revision

Comitter:
GGU
Date:
Wed Nov 27 07:50:15 2019 +0000
Parent:
31:fe9ae7992246
Commit message:
test

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
tuning.h Show annotated file Show diff for this revision Revisions of this file
diff -r fe9ae7992246 -r 63db1848189e main.cpp
--- a/main.cpp	Tue Nov 26 02:57:02 2019 +0000
+++ b/main.cpp	Wed Nov 27 07:50:15 2019 +0000
@@ -192,13 +192,13 @@
     //左右タイヤの走行距離の差分を用いた曲率演算
              /////左が右の一倍以上かつ左が右の1.2倍以下もしくは右は左の1倍以上かつ右が左の1.2倍以下の時
     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)))){
+      || (((course_data[Row][1])>=(course_data[Row][0]*1.0f))&&((course_data[Row][1])<(course_data[Row][0]*HIGH_SPEED_SECTION)))){
         Imaginary_Speed=High_Speed;//高速とする。    
     }else if((((course_data[Row][0])>=(course_data[Row][1]*HIGH_SPEED_SECTION))&&((course_data[Row][0])<(course_data[Row][1]*MEDIUM_SPEED_SECTION)))
-      || (((course_data[Row][0])>=(course_data[Row][1]*HIGH_SPEED_SECTION))&&((course_data[Row][0])<(course_data[Row][1]*MEDIUM_SPEED_SECTION)))){
+      || (((course_data[Row][1])>=(course_data[Row][0]*HIGH_SPEED_SECTION))&&((course_data[Row][1])<(course_data[Row][0]*MEDIUM_SPEED_SECTION)))){
         Imaginary_Speed=Medium_Speed;//中カーブは中速とする。
     }else if((((course_data[Row][0])>=(course_data[Row][1]*MEDIUM_SPEED_SECTION))&&((course_data[Row][0])<(course_data[Row][1]*LOW_SPEED_SECTION)))
-      || (((course_data[Row][0])>=(course_data[Row][1]*MEDIUM_SPEED_SECTION))&&((course_data[Row][0])<(course_data[Row][1]*LOW_SPEED_SECTION)))){
+      || (((course_data[Row][1])>=(course_data[Row][0]*MEDIUM_SPEED_SECTION))&&((course_data[Row][1])<(course_data[Row][0]*LOW_SPEED_SECTION)))){
         Imaginary_Speed=Low_Speed;//低速
     }
     else{
@@ -254,7 +254,7 @@
                     -(((Memory_Enc_Count_A*PULSE_TO_UM)+(Memory_Enc_Count_B*PULSE_TO_UM))/2);
 
     //現在速度がハイスピードで次のコースが急カーブであり、残り距離が---だったとき
-    if((course_data[Row][2]==High_Speed)&&(Next_Imaginary_Speed==Low_Speed)
+    if((course_data[Row][2]==High_Speed)&&(Next_Imaginary_Speed<Medium_Speed)
         &&(Recent_Distance<HL_BREAK_DISANCE)){
             Target_Speed_A=Low_Speed;
             Target_Speed_B=Low_Speed;
@@ -266,7 +266,7 @@
             Target_Speed_B=Medium_Speed;
     }
     //現在速度が中間速度で次のコースが急カーブであり、残り距離が---だったとき
-    else if((course_data[Row][2]==High_Speed)&&(Next_Imaginary_Speed==Low_Speed)
+    else if((course_data[Row][2]==High_Speed)&&(Next_Imaginary_Speed<Medium_Speed)
         &&(Recent_Distance<ML_BREAK_DISANCE)){
             Target_Speed_A=Low_Speed;
             Target_Speed_B=Low_Speed;
diff -r fe9ae7992246 -r 63db1848189e tuning.h
--- a/tuning.h	Tue Nov 26 02:57:02 2019 +0000
+++ b/tuning.h	Wed Nov 27 07:50:15 2019 +0000
@@ -4,9 +4,9 @@
 ************************************/
 
 ////////機体速度関連
-#define     LOW_SPEED                800     //標準速度[mm/sec]
-#define     MEDIUM_SPEED             950     //2走目の中間速度[mm/sec]
-#define     HIGH_SPEED              1200     //2走目の高速速度[mm/sec]
+#define     LOW_SPEED                875     //標準速度[mm/sec]
+#define     MEDIUM_SPEED            1050     //2走目の中間速度[mm/sec]
+#define     HIGH_SPEED              1175    //2走目の高速速度[mm/sec]
 #define     STOP_DISTANCE         200000     //停止距離200000[um]⇒20[cm]
 #define     TURN_POWER              0.6f     //コースアウト時の旋回力
 
@@ -14,19 +14,18 @@
 ///////マーカ判定関連
 #define     DEFAULT_GRAY            0.2f     //フォトリフレクタデジタル入力の閾値
                                              //シリアル通信でSensor_Digital値を確認し調整する。
-#define     MARKER_WIDTH            8000     //マーカ幅[um](ビニルテープ幅19000[um]以内)
+#define     MARKER_WIDTH            7400     //マーカ幅[um](ビニルテープ幅19000[um]以内)
                                              //コースの傷によってマーカ誤検知する場合は値を大きくする。
 #define     CROSS_JUDGE                4     //ラインセンサいくつ以上白線検知で交差点認識するか設定。
 
 
 //////ブレーキングシステム調整
-#define     HIGH_SPEED_SECTION     1.25f     //最高速度の左右回転差の上限倍率     
-#define     MEDIUM_SPEED_SECTION    2.0f     //中間速度の左右回転差の上限倍率
-#define     LOW_SPEED_SECTION       4.0f     //最低速度の左右回転差の上限倍率
-#define     HL_BREAK_DISANCE      200000     //高速度で次のカーブが低速カーブのときのブレーキング距離[um]
-#define     HM_BREAK_DISANCE      100000     //高速度で次のカーブが中間速度カーブのときのブレーキング距離[um]
-#define     ML_BREAK_DISANCE       50000     //中間速度で次のカーブが低速カーブのときのブレーキング距離[um]
-
+#define     HIGH_SPEED_SECTION      1.25f     //最高速度の左右回転差の上限倍率     1.25f
+#define     MEDIUM_SPEED_SECTION    1.5f     //中間速度の左右回転差の上限倍率     1.5f
+#define     LOW_SPEED_SECTION       2.0f     //最低速度の左右回転差の上限倍率     2.0f
+#define     HL_BREAK_DISANCE       230750    //高速度で次のカーブが低速カーブのときのブレーキング距離[um]
+#define     HM_BREAK_DISANCE       110000    //高速度で次のカーブが中間速度カーブのときのブレーキング距離[um]
+#define     ML_BREAK_DISANCE       37500     //中間速度で次のカーブが低速カーブのときのブレーキング距離[um]
 
 
 //////各種PD調整
@@ -42,16 +41,16 @@
 
 //ラインセンサ各種制御成分
 //P成分
-#define     S_KP_LOW                3.0f     //低速P成分
-#define     S_KP_MEDIUM             2.0f     //中速P成分
-#define     S_KP_HIGH               1.0f     //高速P成分
+#define     S_KP_LOW                2.9f     //低速P成分 3.0f
+#define     S_KP_MEDIUM             2.4f     //中速P成分 2.0f 
+#define     S_KP_HIGH               1.6f     //高速P成分 1.0f
 
-#define     S_KP_DEFAULT_HIGH       2.0f     //3走目P成分
+#define     S_KP_DEFAULT_HIGH       2.4f     //3走目P成分 2.0f
 
 //D成分
-#define     S_KD_LOW                15.0f     //低速D成分
-#define     S_KD_MEDIUM             10.0f     //中速D成分
-#define     S_KD_HIGH               5.0f     //高速D成分
+#define     S_KD_LOW                15.4f    //低速D成分 15.0f
+#define     S_KD_MEDIUM             7.6f    //中速D成分 10.0f 
+#define     S_KD_HIGH               5.7f     //高速D成分 5.0f
 
-#define     S_KD_DEFAULT_HIGH       10.0f     //3走目D成分
+#define     S_KD_DEFAULT_HIGH       5.6f     //3走目D成分 1.0f
 //////////☆★☆★☆★☆★☆★//////////////