-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstate_observer.py
30 lines (24 loc) · 889 Bytes
/
state_observer.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
"""
Returns noisy "state estimate" from dynamics true state
"""
import numpy as np
class StateObserver():
def __init__(self, dynamics, mean = 0, sd = 0):
"""
Init function for state observer
Args:
dynamics (Dynamics): Dynamics object instance
mean (float, optional): Mean for gaussian noise. Defaults to 0.
sd (float, optional): standard deviation for gaussian noise. Defaults to 0.
"""
self.dynamics = dynamics
self.stateDimn = dynamics.stateDimn
self.mean = mean
self.sd = sd
np.random.seed(0)
def get_state(self):
"""
Returns a potentially noisy observation of the system state
"""
# print(self.dynamics.get_state())
return self.dynamics.get_state() + np.random.normal(self.mean, self.sd, (self.stateDimn, 1))