Models.java 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package config;
  2. import java.util.ArrayList;
  3. import lejos.robotics.mapping.LineMap;
  4. import lejos.robotics.navigation.Pose;
  5. public class Models {
  6. private LineMap map;
  7. public Models(LineMap map) {
  8. this.map = map;
  9. }
  10. public double expectedSonarRead(Pose p, double angle) {
  11. /**************** MODELO DO SONAR *******************/
  12. Pose tmppose = new Pose(p.getX(), p.getY(), p.getHeading());
  13. float mindist = Float.POSITIVE_INFINITY;
  14. int cone = 0;
  15. for (int angulo=-cone/2; angulo <= cone/2; angulo++) {
  16. tmppose.setHeading((float) (p.getHeading() - angulo + angle));
  17. float dist = map.range(tmppose);
  18. if (dist > 0 && dist < mindist)
  19. mindist = dist;
  20. }
  21. return mindist;
  22. }
  23. /* retorna a probabilidade do robo estar em (ap, aang) sendo que ele saiu de (bp, bang)
  24. * com um movimento de rotacao de ang graus.*/
  25. public double rotateProbability (Pose pa, double aang, Pose pb, double bang, double ang) {
  26. return 0;
  27. }
  28. /* retorna a probabilidade do robo estar em (ap, aang) sendo que ele saiu de (bp, bang)
  29. * com sendo que ele foi move centimetros para frente.*/
  30. public double moveProbability (Pose pa, double aang, Pose pb, double bang, double move) {
  31. return 0;
  32. }
  33. /* retorna a probabilidade dele estar em (p, ang) sendo que realizou a leitura do
  34. * conjunto x de medidas */
  35. public double readProbability (Pose p, double angle, ArrayList<Integer> x) {
  36. return 0;
  37. }
  38. }