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.
		
		
		
		
		
			
		
			
				
					
					
						
							74 lines
						
					
					
						
							2.6 KiB
						
					
					
				
			
		
		
	
	
							74 lines
						
					
					
						
							2.6 KiB
						
					
					
				| import numpy as np
 | |
| 
 | |
| class Conversions:
 | |
|   MPH_TO_MS = 1.609/3.6
 | |
|   MS_TO_MPH = 3.6/1.609
 | |
|   KPH_TO_MS = 1./3.6
 | |
|   MS_TO_KPH = 3.6
 | |
|   MPH_TO_KPH = 1.609
 | |
|   KPH_TO_MPH = 1./1.609
 | |
|   KNOTS_TO_MS = 1/1.9438
 | |
|   MS_TO_KNOTS = 1.9438
 | |
| 
 | |
|   # Car tecode decimal minutes into decimal degrees, can work with numpy arrays as input
 | |
|   @staticmethod
 | |
|   def dm2d(dm):
 | |
|     degs = np.round(dm/100.)
 | |
|     mins = dm - degs*100.
 | |
|     return degs + mins/60.
 | |
| 
 | |
| 
 | |
| # Car button codes
 | |
| class CruiseButtons:
 | |
|   RES_ACCEL   = 4
 | |
|   DECEL_SET   = 3
 | |
|   CANCEL      = 2
 | |
|   MAIN        = 1
 | |
| 
 | |
| 
 | |
| # Image params for color cam on acura, calibrated on pre las vegas drive (2016-05-21)
 | |
| class ImageParams:
 | |
|   def __init__(self):
 | |
|     self.SX_R  = 160  # top left corner pixel shift of the visual region considered by the model
 | |
|     self.SY_R  = 180  # top left corner pixel shift of the visual region considered by the model
 | |
|     self.VPX_R = 319  # vanishing point reference, as calibrated in Vegas drive 
 | |
|     self.VPY_R = 201  # vanishing point reference, as calibrated in Vegas drive 
 | |
|     self.X     = 320  # pixel length of image for model
 | |
|     self.Y     = 160  # pixel length of image for model
 | |
|     self.SX  = self.SX_R   # current visual region with shift
 | |
|     self.SY  = self.SY_R   # current visual region with shift
 | |
|     self.VPX = self.VPX_R  # current vanishing point with shift
 | |
|     self.VPY = self.VPY_R  # current vanishing point with shift
 | |
|   def shift(self, shift):
 | |
|     def to_int(fl):
 | |
|       return int(round(fl))
 | |
|     # shift comes from calibration and says how much to shift the viual region 
 | |
|     self.SX  = self.SX_R + to_int(shift[0])   # current visual region with shift
 | |
|     self.SY  = self.SY_R + to_int(shift[1])   # current visual region with shift
 | |
|     self.VPX = self.VPX_R + to_int(shift[0])  # current vanishing point with shift
 | |
|     self.VPY = self.VPY_R + to_int(shift[1])  # current vanishing point with shift
 | |
| 
 | |
| class UIParams:
 | |
|   lidar_x, lidar_y, lidar_zoom = 384, 960, 8
 | |
|   lidar_car_x, lidar_car_y = lidar_x/2., lidar_y/1.1
 | |
|   car_hwidth = 1.7272/2 * lidar_zoom
 | |
|   car_front = 2.6924 * lidar_zoom
 | |
|   car_back  = 1.8796 * lidar_zoom
 | |
|   car_color = 110
 | |
| 
 | |
| class VehicleParams:
 | |
|   def __init__(self, civic, brake_only=False, torque_mod=False):
 | |
|     if civic:
 | |
|       self.wheelbase = 2.67
 | |
|       self.steer_ratio = 15.3
 | |
|       self.slip_factor = 0.0014
 | |
|       self.civic = True
 | |
|     else:
 | |
|       self.wheelbase = 2.67      # from http://www.edmunds.com/acura/ilx/2016/sedan/features-specs/
 | |
|       self.steer_ratio = 15.3    # from http://www.edmunds.com/acura/ilx/2016/road-test-specs/
 | |
|       self.slip_factor = 0.0014
 | |
|       self.civic = False
 | |
|     self.brake_only = brake_only
 | |
|     self.torque_mod = torque_mod
 | |
|     self.ui_speed_fudge = 1.01 if self.civic else 1.025
 | |
| 
 | |
| 
 |