예제 #1
0
 def setUp(self):
     self.KF = CholeskyKalmanFilter
     self.data = load_robot()
예제 #2
0
import numpy as np
import matplotlib.pyplot as pk
from pykalman.datasets import load_robot
from pykalman import KalmanFilter

# Initialize the Kalman Filter
data = load_robot()
kf = KalmanFilter(
    data.transition_matrix,
    data.observation_matrix,
    data.initial_transition_covariance,
    data.initial_observation_covariance,
    data.transition_offsets,
    data.observation_offset,
    data.initial_state_mean,
    data.initial_state_covariance,
    random_state=0
)

# Estimate mean and covariance of hidden state distribution iteratively.  This
# is equivalent to
#
#   >>> (filter_state_means, filtered_state_covariance) = kf.filter(data)
n_timesteps = data.observations.shape[0]
n_dim_state = data.transition_matrix.shape[0]
filtered_state_means = np.zeros((n_timesteps, n_dim_state))
filtered_state_covariances = np.zeros((n_timesteps, n_dim_state, n_dim_state))
for t in range(n_timesteps - 1):
    if t == 0:
        filtered_state_means[t] = data.initial_state_mean
        filtered_state_covariances[t] = data.initial_state_covariance
예제 #3
0
import inspect

import numpy as np
from numpy import ma
from numpy.testing import assert_array_almost_equal

from nose.tools import assert_true

from pykalman import AdditiveUnscentedKalmanFilter, UnscentedKalmanFilter
from pykalman.datasets import load_robot

data = load_robot()


def build_unscented_filter(cls):
    '''Instantiate the Unscented Kalman Filter'''
    # build transition functions
    A = np.array([[1, 1], [0, 1]])
    C = np.array([[0.5, -0.3]])
    if cls == UnscentedKalmanFilter:
        f = lambda x, y: A.dot(x) + y
        g = lambda x, y: C.dot(x) + y
    elif cls == AdditiveUnscentedKalmanFilter:
        f = lambda x: A.dot(x)
        g = lambda x: C.dot(x)
    else:
        raise ValueError("How do I make transition functions for {0}?".format(
            cls, ))

    x = np.array([1, 1])
    P = np.array([[1, 0.1], [0.1, 1]])
예제 #4
0
 def setUp(self):
     self.KF = BiermanKalmanFilter
     self.data = load_robot()
 def setUp(self):
     self.KF = BiermanKalmanFilter
     self.data = load_robot()