efficient_obstacle.py 1.5 KB

12345678910111213141516171819202122232425262728293031
  1. import numpy as np
  2. import pandas as pd
  3. def obstacle_collision(df_ego):
  4. obstacle_time_list = df_ego[(df_ego["obstacle"] == 1) & (abs(df_ego["speed_linear"]) < 0.01)]["simTime"].tolist()
  5. print("obstacle_time_list is", obstacle_time_list)
  6. start_obstacle_time_list = []
  7. interval = []
  8. if len(obstacle_time_list) > 0:
  9. start = obstacle_time_list[0]
  10. end = obstacle_time_list[0]
  11. start_obstacle_time_list.append(obstacle_time_list[0])
  12. for i in range(len(obstacle_time_list) - 1):
  13. if obstacle_time_list[i+1] - obstacle_time_list[i] > 0.2:
  14. end = obstacle_time_list[i]
  15. start_obstacle_time_list.append(obstacle_time_list[i+1])
  16. interval.append(float("{:.02f}".format(end-start)))
  17. start = obstacle_time_list[i+1]
  18. if start == obstacle_time_list[-1]:
  19. interval.append(float("{:.02f}".format(0)))
  20. else:
  21. end = obstacle_time_list[i]
  22. # else:
  23. # interval.append(float("{:.02f}".format(end - start)))
  24. obstacle_collision_count = len(start_obstacle_time_list)
  25. return start_obstacle_time_list, obstacle_collision_count, interval
  26. if __name__ == "__main__":
  27. df_ego = pd.read_csv(r"D:\Cicv\朴津项目\pji_outdoor_robot_evaluate_real_0818\task\test_0807-1\EgoState_pji.csv")
  28. start_obstacle_time_list, obstacle_collision_count, interval = obstacle_collision(df_ego)
  29. print("collision is", start_obstacle_time_list, obstacle_collision_count, interval)