Continuously update offset between TSS2 angle sensors (#21943)
* Continuously update offset between TSS2 angle sensors
* add comment
* less lines
* only when initialized
* init to None
* update ref
old-commit-hash: c15a616ac4
commatwo_master
parent
503fe7421a
commit
2e285bea20
3 changed files with 22 additions and 15 deletions
@ -1,13 +1,18 @@ |
|||||||
class FirstOrderFilter: |
class FirstOrderFilter: |
||||||
# first order filter |
# first order filter |
||||||
def __init__(self, x0, rc, dt): |
def __init__(self, x0, rc, dt, initialized=True): |
||||||
self.x = x0 |
self.x = x0 |
||||||
self.dt = dt |
self.dt = dt |
||||||
self.update_alpha(rc) |
self.update_alpha(rc) |
||||||
|
self.initialized = initialized |
||||||
|
|
||||||
def update_alpha(self, rc): |
def update_alpha(self, rc): |
||||||
self.alpha = self.dt / (rc + self.dt) |
self.alpha = self.dt / (rc + self.dt) |
||||||
|
|
||||||
def update(self, x): |
def update(self, x): |
||||||
self.x = (1. - self.alpha) * self.x + self.alpha * x |
if self.initialized: |
||||||
|
self.x = (1. - self.alpha) * self.x + self.alpha * x |
||||||
|
else: |
||||||
|
self.initialized = True |
||||||
|
self.x = x |
||||||
return self.x |
return self.x |
||||||
|
@ -1 +1 @@ |
|||||||
f3e220d82db802c653777634228ce57576ac7aad |
3e8037d39f40c59a2b9e86539e0952645b2cb3ea |
Loading…
Reference in new issue