Beste Version

Dependencies:   mbed

Fork of Roboshark_V8 by Roboshark

Committer:
ahlervin
Date:
Wed May 09 17:08:24 2018 +0000
Revision:
13:1687f97d4d82
Parent:
12:cd07a80f0a9a
Optimaler Regler und Schnellster Speed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ahlervin 9:feabe0b7cea4 1 /*Roboshark V7
ahlervin 6:7bbcdd07bc2d 2 Fahren.cpp
ahlervin 6:7bbcdd07bc2d 3 Erstellt: J. Blunschi
ahlervin 6:7bbcdd07bc2d 4 geändert: V.Ahlers
ahlervin 6:7bbcdd07bc2d 5 V.5.18
ahlervin 6:7bbcdd07bc2d 6 */
ahlervin 6:7bbcdd07bc2d 7
Jacqueline 0:6d0671ae4648 8 #include "Fahren.h"
Jacqueline 0:6d0671ae4648 9 #include <mbed.h>
ahlervin 9:feabe0b7cea4 10 #include "IRSensor.h"
Jacqueline 0:6d0671ae4648 11
Jacqueline 0:6d0671ae4648 12
ahlervin 6:7bbcdd07bc2d 13 using namespace std;
ahlervin 6:7bbcdd07bc2d 14
ahlervin 10:fb2195d0de0f 15 const float Fahren :: PERIOD = 5.0f;
ahlervin 7:862d80e0ea2d 16
ahlervin 9:feabe0b7cea4 17 //Konstruktor
ahlervin 9:feabe0b7cea4 18 Fahren::Fahren(Controller& controller, EncoderCounter& counterLeft, EncoderCounter& counterRight, IRSensor& iRSensor):
ahlervin 9:feabe0b7cea4 19 controller(controller), counterLeft(counterLeft), counterRight(counterRight), iRSensor (iRSensor){
ahlervin 13:1687f97d4d82 20 SpeedR = 120.0f; //120
ahlervin 13:1687f97d4d82 21 SpeedL = 120.0f; //120
ahlervin 9:feabe0b7cea4 22 disF = 0.0f;
ahlervin 10:fb2195d0de0f 23 //ticker.attach(callback(this, &Fahren::reset), PERIOD);
ahlervin 9:feabe0b7cea4 24 }
ahlervin 9:feabe0b7cea4 25 //Dekonstruktor
ahlervin 10:fb2195d0de0f 26 Fahren::~Fahren() {
ahlervin 10:fb2195d0de0f 27 //ticker.detach();
ahlervin 10:fb2195d0de0f 28 }
Jacqueline 0:6d0671ae4648 29
ahlervin 10:fb2195d0de0f 30 //void Fahren::reset(){
ahlervin 10:fb2195d0de0f 31 //controller.resetEncoder();
ahlervin 10:fb2195d0de0f 32 //}
ahlervin 9:feabe0b7cea4 33
ahlervin 6:7bbcdd07bc2d 34 //Implementation der Methode geradeaus fahren geregelt
ahlervin 6:7bbcdd07bc2d 35 void Fahren::geradeausG(){
ahlervin 6:7bbcdd07bc2d 36
ahlervin 6:7bbcdd07bc2d 37 //einlesen des aktuellen Encoder standes
ahlervin 6:7bbcdd07bc2d 38 initialClicksRight = counterRight.read();
ahlervin 6:7bbcdd07bc2d 39 initialClicksLeft = counterLeft.read();
ahlervin 6:7bbcdd07bc2d 40
ahlervin 6:7bbcdd07bc2d 41 //Anzahl Clicks die der Encoder zählen soll
ahlervin 12:cd07a80f0a9a 42 wegRechts = 1675;
ahlervin 12:cd07a80f0a9a 43 wegLinks = 1675;
ahlervin 7:862d80e0ea2d 44
ahlervin 6:7bbcdd07bc2d 45
ahlervin 6:7bbcdd07bc2d 46 //Zustand, dass der Roboter nicht gestoppt hat
ahlervin 6:7bbcdd07bc2d 47 stopRight = false;
ahlervin 6:7bbcdd07bc2d 48 stopLeft = false;
ahlervin 8:d0a27278c108 49 reglerEinR = 1;
ahlervin 8:d0a27278c108 50 reglerEinL = 1;
ahlervin 6:7bbcdd07bc2d 51
ahlervin 6:7bbcdd07bc2d 52 while(1){
ahlervin 13:1687f97d4d82 53 float diff = (iRSensor.readR() - iRSensor.readL())*0.81f; //Regler 0.81
ahlervin 11:474ad54d2595 54 if(iRSensor.readR()>80.0f) diff=0;
ahlervin 11:474ad54d2595 55 if(iRSensor.readL()>80.0f) diff=0;
ahlervin 8:d0a27278c108 56 //printf("diff =%f \n",diff);
ahlervin 8:d0a27278c108 57 controller.setDesiredSpeedRight(SpeedR+diff);
ahlervin 8:d0a27278c108 58 controller.setDesiredSpeedLeft(-(SpeedL-diff));
ahlervin 8:d0a27278c108 59
ahlervin 13:1687f97d4d82 60 wait(0.02); //0.02
ahlervin 6:7bbcdd07bc2d 61
ahlervin 6:7bbcdd07bc2d 62 // printf("Encoderrechts %d \n\r", counterRight.read()); //Debugging Zweck (Putty benutzen!)
ahlervin 6:7bbcdd07bc2d 63 // printf("Encoderlinks %d \n\r", counterLeft.read()); //Debugging Zweck (Putty benutzen!)
ahlervin 6:7bbcdd07bc2d 64
ahlervin 6:7bbcdd07bc2d 65 //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen
ahlervin 8:d0a27278c108 66 if(counterRight.read() - initialClicksRight >= wegRechts || counterRight.read() - initialClicksRight <= -wegRechts || iRSensor.readF() < 50.0f){
ahlervin 6:7bbcdd07bc2d 67 controller.setDesiredSpeedRight(0);
ahlervin 6:7bbcdd07bc2d 68 stopRight = true;
ahlervin 8:d0a27278c108 69 reglerEinR = 0;
ahlervin 6:7bbcdd07bc2d 70 }
ahlervin 6:7bbcdd07bc2d 71
ahlervin 6:7bbcdd07bc2d 72 //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen
ahlervin 8:d0a27278c108 73 if(counterLeft.read() - initialClicksLeft >= wegLinks || counterLeft.read() - initialClicksLeft <= -wegLinks || iRSensor.readF() < 50.0f){
ahlervin 6:7bbcdd07bc2d 74 controller.setDesiredSpeedLeft(0);
ahlervin 6:7bbcdd07bc2d 75 stopLeft = true;
ahlervin 8:d0a27278c108 76 reglerEinL = 0;
ahlervin 6:7bbcdd07bc2d 77 }
ahlervin 6:7bbcdd07bc2d 78
ahlervin 6:7bbcdd07bc2d 79 if(stopRight == true && stopLeft == true){
ahlervin 10:fb2195d0de0f 80 //controller.resetEncoder();
ahlervin 6:7bbcdd07bc2d 81 return;
ahlervin 6:7bbcdd07bc2d 82 }
ahlervin 6:7bbcdd07bc2d 83
ahlervin 6:7bbcdd07bc2d 84 }
ahlervin 6:7bbcdd07bc2d 85
ahlervin 6:7bbcdd07bc2d 86 }
ahlervin 6:7bbcdd07bc2d 87
Jacqueline 0:6d0671ae4648 88 //Implementation der Methode 90 Grad Rechtsdrehen
Jacqueline 0:6d0671ae4648 89 void Fahren::rechts90() {
Jacqueline 0:6d0671ae4648 90
Jacqueline 0:6d0671ae4648 91 //einlesen des aktuellen Encoder standes
Jacqueline 0:6d0671ae4648 92 initialClicksRight = counterRight.read();
Jacqueline 0:6d0671ae4648 93 initialClicksLeft = counterLeft.read();
Jacqueline 0:6d0671ae4648 94
Jacqueline 0:6d0671ae4648 95 //Anzahl Clicks die der Encoder zählen soll
ahlervin 7:862d80e0ea2d 96 wegRechts = 868;
ahlervin 7:862d80e0ea2d 97 wegLinks = 868;
Jacqueline 0:6d0671ae4648 98
Jacqueline 0:6d0671ae4648 99 //Zustand, dass der Roboter nicht gestoppt hat
Jacqueline 0:6d0671ae4648 100 stopRight = false;
Jacqueline 0:6d0671ae4648 101 stopLeft = false;
Jacqueline 0:6d0671ae4648 102
Jacqueline 0:6d0671ae4648 103 //Drehrichtung der Motoren
ahlervin 7:862d80e0ea2d 104 controller.setDesiredSpeedRight((SpeedR));
ahlervin 7:862d80e0ea2d 105 controller.setDesiredSpeedLeft((SpeedL));
ahlervin 7:862d80e0ea2d 106 //printf("SpeedR in F = %f\n",SpeedR);
ahlervin 7:862d80e0ea2d 107 //printf("SpeedL in F = %f\n",SpeedL);
Jacqueline 0:6d0671ae4648 108 while(1){
Jacqueline 0:6d0671ae4648 109
Jacqueline 0:6d0671ae4648 110 // printf("Encoderrechts %d \n\r", counterRight.read()); //Debugging Zweck (Putty benutzen!)
Jacqueline 0:6d0671ae4648 111 // printf("Encoderlinks %d \n\r", counterLeft.read()); //Debugging Zweck (Putty benutzen!)
Jacqueline 0:6d0671ae4648 112
Jacqueline 0:6d0671ae4648 113 //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen
Jacqueline 0:6d0671ae4648 114 if(counterRight.read() - initialClicksRight >= wegRechts || counterRight.read() - initialClicksRight <= -wegRechts){
Jacqueline 0:6d0671ae4648 115 controller.setDesiredSpeedRight(0);
Jacqueline 0:6d0671ae4648 116 stopRight = true;
Jacqueline 0:6d0671ae4648 117 }
Jacqueline 0:6d0671ae4648 118
Jacqueline 0:6d0671ae4648 119 //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen
Jacqueline 0:6d0671ae4648 120 if(counterLeft.read() - initialClicksLeft >= wegLinks || counterLeft.read() - initialClicksLeft <= -wegLinks ){
Jacqueline 0:6d0671ae4648 121 controller.setDesiredSpeedLeft(0);
Jacqueline 0:6d0671ae4648 122 stopLeft = true;
Jacqueline 0:6d0671ae4648 123 }
Jacqueline 0:6d0671ae4648 124
Jacqueline 0:6d0671ae4648 125 if(stopRight == true && stopLeft == true){
Jacqueline 0:6d0671ae4648 126 return;
Jacqueline 0:6d0671ae4648 127 }
Jacqueline 0:6d0671ae4648 128
Jacqueline 0:6d0671ae4648 129 }
Jacqueline 0:6d0671ae4648 130
Jacqueline 0:6d0671ae4648 131 }
Jacqueline 0:6d0671ae4648 132
Jacqueline 0:6d0671ae4648 133
Jacqueline 0:6d0671ae4648 134
Jacqueline 0:6d0671ae4648 135 //Implementation der Methode 180 Grad Rechtsdrehen
Jacqueline 0:6d0671ae4648 136 void Fahren::rechts180() {
Jacqueline 0:6d0671ae4648 137
Jacqueline 0:6d0671ae4648 138 //einlesen des aktuellen Encoder standes
Jacqueline 0:6d0671ae4648 139 initialClicksRight = counterRight.read();
Jacqueline 0:6d0671ae4648 140 initialClicksLeft = counterLeft.read();
Jacqueline 0:6d0671ae4648 141
Jacqueline 0:6d0671ae4648 142 //Anzahl Clicks die der Encoder zählen soll
ahlervin 7:862d80e0ea2d 143 wegRechts = 1752;
ahlervin 7:862d80e0ea2d 144 wegLinks = 1752;
Jacqueline 0:6d0671ae4648 145
Jacqueline 0:6d0671ae4648 146 //Zustand, dass der Roboter nicht gestoppt hat
Jacqueline 0:6d0671ae4648 147 stopRight = false;
Jacqueline 0:6d0671ae4648 148 stopLeft = false;
Jacqueline 0:6d0671ae4648 149
Jacqueline 0:6d0671ae4648 150 //Drehrichtung der Motoren
ahlervin 7:862d80e0ea2d 151 controller.setDesiredSpeedRight((SpeedR));
ahlervin 7:862d80e0ea2d 152 controller.setDesiredSpeedLeft((SpeedL));
Jacqueline 0:6d0671ae4648 153
Jacqueline 0:6d0671ae4648 154 while(1){
Jacqueline 0:6d0671ae4648 155
Jacqueline 0:6d0671ae4648 156 // printf("Encoderrechts %d \n\r", counterRight.read()); //Debugging Zweck (Putty benutzen!)
Jacqueline 0:6d0671ae4648 157 // printf("Encoderlinks %d \n\r", counterLeft.read()); //Debugging Zweck (Putty benutzen!)
Jacqueline 0:6d0671ae4648 158
Jacqueline 0:6d0671ae4648 159 //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen
Jacqueline 0:6d0671ae4648 160 if(counterRight.read() - initialClicksRight >= wegRechts || counterRight.read() - initialClicksRight <= -wegRechts){
Jacqueline 0:6d0671ae4648 161 controller.setDesiredSpeedRight(0);
Jacqueline 0:6d0671ae4648 162 stopRight = true;
Jacqueline 0:6d0671ae4648 163 }
Jacqueline 0:6d0671ae4648 164
Jacqueline 0:6d0671ae4648 165 //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen
Jacqueline 0:6d0671ae4648 166 if(counterLeft.read() - initialClicksLeft >= wegLinks || counterLeft.read() - initialClicksLeft <= -wegLinks ){
Jacqueline 0:6d0671ae4648 167 controller.setDesiredSpeedLeft(0);
Jacqueline 0:6d0671ae4648 168 stopLeft = true;
Jacqueline 0:6d0671ae4648 169 }
Jacqueline 0:6d0671ae4648 170
Jacqueline 0:6d0671ae4648 171 if(stopRight == true && stopLeft == true){
Jacqueline 0:6d0671ae4648 172 return;
Jacqueline 0:6d0671ae4648 173 }
Jacqueline 0:6d0671ae4648 174
Jacqueline 0:6d0671ae4648 175 }
Jacqueline 0:6d0671ae4648 176
Jacqueline 0:6d0671ae4648 177 }
Jacqueline 0:6d0671ae4648 178
Jacqueline 0:6d0671ae4648 179
Jacqueline 2:402b1a74fff6 180 //Implementation der Methode 90 Grad Linksdrehen
Jacqueline 2:402b1a74fff6 181 void Fahren::links90() {
Jacqueline 0:6d0671ae4648 182
Jacqueline 0:6d0671ae4648 183 //einlesen des aktuellen Encoder standes
Jacqueline 0:6d0671ae4648 184 initialClicksRight = counterRight.read();
Jacqueline 0:6d0671ae4648 185 initialClicksLeft = counterLeft.read();
Jacqueline 0:6d0671ae4648 186
Jacqueline 0:6d0671ae4648 187 //Anzahl Clicks die der Encoder zählen soll
ahlervin 8:d0a27278c108 188 wegRechts = 868;
ahlervin 8:d0a27278c108 189 wegLinks = 868;
Jacqueline 0:6d0671ae4648 190
Jacqueline 0:6d0671ae4648 191 //Zustand, dass der Roboter nicht gestoppt hat
Jacqueline 0:6d0671ae4648 192 stopRight = false;
Jacqueline 0:6d0671ae4648 193 stopLeft = false;
Jacqueline 0:6d0671ae4648 194
Jacqueline 0:6d0671ae4648 195 //Drehrichtung der Motoren
ahlervin 7:862d80e0ea2d 196 controller.setDesiredSpeedRight((-SpeedR));
ahlervin 7:862d80e0ea2d 197 controller.setDesiredSpeedLeft((-SpeedL));
Jacqueline 0:6d0671ae4648 198
Jacqueline 0:6d0671ae4648 199 while(1){
Jacqueline 0:6d0671ae4648 200
Jacqueline 0:6d0671ae4648 201 // printf("Encoderrechts %d \n\r", counterRight.read()); //Debugging Zweck (Putty benutzen!)
Jacqueline 0:6d0671ae4648 202 // printf("Encoderlinks %d \n\r", counterLeft.read()); //Debugging Zweck (Putty benutzen!)
Jacqueline 0:6d0671ae4648 203
Jacqueline 0:6d0671ae4648 204 //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen
Jacqueline 0:6d0671ae4648 205 if(counterRight.read() - initialClicksRight >= wegRechts || counterRight.read() - initialClicksRight <= -wegRechts){
Jacqueline 0:6d0671ae4648 206 controller.setDesiredSpeedRight(0);
Jacqueline 0:6d0671ae4648 207 stopRight = true;
Jacqueline 0:6d0671ae4648 208 }
Jacqueline 0:6d0671ae4648 209
Jacqueline 0:6d0671ae4648 210 //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen
Jacqueline 0:6d0671ae4648 211 if(counterLeft.read() - initialClicksLeft >= wegLinks || counterLeft.read() - initialClicksLeft <= -wegLinks ){
Jacqueline 0:6d0671ae4648 212 controller.setDesiredSpeedLeft(0);
Jacqueline 0:6d0671ae4648 213 stopLeft = true;
Jacqueline 0:6d0671ae4648 214 }
Jacqueline 0:6d0671ae4648 215
Jacqueline 0:6d0671ae4648 216 if(stopRight == true && stopLeft == true){
Jacqueline 0:6d0671ae4648 217 return;
Jacqueline 0:6d0671ae4648 218 }
Jacqueline 0:6d0671ae4648 219
Jacqueline 0:6d0671ae4648 220 }
Jacqueline 0:6d0671ae4648 221
Jacqueline 0:6d0671ae4648 222 }
Jacqueline 0:6d0671ae4648 223
ahlervin 4:767fd282dd9c 224
ahlervin 4:767fd282dd9c 225 //Implementation der Methode Ziel erreicht
ahlervin 4:767fd282dd9c 226 void Fahren::ziel() {
ahlervin 4:767fd282dd9c 227
ahlervin 4:767fd282dd9c 228 //einlesen des aktuellen Encoder standes
ahlervin 4:767fd282dd9c 229 initialClicksRight = counterRight.read();
ahlervin 4:767fd282dd9c 230 initialClicksLeft = counterLeft.read();
Jacqueline 0:6d0671ae4648 231
ahlervin 4:767fd282dd9c 232 //Anzahl Clicks die der Encoder zählen soll
ahlervin 4:767fd282dd9c 233 wegRechts = 7050;
ahlervin 4:767fd282dd9c 234 wegLinks = 7050;
ahlervin 4:767fd282dd9c 235
ahlervin 4:767fd282dd9c 236 //Zustand, dass der Roboter nicht gestoppt hat
ahlervin 4:767fd282dd9c 237 stopRight = false;
ahlervin 4:767fd282dd9c 238 stopLeft = false;
ahlervin 4:767fd282dd9c 239
ahlervin 4:767fd282dd9c 240 //Drehrichtung der Motoren
ahlervin 7:862d80e0ea2d 241 controller.setDesiredSpeedRight((SpeedR));
ahlervin 7:862d80e0ea2d 242 controller.setDesiredSpeedLeft((SpeedR));
ahlervin 4:767fd282dd9c 243
ahlervin 4:767fd282dd9c 244 while(1){
ahlervin 4:767fd282dd9c 245
ahlervin 4:767fd282dd9c 246 // printf("Encoderrechts %d \n\r", counterRight.read()); //Debugging Zweck (Putty benutzen!)
ahlervin 4:767fd282dd9c 247 // printf("Encoderlinks %d \n\r", counterLeft.read()); //Debugging Zweck (Putty benutzen!)
ahlervin 4:767fd282dd9c 248
ahlervin 4:767fd282dd9c 249 //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen
ahlervin 4:767fd282dd9c 250 if(counterRight.read() - initialClicksRight >= wegRechts || counterRight.read() - initialClicksRight <= -wegRechts){
ahlervin 4:767fd282dd9c 251 controller.setDesiredSpeedRight(0);
ahlervin 4:767fd282dd9c 252 stopRight = true;
ahlervin 4:767fd282dd9c 253 }
ahlervin 4:767fd282dd9c 254
ahlervin 4:767fd282dd9c 255 //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen
ahlervin 4:767fd282dd9c 256 if(counterLeft.read() - initialClicksLeft >= wegLinks || counterLeft.read() - initialClicksLeft <= -wegLinks ){
ahlervin 4:767fd282dd9c 257 controller.setDesiredSpeedLeft(0);
ahlervin 4:767fd282dd9c 258 stopLeft = true;
ahlervin 4:767fd282dd9c 259 }
ahlervin 4:767fd282dd9c 260
ahlervin 4:767fd282dd9c 261 if(stopRight == true && stopLeft == true){
ahlervin 4:767fd282dd9c 262 return;
ahlervin 4:767fd282dd9c 263 }
ahlervin 4:767fd282dd9c 264 }
ahlervin 4:767fd282dd9c 265
ahlervin 4:767fd282dd9c 266 }
Jacqueline 0:6d0671ae4648 267
ahlervin 4:767fd282dd9c 268 //Implementation der Methode stopp
ahlervin 4:767fd282dd9c 269 void Fahren::stopp(){
ahlervin 4:767fd282dd9c 270
ahlervin 4:767fd282dd9c 271 //einlesen des aktuellen Encoder standes
ahlervin 4:767fd282dd9c 272 initialClicksRight = counterRight.read();
ahlervin 4:767fd282dd9c 273 initialClicksLeft = counterLeft.read();
ahlervin 4:767fd282dd9c 274
ahlervin 4:767fd282dd9c 275 //Anzahl Clicks die der Encoder zählen soll
ahlervin 4:767fd282dd9c 276 wegRechts = 0;
ahlervin 4:767fd282dd9c 277 wegLinks = 0;
ahlervin 4:767fd282dd9c 278
ahlervin 4:767fd282dd9c 279 //Geschwindigkeit
ahlervin 4:767fd282dd9c 280 speedRight = 0;
ahlervin 4:767fd282dd9c 281 speedLeft = 0;
ahlervin 4:767fd282dd9c 282
ahlervin 4:767fd282dd9c 283 //Zustand, dass der Roboter nicht gestoppt hat
ahlervin 4:767fd282dd9c 284 stopRight = false;
ahlervin 4:767fd282dd9c 285 stopLeft = false;
ahlervin 4:767fd282dd9c 286
ahlervin 4:767fd282dd9c 287 //Drehrichtung der Motoren
ahlervin 4:767fd282dd9c 288 controller.setDesiredSpeedRight(speedRight);
ahlervin 4:767fd282dd9c 289 controller.setDesiredSpeedLeft(-(speedLeft));
ahlervin 4:767fd282dd9c 290
ahlervin 4:767fd282dd9c 291
ahlervin 4:767fd282dd9c 292 while(1){
ahlervin 4:767fd282dd9c 293
ahlervin 4:767fd282dd9c 294 // printf("Encoderrechts %d \n\r", counterRight.read()); //Debugging Zweck (Putty benutzen!)
ahlervin 4:767fd282dd9c 295 // printf("Encoderlinks %d \n\r", counterLeft.read()); //Debugging Zweck (Putty benutzen!)
ahlervin 4:767fd282dd9c 296
ahlervin 4:767fd282dd9c 297 //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen
ahlervin 4:767fd282dd9c 298 if(counterRight.read() - initialClicksRight >= wegRechts || counterRight.read() - initialClicksRight <= -wegRechts){
ahlervin 4:767fd282dd9c 299 controller.setDesiredSpeedRight(0);
ahlervin 4:767fd282dd9c 300 stopRight = true;
ahlervin 4:767fd282dd9c 301 }
ahlervin 4:767fd282dd9c 302
ahlervin 4:767fd282dd9c 303 //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen
ahlervin 4:767fd282dd9c 304 if(counterLeft.read() - initialClicksLeft >= wegLinks || counterLeft.read() - initialClicksLeft <= -wegLinks ){
ahlervin 4:767fd282dd9c 305 controller.setDesiredSpeedLeft(0);
ahlervin 4:767fd282dd9c 306 stopLeft = true;
ahlervin 4:767fd282dd9c 307 }
ahlervin 4:767fd282dd9c 308
ahlervin 4:767fd282dd9c 309 if(stopRight == true && stopLeft == true){
ahlervin 4:767fd282dd9c 310 return;
ahlervin 4:767fd282dd9c 311 }
ahlervin 4:767fd282dd9c 312
ahlervin 4:767fd282dd9c 313 }
ahlervin 4:767fd282dd9c 314
ahlervin 4:767fd282dd9c 315 }