env.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import numpy as np
  2. class Env:
  3. def __init__(self):
  4. self.x_range = (-2, 15) # size of background
  5. self.y_range = (-2, 15)
  6. # self.obs_boundary = self.obs_boundary(self.x_range, self.y_range)
  7. # self.obs_circle = self.obs_circle()
  8. @staticmethod
  9. def obs_boundary(x, y):
  10. w = 1
  11. obs_boundary = []
  12. for i in np.linspace(x[0], x[1], (x[1] - x[0]) // w + 1):
  13. obs_boundary.append((i, y[0], w))
  14. for i in np.linspace(x[0], x[1], (x[1] - x[0]) // w + 1):
  15. obs_boundary.append((i, y[1], w))
  16. for j in np.linspace(y[0] + 1, y[1] - w, (y[1] - y[0] - 2 * w) // w + 1):
  17. obs_boundary.append((x[0], j, w))
  18. for j in np.linspace(y[0] + 1, y[1] - w, (y[1] - y[0] - 2 * w) // w + 1):
  19. obs_boundary.append((x[1], j, w))
  20. for i in np.linspace(10, 20, 10 // w + 1):
  21. obs_boundary.append((i, 15, w))
  22. for j in np.linspace(1, 14, 13 // w + 1):
  23. obs_boundary.append((20, j, w))
  24. for j in np.linspace(15, 29, 14 // w + 1):
  25. obs_boundary.append((30, j, w))
  26. for j in np.linspace(1, 14, 13 // w + 1):
  27. obs_boundary.append((40, j, w))
  28. return obs_boundary
  29. @staticmethod
  30. def obs_circle():
  31. obs_cir = [
  32. (8, 8, 3),
  33. (10, 23, 3),
  34. (20, 25, 2.5),
  35. (30, 7, 3),
  36. (40, 25, 2),
  37. (43, 20, 2.5)
  38. ]
  39. return obs_cir