12345678910111213141516171819202122232425262728293031 |
- import numpy as np
- import pandas as pd
- def obstacle_collision(df_ego):
- obstacle_time_list = df_ego[(df_ego["obstacle"] == 1) & (abs(df_ego["speed_linear"]) < 0.01)]["simTime"].tolist()
- print("obstacle_time_list is", obstacle_time_list)
- start_obstacle_time_list = []
- interval = []
- if len(obstacle_time_list) > 0:
- start = obstacle_time_list[0]
- end = obstacle_time_list[0]
- start_obstacle_time_list.append(obstacle_time_list[0])
- for i in range(len(obstacle_time_list) - 1):
- if obstacle_time_list[i+1] - obstacle_time_list[i] > 0.2:
- end = obstacle_time_list[i]
- start_obstacle_time_list.append(obstacle_time_list[i+1])
- interval.append(float("{:.02f}".format(end-start)))
- start = obstacle_time_list[i+1]
- if start == obstacle_time_list[-1]:
- interval.append(float("{:.02f}".format(0)))
- else:
- end = obstacle_time_list[i]
- # else:
- # interval.append(float("{:.02f}".format(end - start)))
- obstacle_collision_count = len(start_obstacle_time_list)
- return start_obstacle_time_list, obstacle_collision_count, interval
- if __name__ == "__main__":
- df_ego = pd.read_csv(r"D:\Cicv\朴津项目\pji_outdoor_robot_evaluate_real_0818\task\test_0807-1\EgoState_pji.csv")
- start_obstacle_time_list, obstacle_collision_count, interval = obstacle_collision(df_ego)
- print("collision is", start_obstacle_time_list, obstacle_collision_count, interval)
|