Stap 18: OpenCV: Centroid gemiddelden en Target generatie
#//// Move Bot //////////////////////////////////////#Don't start moving until things are ready.if iFrame >=160: #This compares the bot's heading with the target angle. It must#be +-30 for the bot to move forward, otherwise it will turn.if intHeadingDeg <= (targetDegs +30) and intHeadingDeg >+ (targetDegs -30): tranx =3 motorDuration =10#I'll use later#Forwardelse: if intHeadingDeg < targetDegs: if1< (targetDegs - intHeadingDeg): #abs(intHeadingDeg - targetDegs) >= 180: tranx =2 motorDuration =10print (intHeadingDeg - targetDegs) print"Right 1"elif1> (targetDegs - intHeadingDeg): #abs(intHeadingDeg - targetDegs) < 180: tranx =4 motorDuration =10print (intHeadingDeg - targetDegs) print"Left 1"elif intHeadingDeg >= targetDegs: if1< (targetDegs - intHeadingDeg): #abs(intHeadingDeg - targetDegs) <= 180: tranx =2 motorDuration =10print (intHeadingDeg - targetDegs) print"Right 2"elif1> (targetDegs - intHeadingDeg): #abs(intHeadingDeg - targetDegs) > 180: tranx =4 motorDuration =10print (intHeadingDeg - targetDegs) print"Left 2"#//// End Move Bot ////////////////////////////////// | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
142-145: hier het doel, of de "dot," voor de robot te lopen na willekeurig wordt gegenereerd. Aangezien u kunt is aankondiging dat ik beperkt het gebied van de generatie van de punten naar het midden van mijn webcam veld-of-view. Dat komt omdat ik ben rommelig en stippen gingen waar de kleine robot niet kon krijgen.
147-153: Dit is een ruwe botsing detectie functie. Kortom, als de robot zo dicht bij het doel (45px krijgt) dan het heeft beschouwd als hebben "opgegeten" de stip. Als het deed, wordt dan de dot -variabele verhoogd met het totaal bedrag dat hij heeft verricht aten en de tekenreeksvariabele newTarget is gespiegeld, dus kan het genereren van een nieuwe doelstelling de volgende doorlopen.