| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -10,33 +10,19 @@ const int LON_MPC_N = 32; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					const float MIN_DRAW_DISTANCE = 10.0; | 
					 | 
					 | 
					 | 
					const float MIN_DRAW_DISTANCE = 10.0; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					const float MAX_DRAW_DISTANCE = 100.0; | 
					 | 
					 | 
					 | 
					const float MAX_DRAW_DISTANCE = 100.0; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					template<typename T_SRC, typename  T_DST, size_t size> | 
					 | 
					 | 
					 | 
					template <typename T, size_t size> | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					const std::array<T_DST, size> convert_array_to_type(const std::array<T_SRC, size> &src) { | 
					 | 
					 | 
					 | 
					constexpr std::array<T, size> build_idxs(float max_val) { | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  std::array<T_DST, size> dst = {}; | 
					 | 
					 | 
					 | 
					  std::array<T, size> result{}; | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  for (int i=0; i<size; i++) { | 
					 | 
					 | 
					 | 
					  for (int i = 0; i < size; ++i) { | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    dst[i] = src[i]; | 
					 | 
					 | 
					 | 
					    result[i] = max_val * ((i / (double)(size - 1)) * (i / (double)(size - 1))); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } | 
					 | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  return dst; | 
					 | 
					 | 
					 | 
					  return result; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					const std::array<double, TRAJECTORY_SIZE> T_IDXS = { | 
					 | 
					 | 
					 | 
					constexpr auto T_IDXS = build_idxs<double, TRAJECTORY_SIZE>(10.0); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        0.        ,  0.00976562,  0.0390625 ,  0.08789062,  0.15625   , | 
					 | 
					 | 
					 | 
					constexpr auto T_IDXS_FLOAT = build_idxs<float, TRAJECTORY_SIZE>(10.0); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        0.24414062,  0.3515625 ,  0.47851562,  0.625     ,  0.79101562, | 
					 | 
					 | 
					 | 
					constexpr auto X_IDXS = build_idxs<double, TRAJECTORY_SIZE>(192.0); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        0.9765625 ,  1.18164062,  1.40625   ,  1.65039062,  1.9140625 , | 
					 | 
					 | 
					 | 
					constexpr auto X_IDXS_FLOAT = build_idxs<float, TRAJECTORY_SIZE>(192.0); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        2.19726562,  2.5       ,  2.82226562,  3.1640625 ,  3.52539062, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        3.90625   ,  4.30664062,  4.7265625 ,  5.16601562,  5.625     , | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        6.10351562,  6.6015625 ,  7.11914062,  7.65625   ,  8.21289062, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        8.7890625 ,  9.38476562, 10.}; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					const auto T_IDXS_FLOAT = convert_array_to_type<double, float, TRAJECTORY_SIZE>(T_IDXS); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					const std::array<double, TRAJECTORY_SIZE> X_IDXS = { | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					         0.    ,   0.1875,   0.75  ,   1.6875,   3.    ,   4.6875, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					         6.75  ,   9.1875,  12.    ,  15.1875,  18.75  ,  22.6875, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        27.    ,  31.6875,  36.75  ,  42.1875,  48.    ,  54.1875, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        60.75  ,  67.6875,  75.    ,  82.6875,  90.75  ,  99.1875, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					       108.    , 117.1875, 126.75  , 136.6875, 147.    , 157.6875, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					       168.75  , 180.1875, 192.}; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					const auto X_IDXS_FLOAT = convert_array_to_type<double, float, TRAJECTORY_SIZE>(X_IDXS); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					const int TICI_CAM_WIDTH = 1928; | 
					 | 
					 | 
					 | 
					const int TICI_CAM_WIDTH = 1928; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |