googlevr / cardboard

Open source Cardboard SDK and samples
Other
1.48k stars 252 forks source link

How can I disable to Kalman filter? #68

Open fakeeyes opened 4 years ago

fakeeyes commented 4 years ago

I think Cardboard VR has much motion sickness problem because of Kalman filter. So I want disable it and applying new way. Anybody has answer for that?

jballoffet commented 4 years ago

The sensors fusion is performed by the SensorFusionEkf class. You can find details about its implementation here.

xhniu commented 2 years ago

Hi, I have some problems with the sensor fusion function; How is this formula derived? Can you provide some references? Thank you very much.

void SensorFusionEkf::ComputeMeasurementJacobian() { for (int dof = 0; dof < 3; dof++) { Vector3 delta = Vector3::Zero(); delta[dof] = kFiniteDifferencingEpsilon;

const Rotation epsilon_rotation = RotationFromVector(delta);
const Vector3 delta_rotation = ComputeInnovation(
    epsilon_rotation * current_state_.sensor_from_start_rotation);

const Vector3 col =
    (innovation_ - delta_rotation) / kFiniteDifferencingEpsilon;
accelerometer_measurement_jacobian_(0, dof) = col[0];
accelerometer_measurement_jacobian_(1, dof) = col[1];
accelerometer_measurement_jacobian_(2, dof) = col[2];

} } @jballoffet