Voici mon code:Maze Navigation dans le lecteur scène avec Roomba
/*
Scott Landau
Robot Lab Assignment 1
*/
// Standard Java Libs
import java.io.*;
// Player/Stage Libs
import javaclient2.*;
import javaclient2.structures.*;
import javaclient2.structures.sonar.*;
// Begin
public class SpinningRobot
{
public static Position2DInterface pos = null;
public static LaserInterface laser = null;
public static void main(String[] args)
{
PlayerClient robot = new PlayerClient("localhost", 6665);
laser = robot.requestInterfaceLaser(0, PlayerConstants.PLAYER_OPEN_MODE);
pos = robot.requestInterfacePosition2D(0,PlayerConstants.PLAYER_OPEN_MODE);
robot.runThreaded (-1, -1);
pos.setSpeed(0.5f, -0.25f);
// end pos
float x, y;
x = 46.0f;
y = -46.0f;
boolean done = false;
while(!done){
if(laser.isDataReady()) {
float[] laser_data = laser.getData().getRanges();
System.out.println("== IR Sensor ==");
System.out.println("Left Wall Distance: "+laser_data[360]);
System.out.println("Right Wall Distance: " +laser_data[0]);
// if laser doesn't reach left wall, move to detect it
// so we can guide using left wall
if (laser_data[360] < 0.6f) {
while (laser_data[360] < 0.6f) {
pos.setSpeed(0.5f, -0.5f);
}
} else if (laser_data[0] < 0.6f) {
while(laser_data[0<0.6f) { pos.setSpeed(0.5f, 0.5f);
}
}
pos.setSpeed(0.5f, -0.25f);
// end pos?
done = ((pos.getX() == x) && (pos.getY() == y));
}
}
}
} // End
je tentais d'avoir le Roomba aller en continu à une légère courbe à droite, tourner rapidement de chaque mur, il est venu près si elle l'a reconnu avec son laser. Je ne peux utiliser que laser_data [360] et laser_data [0] pour ce robot. Je pense que cela finirait par naviguer dans le labyrinthe.
Cependant, j'utilise la plateforme Player Stage, et Stage se fige quand le Roomba se rapproche d'un mur en utilisant ce code, je ne sais pas pourquoi.
Aussi, si vous pouvez penser à un meilleur algorithme de navigation labyrinthe, s'il vous plaît faites le moi savoir.
Merci!
Pouvez-vous modifier un peu le formatage? (supprime les lignes vides au moins) – Roman
Comment as-tu fait fonctionner java sur Roomba? –