class_docstr: Class for a general Kalman filter working on Lie groups.
  
  Given an adapted model, it provides the tools to carry out non-linear state
  estimation with an error modeled on the Lie algebra. The model must provide
  the functions to propagate and update a state, the observation model, and
  the computation of the Jacobians.
  
  Parameter
  ---------
  model : {class, instance}
      Object representing an observed dynamical system.
docstr: Update the current estimate given an observation.
  
  The state is updated by the matrix-vector product of the Kalman gain K
  and the innovation. The possibly non-linear update function is provided
  by the model.
  Given the observation Jacobian H and covariance N, the current
  covariance P is updated as (I - KH)P.
  
  Parameters
  ----------
  observation : array-like, shape=[dim_obs]
      Obtained measurement.
docstr_tok: ["Update","the","current","estimate","given","an","observation",".","The","state","is","updated","by","the","matrix-vector","product","of","the","Kalman","gain","K","and","the","innovation",".","The","possibly","non-linear","update","function","is","provided","by","the","model",".","Given","the","observation","Jacobian","H","and","covariance","N",",","the","current","covariance","P","is","updated","as","(","I","-","KH",")","P.","Parameters","--","--","--","--","--","observation",":","array-like",",","shape=","[","dim_obs","]","Obtained","measurement","."]
code: def update(self, observation):
      r"""Update the current estimate given an observation.
  
      The state is updated by the matrix-vector product of the Kalman gain K
      and the innovation. The possibly non-linear update function is provided
      by the model.
      Given the observation Jacobian H and covariance N, the current
      covariance P is updated as (I - KH)P.
  
      Parameters
      ----------
      observation : array-like, shape=[dim_obs]
          Obtained measurement.
      """
      innovation = self.model.innovation(self.state, observation)
      gain = self.compute_gain(observation)
      obs_jac = self.model.observation_jacobian(self.state, observation)
      cov_factor = gs.eye(self.model.group.dim) - Matrices.mul(
          gain, obs_jac
      )
      self.covariance = Matrices.mul(cov_factor, self.covariance)
      state_upd = gs.matvec(gain, innovation)
      self.state = self.model.group.exp(state_upd, self.state)
  
imports: import geomstats.backend
  from geomstats.geometry.euclidean import Euclidean
  from geomstats.geometry.matrices import Matrices
  from geomstats.geometry.special_euclidean import SpecialEuclidean
label_desc: Use image node_id 5 for calling the KalmanFilter obj's underlying member method code with example usage: obj.update(observation) without return types