私はこのロボットを障害物に達するまでランダムな方向に進ませようとしています。次に、その障害物(障害物= 1,2,3など)を記録し、方向を切り替える必要があります。これはタイマーが切れるまで続くはずです。ロボットの障害物の記録/回避
public static void main(String args[]) throws Exception{
Robot therobot = new Robot();
int x = 10000;
int obstacles = 0;
Random rand = new Random();
int r1 = rand.nextInt(255) + 1;
int r2 = rand.nextInt(255) + 1;
therobot.setWheelVelocities(100,100);
long before = System.currentTimeMillis();
while (System.currentTimeMillis() - before < x){
Thread.sleep(x);
if(therobot.isObstacle() ==true || therobot.isTapped() == true)
{
r1 = rand.nextInt(255) - 255;
r2 = rand.nextInt(255) - 255;
obstacles = obstacles++;
therobot.setWheelVelocities(r1, r2);
}
}
System.out.println(obstacles);
therobot.stopWheels();
therobot.quit();
}
しかし、これはうまくいかないようです。タイマーが満了するまで動きますが、何も停止または記録しません。
私には何が欠けていますか?
私は、テストの際に各繰り返しに10秒を使用しないことをお勧めします... isObstacleとisTappedの動作がわからないと、私たちはあなたを助けません。 whileループの最後になぜtherobot.quit()を呼び出すのですか?あなたがwhileループから外れているときに呼び出されるべきではありませんか? –
という名前に基づいて推測するだけで、左右の障害物センサーが障害物を検出すると、isObstacleはtrueを返します。 isTappedの場合と同じことです。何かが触れた場合、移動を止めるべきです。また、彼らは真実です。 – George
robot.quit()とstopWheels()は何ですか? –