c07e5c2a1dbb001711b8bf632416c20d 611 B

123456789101112131415161718192021222324
  1. package config;
  2. import lejos.robotics.mapping.LineMap;
  3. import lejos.robotics.navigation.Pose;
  4. public class Models {
  5. private LineMap map;
  6. public Models(LineMap map) {
  7. this.map = map;
  8. }
  9. public double expectedSonarRead(Pose p, double angle) {
  10. Pose tmppose = new Pose(p.getX(), p.getY(), p.getHeading());
  11. float mindist = Float.POSITIVE_INFINITY;
  12. int cone = 30;
  13. for (int angulo=-cone/2; angulo <= cone/2; angulo++) {
  14. tmppose.setHeading((float) (p.getHeading() - angulo + angle));
  15. float dist = map.range(tmppose);
  16. if (dist > 0 && dist < mindist) mindist = dist;
  17. }
  18. return mindist;
  19. }
  20. }