Hi Jaime
The fusion filters are generally objects which retain state from one call to the next. In your example code, the first call to FUSE() estimates the orientation in complementary1, but also updates the internal states and state covariances of the FUSE object. The next call to FUSE() will start from those new internal states and state covariances. This allows you to stream data through the filter in smaller chunks but get the same answers as if you had fed the entire datastream at once. If you'd like to get the same answers from one call to the next use the reset method on the filters:
reset(FUSE);
To restore the initial states and covariances. The ahrsfilter and imufilter are System objects for which this streaming behavior is fundamental. The filters are not true System objects but retain the same streaming design philosophy. The ecompass algorithm is a notable exception because it is a function. It does not retain state from call to call, so it's giving you identical answers from one call to the next.
Best Answer