constants.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import numpy as np
  2. def index_function(idx, max_val=192, max_idx=32):
  3. return (max_val) * ((idx/max_idx)**2)
  4. class ModelConstants:
  5. # time and distance indices
  6. IDX_N = 33
  7. T_IDXS = [index_function(idx, max_val=10.0) for idx in range(IDX_N)]
  8. X_IDXS = [index_function(idx, max_val=192.0) for idx in range(IDX_N)]
  9. LEAD_T_IDXS = [0., 2., 4., 6., 8., 10.]
  10. LEAD_T_OFFSETS = [0., 2., 4.]
  11. META_T_IDXS = [2., 4., 6., 8., 10.]
  12. # model inputs constants
  13. MODEL_FREQ = 20
  14. FEATURE_LEN = 512
  15. FULL_HISTORY_BUFFER_LEN = 99
  16. HISTORY_BUFFER_LEN = 24
  17. DESIRE_LEN = 8
  18. TRAFFIC_CONVENTION_LEN = 2
  19. LAT_PLANNER_STATE_LEN = 4
  20. LATERAL_CONTROL_PARAMS_LEN = 2
  21. PREV_DESIRED_CURV_LEN = 1
  22. # model outputs constants
  23. FCW_THRESHOLDS_5MS2 = np.array([.05, .05, .15, .15, .15], dtype=np.float32)
  24. FCW_THRESHOLDS_3MS2 = np.array([.7, .7], dtype=np.float32)
  25. FCW_5MS2_PROBS_WIDTH = 5
  26. FCW_3MS2_PROBS_WIDTH = 2
  27. DISENGAGE_WIDTH = 5
  28. POSE_WIDTH = 6
  29. WIDE_FROM_DEVICE_WIDTH = 3
  30. SIM_POSE_WIDTH = 6
  31. LEAD_WIDTH = 4
  32. LANE_LINES_WIDTH = 2
  33. ROAD_EDGES_WIDTH = 2
  34. PLAN_WIDTH = 15
  35. DESIRE_PRED_WIDTH = 8
  36. LAT_PLANNER_SOLUTION_WIDTH = 4
  37. DESIRED_CURV_WIDTH = 1
  38. NUM_LANE_LINES = 4
  39. NUM_ROAD_EDGES = 2
  40. LEAD_TRAJ_LEN = 6
  41. DESIRE_PRED_LEN = 4
  42. PLAN_MHP_N = 5
  43. LEAD_MHP_N = 2
  44. PLAN_MHP_SELECTION = 1
  45. LEAD_MHP_SELECTION = 3
  46. FCW_THRESHOLD_5MS2_HIGH = 0.15
  47. FCW_THRESHOLD_5MS2_LOW = 0.05
  48. FCW_THRESHOLD_3MS2 = 0.7
  49. CONFIDENCE_BUFFER_LEN = 5
  50. RYG_GREEN = 0.01165
  51. RYG_YELLOW = 0.06157
  52. POLY_PATH_DEGREE = 4
  53. # model outputs slices
  54. class Plan:
  55. POSITION = slice(0, 3)
  56. VELOCITY = slice(3, 6)
  57. ACCELERATION = slice(6, 9)
  58. T_FROM_CURRENT_EULER = slice(9, 12)
  59. ORIENTATION_RATE = slice(12, 15)
  60. class Meta:
  61. ENGAGED = slice(0, 1)
  62. # next 2, 4, 6, 8, 10 seconds
  63. GAS_DISENGAGE = slice(1, 31, 6)
  64. BRAKE_DISENGAGE = slice(2, 31, 6)
  65. STEER_OVERRIDE = slice(3, 31, 6)
  66. HARD_BRAKE_3 = slice(4, 31, 6)
  67. HARD_BRAKE_4 = slice(5, 31, 6)
  68. HARD_BRAKE_5 = slice(6, 31, 6)
  69. # next 0, 2, 4, 6, 8, 10 seconds
  70. GAS_PRESS = slice(31, 55, 4)
  71. BRAKE_PRESS = slice(32, 55, 4)
  72. LEFT_BLINKER = slice(33, 55, 4)
  73. RIGHT_BLINKER = slice(34, 55, 4)