ICA_Trigger_0924.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import numpy as np
  2. import pandas as pd
  3. from ACC_Trigger import ACC_Trigger
  4. import warnings
  5. warnings.filterwarnings("ignore", category=FutureWarning, module='pandas')
  6. pd.set_option('future.no_silent_downcasting', True)
  7. ICA_CONSTANT_SPEED = 3
  8. ICA_FOLLOW_CAR = 4
  9. ICA_y = 5
  10. class ICA_Trigger():
  11. def __init__(self, df_vehState, df_ego, df_objstate):
  12. self.df_vehState = df_vehState
  13. self.df_ego = df_ego
  14. self.df_objstate = df_objstate
  15. def vehstate_recognize(self):
  16. ICA_start_end_time_dict = {}
  17. # 寻找ICA相应状态机下的simTime和set_cruise_speed数据
  18. constant_speed_time = self.df_vehState[self.df_vehState['ICA_status'] == ICA_CONSTANT_SPEED]['simTime'].tolist()
  19. follow_car_time = self.df_vehState[self.df_vehState['ICA_status'] == ICA_FOLLOW_CAR]['simTime'].tolist()
  20. y_time_list = self.df_vehState[self.df_vehState['ICA_status'] == ICA_y]['simTime'].tolist()
  21. ACC = ACC_Trigger(self.df_vehState, self.df_ego, self.df_objstate)
  22. ICA_speed_start_end_time_list = ACC.find_start_end_time(constant_speed_time)
  23. ICA_dist_start_end_time_list = ACC.find_start_end_time(follow_car_time)
  24. ICA_y_start_end_time_list = ACC.find_start_end_time(y_time_list)
  25. ICA_start_end_time_dict['ICA_cruise_time'] = ICA_speed_start_end_time_list
  26. ICA_start_end_time_dict['ICA_following_car_time'] = ICA_dist_start_end_time_list
  27. ICA_start_end_time_dict['ICA_vertical_time'] = ICA_y_start_end_time_list
  28. return ICA_start_end_time_dict
  29. if __name__ == '__main__':
  30. df_vehState = pd.read_csv(r"D:\Cicv\Lantu\数据\VOYAH_ICA1\data\VehState.csv")
  31. df_ego = pd.read_csv(r"D:\Cicv\Lantu\数据\VOYAH_ICA1\data\EgoState.csv")
  32. df_objstate = pd.read_csv(r"D:\Cicv\Lantu\数据\VOYAH_ICA1\data\ObjState.csv")
  33. ICA = ICA_Trigger(df_vehState, df_ego, df_objstate)
  34. vehstate = ICA.vehstate_recognize()
  35. print(vehstate)