You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							84 lines
						
					
					
						
							2.0 KiB
						
					
					
				
			
		
		
	
	
							84 lines
						
					
					
						
							2.0 KiB
						
					
					
				| import numpy as np
 | |
| 
 | |
| def index_function(idx, max_val=192, max_idx=32):
 | |
|   return (max_val) * ((idx/max_idx)**2)
 | |
| 
 | |
| class ModelConstants:
 | |
|   # time and distance indices
 | |
|   IDX_N = 33
 | |
|   T_IDXS = [index_function(idx, max_val=10.0) for idx in range(IDX_N)]
 | |
|   X_IDXS = [index_function(idx, max_val=192.0) for idx in range(IDX_N)]
 | |
|   LEAD_T_IDXS = [0., 2., 4., 6., 8., 10.]
 | |
|   LEAD_T_OFFSETS = [0., 2., 4.]
 | |
|   META_T_IDXS = [2., 4., 6., 8., 10.]
 | |
| 
 | |
|   # model inputs constants
 | |
|   MODEL_FREQ = 20
 | |
|   FEATURE_LEN = 512
 | |
|   HISTORY_BUFFER_LEN = 99
 | |
|   DESIRE_LEN = 8
 | |
|   TRAFFIC_CONVENTION_LEN = 2
 | |
|   LAT_PLANNER_STATE_LEN = 4
 | |
|   LATERAL_CONTROL_PARAMS_LEN = 2
 | |
|   PREV_DESIRED_CURV_LEN = 1
 | |
| 
 | |
|   # model outputs constants
 | |
|   FCW_THRESHOLDS_5MS2 = np.array([.05, .05, .15, .15, .15], dtype=np.float32)
 | |
|   FCW_THRESHOLDS_3MS2 = np.array([.7, .7], dtype=np.float32)
 | |
|   FCW_5MS2_PROBS_WIDTH = 5
 | |
|   FCW_3MS2_PROBS_WIDTH = 2
 | |
| 
 | |
|   DISENGAGE_WIDTH = 5
 | |
|   POSE_WIDTH = 6
 | |
|   WIDE_FROM_DEVICE_WIDTH = 3
 | |
|   SIM_POSE_WIDTH = 6
 | |
|   LEAD_WIDTH = 4
 | |
|   LANE_LINES_WIDTH = 2
 | |
|   ROAD_EDGES_WIDTH = 2
 | |
|   PLAN_WIDTH = 15
 | |
|   DESIRE_PRED_WIDTH = 8
 | |
|   LAT_PLANNER_SOLUTION_WIDTH = 4
 | |
|   DESIRED_CURV_WIDTH = 1
 | |
| 
 | |
|   NUM_LANE_LINES = 4
 | |
|   NUM_ROAD_EDGES = 2
 | |
| 
 | |
|   LEAD_TRAJ_LEN = 6
 | |
|   DESIRE_PRED_LEN = 4
 | |
| 
 | |
|   PLAN_MHP_N = 5
 | |
|   LEAD_MHP_N = 2
 | |
|   PLAN_MHP_SELECTION = 1
 | |
|   LEAD_MHP_SELECTION = 3
 | |
| 
 | |
|   FCW_THRESHOLD_5MS2_HIGH = 0.15
 | |
|   FCW_THRESHOLD_5MS2_LOW = 0.05
 | |
|   FCW_THRESHOLD_3MS2 = 0.7
 | |
| 
 | |
|   CONFIDENCE_BUFFER_LEN = 5
 | |
|   RYG_GREEN = 0.01165
 | |
|   RYG_YELLOW = 0.06157
 | |
| 
 | |
|   POLY_PATH_DEGREE = 4
 | |
| 
 | |
| # model outputs slices
 | |
| class Plan:
 | |
|   POSITION = slice(0, 3)
 | |
|   VELOCITY = slice(3, 6)
 | |
|   ACCELERATION = slice(6, 9)
 | |
|   T_FROM_CURRENT_EULER = slice(9, 12)
 | |
|   ORIENTATION_RATE = slice(12, 15)
 | |
| 
 | |
| class Meta:
 | |
|   ENGAGED = slice(0, 1)
 | |
|   # next 2, 4, 6, 8, 10 seconds
 | |
|   GAS_DISENGAGE = slice(1, 36, 7)
 | |
|   BRAKE_DISENGAGE = slice(2, 36, 7)
 | |
|   STEER_OVERRIDE = slice(3, 36, 7)
 | |
|   HARD_BRAKE_3 = slice(4, 36, 7)
 | |
|   HARD_BRAKE_4 = slice(5, 36, 7)
 | |
|   HARD_BRAKE_5 = slice(6, 36, 7)
 | |
|   GAS_PRESS = slice(7, 36, 7)
 | |
|   # next 0, 2, 4, 6, 8, 10 seconds
 | |
|   LEFT_BLINKER = slice(36, 48, 2)
 | |
|   RIGHT_BLINKER = slice(37, 48, 2)
 | |
| 
 |