Metamotion r IMU calibration
I have the Metamotion r and i am fusioning with IMUPlus mode.
What i have noticed is that the first time i connected to the board it saved the initial position of the board
and when i close and open the app and connect back the initial reference will be from that position.
When i reset the board from the app and i make the first connection the board gets the new initial position where it was when
the first connection happen after the reset.
My question is there a way to force this functionality every time i connect to the board? Without having to reset the board.
It is something like calibration i can achieve with this.
Thank you,
Jim
This discussion has been closed.
Comments
public void sample(boolean isChecked) throws Exception {
if (isChecked) {
isStopped = false;
// stream quaternion values from the board
fusionModule.routeData().fromQuaternions().stream("quaternion").commit()
.onComplete(new AsyncOperation.CompletionHandler<RouteManager>() {
@Override
public void success(RouteManager result) {
result.subscribe("quaternion", new RouteManager.MessageHandler() {
@Override
public void process(Message msg) {
//Log.i("example", msg.getData(SensorFusion.Quaternion.class).toString());
SensorFusion.Quaternion quaternion = msg.getData(SensorFusion.Quaternion.class);
for (IFusionSubscriber subscriber : subscribers) {
try {
subscriber.notified(quaternion);
} catch (Exception ex) {
logger.error("An error occurred", ex);
}
}
}
});
fusionModule.start(SensorFusion.DataOutput.QUATERNION);
}
});
} else {
try {
fusionModule.stop();
} catch(Exception ex) {
ex.printStackTrace();
}
isStopped = true;
}
}
public static FusionWrapper getInstance(MetaWearBoard.Module board) throws Exception {if (null == board) {
logger.error("An error occured", "Null passed for board in FusionWrapper");
throw new Exception("Null passed for board");
}
fusionModule = (SensorFusion) board;
fusionModule.configure()
.setMode(SensorFusion.Mode.IMU_PLUS)
.setAccRange(SensorFusion.AccRange.AR_16G)
.commit();
if (null == instance) {
instance = new FusionWrapper();
}
return instance;
}
If i connect the board in my pc with a cable and then disconnect it how much time the board says open without connecting to it?