env.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. @author: huiming zhou
  5. """
  6. import matplotlib.pyplot as plt
  7. x_range, y_range = 51, 31 # size of background
  8. motions = [(1, 0), (-1, 0), (0, 1), (0, -1)] # feasible motion sets
  9. def obs_map(xI, xG, name):
  10. """
  11. Initialize obstacles' positions
  12. :param xI: starting node
  13. :param xG: goal node
  14. :param name: title of figure
  15. :return: map of obstacles
  16. """
  17. obs_map = []
  18. for i in range(x_range):
  19. obs_map.append((i, 0))
  20. for i in range(x_range):
  21. obs_map.append((i, y_range-1))
  22. for i in range(y_range):
  23. obs_map.append((0, i))
  24. for i in range(y_range):
  25. obs_map.append((x_range-1, i))
  26. for i in range(10, 21):
  27. obs_map.append((i, 15))
  28. for i in range(15):
  29. obs_map.append((20, i))
  30. for i in range(15, 30):
  31. obs_map.append((30, i))
  32. for i in range(16):
  33. obs_map.append((40, i))
  34. obs_x = [obs_map[i][0] for i in range(len(obs_map))]
  35. obs_y = [obs_map[i][1] for i in range(len(obs_map))]
  36. plt.plot(xI[0], xI[1], "bs")
  37. plt.plot(xG[0], xG[1], "gs")
  38. plt.plot(obs_x, obs_y, "sk")
  39. plt.title(name, fontdict = None)
  40. plt.grid(True)
  41. plt.axis("equal")
  42. return obs_map