@ -44,8 +44,8 @@ class States(): 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					class  LiveKalman ( ) :  
					 
					 
					 
					class  LiveKalman ( ) :  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  name  =  ' live '   
					 
					 
					 
					  name  =  ' live '   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  initial_x  =  np . array ( [ - 2.7e6 ,  4.2e6 ,  3.8 e6,   
					 
					 
					 
					  initial_x  =  np . array ( [ 3.88e6 ,  - 3.37e6 ,  3.76 e6,   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					                        1 ,  0 ,  0 ,  0 ,   
					 
					 
					 
					                        0.42254641 ,  - 0.31238054 ,  - 0.83602975 ,  - 0.15788347 ,   # NED [0,0,0] -> ECEF Quat   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					                        0 ,  0 ,  0 ,   
					 
					 
					 
					                        0 ,  0 ,  0 ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                        0 ,  0 ,  0 ,   
					 
					 
					 
					                        0 ,  0 ,  0 ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                        0 ,  0 ,  0 ,   
					 
					 
					 
					                        0 ,  0 ,  0 ,   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -54,8 +54,8 @@ class LiveKalman(): 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                        0 ,  0 ,  0 ] )   
					 
					 
					 
					                        0 ,  0 ,  0 ] )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # state covariance   
					 
					 
					 
					  # state covariance   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  initial_P_diag  =  np . array ( [ 1e16 ,  1e16 ,  1e16 ,   
					 
					 
					 
					  initial_P_diag  =  np . array ( [ 10 * * 2 ,  10 * * 2 ,  10 * * 2 ,   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					                             10 * * 2 ,  10 * * 2 ,  10 * * 2 ,   
					 
					 
					 
					                             0.01 * * 2 ,  0.01 * * 2 ,  0.01 * * 2 ,   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					                             10 * * 2 ,  10 * * 2 ,  10 * * 2 ,   
					 
					 
					 
					                             10 * * 2 ,  10 * * 2 ,  10 * * 2 ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                             1 * * 2 ,  1 * * 2 ,  1 * * 2 ,   
					 
					 
					 
					                             1 * * 2 ,  1 * * 2 ,  1 * * 2 ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                             1 * * 2 ,  1 * * 2 ,  1 * * 2 ,   
					 
					 
					 
					                             1 * * 2 ,  1 * * 2 ,  1 * * 2 ,   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -98,7 +98,6 @@ class LiveKalman(): 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    omega  =  state [ States . ANGULAR_VELOCITY ,  : ]   
					 
					 
					 
					    omega  =  state [ States . ANGULAR_VELOCITY ,  : ]   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    vroll ,  vpitch ,  vyaw  =  omega   
					 
					 
					 
					    vroll ,  vpitch ,  vyaw  =  omega   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    roll_bias ,  pitch_bias ,  yaw_bias  =  state [ States . GYRO_BIAS ,  : ]   
					 
					 
					 
					    roll_bias ,  pitch_bias ,  yaw_bias  =  state [ States . GYRO_BIAS ,  : ]   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    odo_scale  =  state [ States . ODO_SCALE ,  : ] [ 0 ,  : ]   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    acceleration  =  state [ States . ACCELERATION ,  : ]   
					 
					 
					 
					    acceleration  =  state [ States . ACCELERATION ,  : ]   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    imu_angles  =  state [ States . IMU_OFFSET ,  : ]   
					 
					 
					 
					    imu_angles  =  state [ States . IMU_OFFSET ,  : ]   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -176,10 +175,11 @@ class LiveKalman(): 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    #   
					 
					 
					 
					    #   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    # Observation functions   
					 
					 
					 
					    # Observation functions   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    #   
					 
					 
					 
					    #   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    #imu_rot = euler_rotate(*imu_angles)   
					 
					 
					 
					    # imu_rot = euler_rotate(*imu_angles)   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    h_gyro_sym  =  sp . Matrix ( [ vroll  +  roll_bias ,   
					 
					 
					 
					    h_gyro_sym  =  sp . Matrix ( [   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					                                      vpitch  +  pitch_bias ,   
					 
					 
					 
					      vroll  +  roll_bias ,   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					                                      vyaw  +  yaw_bias ] )   
					 
					 
					 
					      vpitch  +  pitch_bias ,   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					      vyaw  +  yaw_bias ] )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    pos  =  sp . Matrix ( [ x ,  y ,  z ] )   
					 
					 
					 
					    pos  =  sp . Matrix ( [ x ,  y ,  z ] )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    gravity  =  quat_rot . T  *  ( ( EARTH_GM  /  ( ( x * * 2  +  y * * 2  +  z * * 2 ) * * ( 3.0  /  2.0 ) ) )  *  pos )   
					 
					 
					 
					    gravity  =  quat_rot . T  *  ( ( EARTH_GM  /  ( ( x * * 2  +  y * * 2  +  z * * 2 ) * * ( 3.0  /  2.0 ) ) )  *  pos )   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -187,7 +187,7 @@ class LiveKalman(): 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    h_phone_rot_sym  =  sp . Matrix ( [ vroll ,  vpitch ,  vyaw ] )   
					 
					 
					 
					    h_phone_rot_sym  =  sp . Matrix ( [ vroll ,  vpitch ,  vyaw ] )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    speed  =  sp . sqrt ( vx * * 2  +  vy * * 2  +  vz * * 2  +  1e-6 )   
					 
					 
					 
					    speed  =  sp . sqrt ( vx * * 2  +  vy * * 2  +  vz * * 2  +  1e-6 )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    h_speed_sym  =  sp . Matrix ( [ speed  *  odo_scale  ] )   
					 
					 
					 
					    h_speed_sym  =  sp . Matrix ( [ speed ] )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    h_pos_sym  =  sp . Matrix ( [ x ,  y ,  z ] )   
					 
					 
					 
					    h_pos_sym  =  sp . Matrix ( [ x ,  y ,  z ] )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    h_vel_sym  =  sp . Matrix ( [ vx ,  vy ,  vz ] )   
					 
					 
					 
					    h_vel_sym  =  sp . Matrix ( [ vx ,  vy ,  vz ] )