test_run.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import os
  2. import sys
  3. sys.path.append(os.path.dirname(os.path.abspath(__file__)) +
  4. "/../../onsite_parking/")
  5. import json
  6. import input.make_map as mp
  7. from planner.hybridastar import planner as planner
  8. from input import make_car
  9. from utils import replay
  10. from utils import map_display as mdp
  11. import matplotlib.pyplot as plt
  12. def main():
  13. # 输入input文件夹下场景文件
  14. map_path = '../input/Atest.json'
  15. mdp.map_display(map_path) # 仅绘制地图
  16. ox, oy,sp,gp = mp.make_map(map_path)
  17. sx, sy, syaw0 = sp['x'], sp['y'], sp['yaw']
  18. C = make_car.C
  19. # 获取目标停车位
  20. park = '3'
  21. gx, gy, gyaw0 = gp[park]['x_end'], gp[park]['y_end'], gp[park]['yaw']
  22. # 规划算法
  23. path = planner.hybrid_astar_planning(sx, sy, syaw0, gx, gy, gyaw0, ox, oy, C.XY_RESO, C.YAW_RESO)
  24. # 算法测试结果保存
  25. if not path:
  26. print("Searching failed!")
  27. return
  28. output_dit={
  29. "output_x":path.x,
  30. "output_y": path.y,
  31. "output_yaw": path.yaw,
  32. "output_dir": path.direction,
  33. }
  34. with open(f"../output/result_{map_path.split('/')[-1].split('.json')[0]}_{park}.json", "w") as file:
  35. json.dump(output_dit, file)
  36. # 仿真回放
  37. result_path = f"../output/result_{map_path.split('/')[-1].split('.json')[0]}_{park}.json"
  38. replay.replay(map_path, result_path)
  39. if __name__ == '__main__':
  40. main()