openpilot is an open source driver assistance system. openpilot performs the functions of Automated Lane Centering and Adaptive Cruise Control for over 200 supported car makes and models. 
				 
			
		 
		
		
		
		
		
		
			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. 
		
		
		
	
	
		
		
			
	
	
		
			
				
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  os 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								from  openpilot . system . hardware  import  TICI 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								from  openpilot . selfdrive . modeld . runners . runmodel_pyx  import  RunModel ,  Runtime 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								assert  Runtime 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								USE_THNEED  =  int ( os . getenv ( ' USE_THNEED ' ,  str ( int ( TICI ) ) ) ) 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								USE_SNPE  =  int ( os . getenv ( ' USE_SNPE ' ,  str ( int ( TICI ) ) ) ) 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  ModelRunner ( RunModel ) : 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  THNEED  =  ' THNEED ' 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  SNPE  =  ' SNPE ' 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ONNX  =  ' ONNX ' 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  __new__ ( cls ,  paths ,  * args ,  * * kwargs ) : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ModelRunner . THNEED  in  paths  and  USE_THNEED : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      from  openpilot . selfdrive . modeld . runners . thneedmodel_pyx  import  ThneedModel  as  Runner 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      runner_type  =  ModelRunner . THNEED 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    elif  ModelRunner . SNPE  in  paths  and  USE_SNPE : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      from  openpilot . selfdrive . modeld . runners . snpemodel_pyx  import  SNPEModel  as  Runner 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      runner_type  =  ModelRunner . SNPE 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    elif  ModelRunner . ONNX  in  paths : 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								      from  openpilot . selfdrive . modeld . runners . onnxmodel  import  ONNXModel  as  Runner 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								      runner_type  =  ModelRunner . ONNX 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      raise  Exception ( " Couldn ' t select a model runner, make sure to pass at least one valid model path " ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  Runner ( str ( paths [ runner_type ] ) ,  * args ,  * * kwargs )