Skip to content

Commit 22a2072

Browse files
committed
v3.0
* Documentation
1 parent c2c9173 commit 22a2072

File tree

4 files changed

+14
-2
lines changed

4 files changed

+14
-2
lines changed

README.md

+14-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# FSensor
22
Android Sensor Filter and Fusion
33

4-
<img src="/documentation/images/fsensor.png" width="300">
4+
<img src="/documentation/images/complementary.gif" width="300">
55

66
## Introduction
77
FSensor (FusionSensor) is an Android library that provides linear acceleration and rotation sensors via LowPass, Complementary and Kalman based sensor fusions. The behavior of stock
@@ -12,7 +12,7 @@ filters can be used to smooth sensor data. FSensor is designed to be easy to use
1212
* Provides estimations of device rotation with LowPass, Complimentary and Kalman based sensor fusions
1313
* Provides estimations of linear acceleration with Low-Pass, Complimentary and Kalman based sensor fusions
1414
* Provides device/sensor agnostic averaging filters in the of mean, median and low-pass varieties
15-
*
15+
1616

1717
## Get FSensor
1818

@@ -64,6 +64,7 @@ that you will find with Euclidean based rotation matrices.
6464

6565
### Complimentary Filter
6666

67+
<img src="/documentation/images/complementary.gif" width="300">
6768

6869
A complementary filter is a frequency domain filter. In its strictest sense, the definition of a complementary filter refers to the use of two or more transfer functions, which
6970
are mathematical complements of one another. Thus, if the data from one sensor is operated on by G(s), then the data from the other sensor is operated on by I-G(s), and the sum of
@@ -76,11 +77,22 @@ filter should act on and dt is the sample period (1/frequency) of the sensor.
7677

7778
### Kalman Filter
7879

80+
<img src="/documentation/images/kalman.gif" width="300">
81+
7982
Kalman filtering, also known as linear quadratic estimation (LQE), is an algorithm that uses a series of measurements observed over time, containing noise (random variations)
8083
and other inaccuracies, and produces estimates of unknown variables that tend to be more precise than those based on a single measurement alone. More formally, the Kalman filter
8184
operates recursively on streams of noisy input data to produce a statistically optimal estimate of the underlying system state. Like complimentary filters, Kalman filters
8285
require inputs from the gyroscope, accelerometer, and magnetometer sensors.
8386

87+
### Low-Pass Filter
88+
89+
<img src="/documentation/images/low_pass.gif" width="300">
90+
91+
A low-pass filter can isolate the gravity component of the acceleration sensor. The gravity component can be used to determine the tilt of the device. The tilt can be used to then
92+
determine the rotation of the device. The advantage to a low-pass filter is that it is computationally efficient, requires only the acceleration sensor, and is easy to implement.
93+
A low-pass filter is not capable of determining the heading of the device and is sensitive to orientation changes. A low-pass filter can be effective in scenarios where the device is
94+
held in a fixed orientation and the azimuth is not required.
95+
8496
## Filters
8597

8698
FSensor implements three of the most common smoothing filters: low-pass, mean and median filters. All the filters are user configurable based on the time constant in units of seconds.
1.49 MB
Loading

documentation/images/kalman.gif

1.4 MB
Loading

documentation/images/low_pass.gif

1.73 MB
Loading

0 commit comments

Comments
 (0)