Skip to content

Commit e1e41be

Browse files
committed
common: add BounceFilter
1 parent ad7f3d2 commit e1e41be

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

common/filter_simple.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,20 @@ def update(self, x):
1515
self.initialized = True
1616
self.x = x
1717
return self.x
18+
19+
20+
class BounceFilter(FirstOrderFilter):
21+
def __init__(self, x0, rc, dt, initialized=True, bounce=2):
22+
self.velocity = FirstOrderFilter(0.0, 0.15, dt)
23+
self.bounce = bounce
24+
super().__init__(x0, rc, dt, initialized)
25+
26+
def update(self, x):
27+
super().update(x)
28+
scale = self.dt / (1.0 / 60.0) # tuned at 60 fps
29+
self.velocity.x += (x - self.x) * self.bounce * scale * self.dt
30+
self.velocity.update(0.0)
31+
if abs(self.velocity.x) < 1e-5:
32+
self.velocity.x = 0.0
33+
self.x += self.velocity.x
34+
return self.x

0 commit comments

Comments
 (0)