リビジョン | 375 (tree) |
---|---|
日時 | 2017-09-03 11:15:55 |
作者 | ynakamuramura |
(メッセージはありません)
@@ -63,7 +63,7 @@ | ||
63 | 63 | //昇段モード |
64 | 64 | case StairsState1stStepUp: |
65 | 65 | case StairsState2ndStepUp: |
66 | - gyro_offset = STEP_UP_GYRO_OFFSET; | |
66 | + gyro_offset = STEP_UP_GYRO_OFFSET; | |
67 | 67 | StepUp(MORTOR_ANG_STEP_UP); |
68 | 68 | break; |
69 | 69 |
@@ -70,7 +70,6 @@ | ||
70 | 70 | // 昇段後位置調整&静止モード |
71 | 71 | case StairsState1stAdjustPosition: |
72 | 72 | case StairsState2ndAdjustPosition: |
73 | - gyro_offset = STEP_UP_AFTER_GYRO_OFFSET; | |
74 | 73 | AdjustPosition((motor_ang_l + motor_ang_r) - wk_motor_ang_LR, MORTOR_ANG_LIST_COUNT_STOP, MORTOR_ANG_STOP, MORTOR_ANG_STOP_RANGE); |
75 | 74 | break; |
76 | 75 |
@@ -436,13 +435,13 @@ | ||
436 | 435 | { |
437 | 436 | switch (modeSetPIDData) |
438 | 437 | { |
439 | - case OtherPIDMode: | |
438 | + case StepDetectionPIDMode: | |
440 | 439 | PIDMgr->SetFixedData(P_VALUE_STAIRS_DETECTION, I_VALUE_STAIRS_DETECTION, D_VALUE_STAIRS_DETECTION); |
441 | 440 | m_pFixVal = P_VALUE_STAIRS_DETECTION; |
442 | 441 | m_iFixVal = I_VALUE_STAIRS_DETECTION; |
443 | 442 | m_dFixVal = D_VALUE_STAIRS_DETECTION; |
444 | 443 | break; |
445 | - case StepDetectionPIDMode: | |
444 | + case OtherPIDMode: | |
446 | 445 | PIDMgr->SetFixedData(P_VALUE_STAIRS_NORMAL, I_VALUE_STAIRS_NORMAL, D_VALUE_STAIRS_NORMAL); |
447 | 446 | m_pFixVal = P_VALUE_STAIRS_NORMAL; |
448 | 447 | m_iFixVal = I_VALUE_STAIRS_NORMAL; |
@@ -849,10 +848,10 @@ | ||
849 | 848 | modeUpdatePidValue = GrayLineTraceMode; |
850 | 849 | modeNormalizeTurnValue = LineTraceTurnMode; |
851 | 850 | modeSetForward = StepDetectionMode; |
852 | - modeSetPIDData = StepDetectionPIDMode; | |
851 | + modeSetPIDData = OtherPIDMode; | |
853 | 852 | break; |
854 | 853 | case StairsState1stBackward: // 1 1段目 段差検知誤バック走行モード |
855 | - modeUpdatePidValue = BlackLineTraceMode; | |
854 | + modeUpdatePidValue = GrayLineTraceMode; | |
856 | 855 | modeNormalizeTurnValue = NoneTurnMode; |
857 | 856 | modeSetForward = BackwardMode; |
858 | 857 | modeSetPIDData = OtherPIDMode; |
@@ -873,13 +872,13 @@ | ||
873 | 872 | modeUpdatePidValue = GrayLineTraceMode; |
874 | 873 | modeNormalizeTurnValue = LineTraceTurnMode; |
875 | 874 | modeSetForward = StepDetectionMode; |
876 | - modeSetPIDData = StepDetectionPIDMode; | |
875 | + modeSetPIDData = OtherPIDMode; | |
877 | 876 | break; |
878 | 877 | case StairsState1stStepUp: // 2 1段目 昇段モード |
879 | - modeUpdatePidValue = BlackLineTraceMode; | |
878 | + modeUpdatePidValue = GrayLineTraceMode; | |
880 | 879 | modeNormalizeTurnValue = NoneTurnMode; |
881 | 880 | modeSetForward = StepUpMode; |
882 | - modeSetPIDData = OtherPIDMode; | |
881 | + modeSetPIDData = StepDetectionPIDMode; | |
883 | 882 | break; |
884 | 883 | case StairsState1stAdjustPosition: // 3 1段目 昇段後位置調整モード |
885 | 884 | modeUpdatePidValue = BlackLineTraceMode; |
@@ -1269,7 +1268,7 @@ | ||
1269 | 1268 | void Stairs::setMotorPower() { |
1270 | 1269 | // モーター出力の設定 |
1271 | 1270 | log("setMotorPower a %d, %d, %d, %d \r\n", (int)motor_ang_l, (int)wk_motor_ang_l, (int)(motor_ang_r), (int)(wk_motor_ang_r)); |
1272 | - log("setMotorPower b %d, %d, %d \r\n", volt, (int)pwm_L, (int)(pwm_R)); | |
1271 | + log("setMotorPower b %d, %d, %d, %d \r\n", volt, (int)pwm_L, (int)(pwm_R), colorSensor); | |
1273 | 1272 | |
1274 | 1273 | BaseCourse::setMotorPower(); |
1275 | 1274 |
@@ -61,17 +61,16 @@ | ||
61 | 61 | // ジャイロ値関連 |
62 | 62 | const float STEP_DETECTION_GYRO = 115; // 段差検知とするジャイロ値 |
63 | 63 | const float STEP_UP_GYRO_OFFSET = -5; // 段差上昇時のジャイロオフセット値 |
64 | - const float STEP_UP_AFTER_GYRO_OFFSET = 5; // 段差上昇直後のジャイロオフセット値 | |
65 | 64 | const float NORMAL_GYRO_OFFSET = 0; // 通常時のジャイロオフセット値 |
66 | 65 | const float SPIN_GYRO_OFFSET = 0.00; // スピン時のジャイロオフセット値 |
67 | 66 | |
68 | 67 | // カラーセンサー値関連 |
69 | - const int LIGHT_GRAY = 9; // グレー色の光センサ値 | |
68 | + const int LIGHT_GRAY = 25; // グレー色の光センサ値 | |
70 | 69 | |
71 | 70 | // モーター回転角度関連 |
72 | 71 | const int MORTOR_ANG_BEFORE_STEP_DOWN_LINE_TRACE = 90; // 段差を降りる前のライントレース距離(左右モーターの合計回転角度) |
73 | 72 | const int MORTOR_ANG_AFTER_STEP_DOWN_LINE_TRACE = 1670; // 段差を降りた後のライントレース距離(左右モーターの合計回転角度) |
74 | - const int MORTOR_ANG_BACKWARD = -300; // 段差を昇るための助走距離分バック走行する距離(左右モーターの合計回転角度) | |
73 | + const int MORTOR_ANG_BACKWARD = -350; // 段差を昇るための助走距離分バック走行する距離(左右モーターの合計回転角度) | |
75 | 74 | const int MORTOR_ANG_STEP_UP = 490; // 段差を昇るときに走行する距離(左右モーターの合計回転角度) |
76 | 75 | const int MORTOR_ANG_STOP = 400; // 段差を昇ったあとから停止する位置の距離(左右モーターの合計回転角度) |
77 | 76 | const int MORTOR_ANG_STOP_RANGE = 90; // 段差を昇ったあとから停止する位置の誤差許容範囲(左右モーターの合計回転角度) |
@@ -84,10 +83,10 @@ | ||
84 | 83 | const int MORTOR_ANG_STEP_DOWN = 300; // 段差を昇るときに走行する距離(左右モーターの合計回転角度) |
85 | 84 | const int MORTOR_ANG_FOR_STOP_DIFF_MAX = 30; // 段差上昇後の停止位置に移動する際、目標位置までの差分距離のMAX値。(これ以上は同じForward値となるよという閾値) |
86 | 85 | const int MORTOR_ANG_ADJUST_LINE_FORWARD = 120; // ライントレース走行による位置調整時の前進距離(左右モーターの合計回転角度) |
87 | - const int MORTOR_ANG_ADJUST_LINE_BACKWARD = -100; // ライントレース走行による位置調整時の後進距離(左右モーターの合計回転角度) | |
88 | - const int MORTOR_ANG_LINE_EDGE_CHANGE_BACK1 = -150; | |
89 | - const int MORTOR_ANG_LINE_EDGE_CHANGE_BACK2 = -100; | |
90 | - const int MORTOR_ANG_LINE_EDGE_CHANGE_FORWARD = 350; | |
86 | + const int MORTOR_ANG_ADJUST_LINE_BACKWARD = -90; // ライントレース走行による位置調整時の後進距離(左右モーターの合計回転角度) | |
87 | + const int MORTOR_ANG_LINE_EDGE_CHANGE_BACK1 = -120; | |
88 | + const int MORTOR_ANG_LINE_EDGE_CHANGE_BACK2 = -60; | |
89 | + const int MORTOR_ANG_LINE_EDGE_CHANGE_FORWARD = 180; | |
91 | 90 | |
92 | 91 | // TURN値関連 |
93 | 92 | const int TURN_NONE = 0; // ライントレース無し直線走行時の指定値 |
@@ -95,13 +94,13 @@ | ||
95 | 94 | const int TURN_CHANGE_ANGLE = -20; // ライン探索時の車体方向角度変更時の指定値 |
96 | 95 | const int TURN_MAX = 60; // TURN値のMAX値(絶対値) |
97 | 96 | const int TURN_LINE_OVER1 = -10; // ラインをまたぐ際の値 |
98 | - const int TURN_LINE_OVER2 = 18; // ラインをまたぐ際の値 | |
97 | + const int TURN_LINE_OVER2 = 10; // ラインをまたぐ際の値 | |
99 | 98 | |
100 | 99 | |
101 | 100 | // FORWARD値関連 |
102 | 101 | const int FORWARD_STEP_DETECTION = 30; // 段差検知時の指定値 |
103 | 102 | const int FORWARD_BACKWARD = -70; // 段差を昇るための助走距離分バック走行時指定値 |
104 | - const int FORWARD_STEP_UP = 100; // 段差を昇る時の指定値 | |
103 | + const int FORWARD_STEP_UP = 130; // 段差を昇る時の指定値 | |
105 | 104 | const int FORWARD_MAX_FOR_STOP = 30; // 指定停止位置に移動してする際のMAX値 |
106 | 105 | const int FORWARD_SPIN = 0; // スピン時の指定値 |
107 | 106 | const int FORWARD_SEARCH_LINE_FORWARD = 30; // ライン探索前進時の指定値 |
@@ -120,7 +119,7 @@ | ||
120 | 119 | const float D_VALUE_STAIRS_NORMAL = 0.1; |
121 | 120 | |
122 | 121 | // 階段走行時のPID関連 |
123 | - const float P_VALUE_STAIRS_DETECTION = 0.05; | |
122 | + const float P_VALUE_STAIRS_DETECTION = 0.4; | |
124 | 123 | const float I_VALUE_STAIRS_DETECTION = 0; |
125 | 124 | const float D_VALUE_STAIRS_DETECTION = 0.03; |
126 | 125 |