def activate():
if(ultrasonic.get_sample() < 10):
both.turn(power=-70, tacho_units=400, brake=False)
time.sleep(1)
bx,by = get_ballxy()
rx,ry,a = get_robotxya()
turn_to(brick,bx,by,rx,ry,a)
time.sleep(0.5)
move_to(brick,bx,by,rx,ry)
kickBall(brick,by)
else:
time.sleep(1)
bx,by = get_ballxy()
rx,ry,a = get_robotxya()
turn_to(brick,bx,by,rx,ry,a)
time.sleep(0.5)
move_to(brick,bx,by,rx,ry)
kickBall(brick,by,ry)
Thread(target=update_coordinates).start()
connect()
update_coordinates()
while True:
activate()
上記は私のコードの一部です。get_ballxy
andget_robotxya
は対応するオブジェクトの座標を返し、turn_to
andmove_to
メソッドは明らかにロボットをオブジェクトに向けて移動させます。値はサーバーから返され、バックグラウンド プロセスとしてスレッドに格納されます。ここでの私の質問は、ループで実行するときに、ロボットが誤った値または以前と同じ値を取り込まないようにするにはどうすればよいですか? 例えば:
- 最初の値のセット:
- ボールに向けてボールに移動し、ボールを蹴ります。
- ボールの動きが止まるまで待ってから、値をロボットに再読み込みし、これをループで実行します。
どうすればいいですか?私はそれを眠らせてみましtime.sleep(seconds)
たが、時々うまくいき、しばらくすると気が狂います。