Using filters - MotionTooler/MotionToolsWiki GitHub Wiki

This section explains how to use the filter options provided by the NeuronGenericAnimatorInstance script.

Note: Make sure you followed the tutorials on how to properly import a model into Unity and real-time animations before starting with this tutorial.

Filtering noise

The data generated by the Perception Neuron motion capture suit might contain noise due to the presence of magnetic fields while capturing. This noise can be noticed in Unity while using real-time animations and should be filtered out. In the industry Low-pass filters are commonly used for this sake and two of these filters are also implemented in our software.

Butterworth vs ChebyShev

Butterworth

The first, and probably best-known filter is the Butterworth filter. This filter is used as a low-pass filter and soit filters out all high frequency movements. The high frequency movements are movements that users perceiveas distortion and shaking of the skeleton. The Butterworth filter offers flat response with no ripple effect, which means that the low frequency movement is not distorted by the filter. The trade-off for this is that the filter is not very strong and might not perform well in heavily distorted environments.

Chebyshev

The Chebyshev type 1 filter is also implemented as a low-pass filter and so it filters out high frequency (distorted)movements. As opposed to Butterworth filter, Chebyshev filter does distort low frequency movements by some constant factor (depending on itโ€™s setting of Epsilon). The filter does, however, offer a very high filtering capabilities. A Chebyshev filter will filter out more unwanted movements when compared to a Butterworth filter with the same order setting. This makes the Chebyshev filter well suited for heavily distorted environments.

Selecting a filter

Filter options Filters can be selected from within the NeuronGenericAnimatorInstance inspector. Different filters may be selected for filtering the rotation as well as the translation of the data. For either of them four possible filters are available:

  1. None: I not an actual filter, selecting this option just applies the motion data directly to the data without altering it.
  2. Butterworth: This implements the previous mentioned Butterworth filter. The order, cutoff frequency and sampling frequency can be adjusted.
  3. Chebyshev: This implements the previous mentioned Chebyshev filter. The order, cutoff frequency, sampling frequency and epsilon.
  4. Time-shifting: This filter does not alter the data, but just delays it for some time, specifiable by the order setting.

Warning: Applying a filter other than the 'none' filter delays motion by an amount of frames equal to the order. In combination with VR glasses this delay may influence the user perception of the Virtual world in a negative way, use with caution!