Paso 18: OpenCV: promedio de centroide y generación de blanco
#//// 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: aquí el objetivo, o "punto" para el robot ejecutar después de se genera aleatoriamente. Como es posible que aviso que limita el área de generación de los puntos hacia el centro de mi webcam de campo de visión. Eso es porque soy desordenado y puntos iban donde el pequeño robot no pudo llegar.
147-153: Esta es una función de detección de colisión áspera. Básicamente, si el robot llega tan cerca de la meta (45px) entonces ha considerado como "comido" el punto. Si lo hiciera, la variable de punto se incrementa mostrando total cantidad que ha hecho comió y la variable de cadena newTarget se voltea para que puedan generar un nuevo objetivo el siguiente pase.