| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -120,11 +120,12 @@ class Laikad: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      self.update_localizer(est_pos, t, corrected_measurements) | 
					 | 
					 | 
					 | 
					      self.update_localizer(est_pos, t, corrected_measurements) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      kf_valid = all(self.kf_valid(t)) | 
					 | 
					 | 
					 | 
					      kf_valid = all(self.kf_valid(t)) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      ecef_pos = self.gnss_kf.x[GStates.ECEF_POS].tolist() | 
					 | 
					 | 
					 | 
					      ecef_pos = self.gnss_kf.x[GStates.ECEF_POS] | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      ecef_vel = self.gnss_kf.x[GStates.ECEF_VELOCITY].tolist() | 
					 | 
					 | 
					 | 
					      ecef_vel = self.gnss_kf.x[GStates.ECEF_VELOCITY] | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      pos_std = np.sqrt(abs(self.gnss_kf.P[GStates.ECEF_POS].diagonal())).tolist() | 
					 | 
					 | 
					 | 
					      p = self.gnss_kf.P.diagonal() | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      vel_std = np.sqrt(abs(self.gnss_kf.P[GStates.ECEF_VELOCITY].diagonal())).tolist() | 
					 | 
					 | 
					 | 
					      pos_std = np.sqrt(p[GStates.ECEF_POS]) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      vel_std = np.sqrt(p[GStates.ECEF_VELOCITY]) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      meas_msgs = [create_measurement_msg(m) for m in corrected_measurements] | 
					 | 
					 | 
					 | 
					      meas_msgs = [create_measurement_msg(m) for m in corrected_measurements] | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      dat = messaging.new_message("gnssMeasurements") | 
					 | 
					 | 
					 | 
					      dat = messaging.new_message("gnssMeasurements") | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -132,8 +133,8 @@ class Laikad: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      dat.gnssMeasurements = { | 
					 | 
					 | 
					 | 
					      dat.gnssMeasurements = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        "gpsWeek": report.gpsWeek, | 
					 | 
					 | 
					 | 
					        "gpsWeek": report.gpsWeek, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        "gpsTimeOfWeek": report.rcvTow, | 
					 | 
					 | 
					 | 
					        "gpsTimeOfWeek": report.rcvTow, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        "positionECEF": measurement_msg(value=ecef_pos, std=pos_std, valid=kf_valid), | 
					 | 
					 | 
					 | 
					        "positionECEF": measurement_msg(value=ecef_pos.tolist(), std=pos_std.tolist(), valid=kf_valid), | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        "velocityECEF": measurement_msg(value=ecef_vel, std=vel_std, valid=kf_valid), | 
					 | 
					 | 
					 | 
					        "velocityECEF": measurement_msg(value=ecef_vel.tolist(), std=vel_std.tolist(), valid=kf_valid), | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        "positionFixECEF": measurement_msg(value=self.last_pos_fix, std=self.last_pos_residual, valid=self.last_pos_fix_t == t), | 
					 | 
					 | 
					 | 
					        "positionFixECEF": measurement_msg(value=self.last_pos_fix, std=self.last_pos_residual, valid=self.last_pos_fix_t == t), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        "ubloxMonoTime": ublox_mono_time, | 
					 | 
					 | 
					 | 
					        "ubloxMonoTime": ublox_mono_time, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        "correctedMeasurements": meas_msgs | 
					 | 
					 | 
					 | 
					        "correctedMeasurements": meas_msgs | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |