constants.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. HISTORY_BUFFER_LEN = 99
  16. DESIRE_LEN = 8
  17. TRAFFIC_CONVENTION_LEN = 2
  18. NAV_FEATURE_LEN = 256
  19. NAV_INSTRUCTION_LEN = 150
  20. DRIVING_STYLE_LEN = 12
  21. LAT_PLANNER_STATE_LEN = 4
  22. LATERAL_CONTROL_PARAMS_LEN = 2
  23. PREV_DESIRED_CURV_LEN = 1
  24. # model outputs constants
  25. FCW_THRESHOLDS_5MS2 = np.array([.05, .05, .15, .15, .15], dtype=np.float32)
  26. FCW_THRESHOLDS_3MS2 = np.array([.7, .7], dtype=np.float32)
  27. FCW_5MS2_PROBS_WIDTH = 5
  28. FCW_3MS2_PROBS_WIDTH = 2
  29. DISENGAGE_WIDTH = 5
  30. POSE_WIDTH = 6
  31. WIDE_FROM_DEVICE_WIDTH = 3
  32. SIM_POSE_WIDTH = 6
  33. LEAD_WIDTH = 4
  34. LANE_LINES_WIDTH = 2
  35. ROAD_EDGES_WIDTH = 2
  36. PLAN_WIDTH = 15
  37. DESIRE_PRED_WIDTH = 8
  38. LAT_PLANNER_SOLUTION_WIDTH = 4
  39. DESIRED_CURV_WIDTH = 1
  40. NUM_LANE_LINES = 4
  41. NUM_ROAD_EDGES = 2
  42. LEAD_TRAJ_LEN = 6
  43. DESIRE_PRED_LEN = 4
  44. PLAN_MHP_N = 5
  45. LEAD_MHP_N = 2
  46. PLAN_MHP_SELECTION = 1
  47. LEAD_MHP_SELECTION = 3
  48. FCW_THRESHOLD_5MS2_HIGH = 0.15
  49. FCW_THRESHOLD_5MS2_LOW = 0.05
  50. FCW_THRESHOLD_3MS2 = 0.7
  51. CONFIDENCE_BUFFER_LEN = 5
  52. RYG_GREEN = 0.01165
  53. RYG_YELLOW = 0.06157
  54. # model outputs slices
  55. class Plan:
  56. POSITION = slice(0, 3)
  57. VELOCITY = slice(3, 6)
  58. ACCELERATION = slice(6, 9)
  59. T_FROM_CURRENT_EULER = slice(9, 12)
  60. ORIENTATION_RATE = slice(12, 15)
  61. class Meta:
  62. ENGAGED = slice(0, 1)
  63. # next 2, 4, 6, 8, 10 seconds
  64. GAS_DISENGAGE = slice(1, 36, 7)
  65. BRAKE_DISENGAGE = slice(2, 36, 7)
  66. STEER_OVERRIDE = slice(3, 36, 7)
  67. HARD_BRAKE_3 = slice(4, 36, 7)
  68. HARD_BRAKE_4 = slice(5, 36, 7)
  69. HARD_BRAKE_5 = slice(6, 36, 7)
  70. GAS_PRESS = slice(7, 36, 7)
  71. # next 0, 2, 4, 6, 8, 10 seconds
  72. LEFT_BLINKER = slice(36, 48, 2)
  73. RIGHT_BLINKER = slice(37, 48, 2)