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