Hi All,
I just got MotionFitSDK 5.1 working on an MSP430 device. I am running the cube python demo client script.
For the first few seconds after I start the programme, the cube on the screen is nicely mirroring the movements I am making with the circuit board. However after a few seconds, it just gets out of sync and becomes more less chaotic. The cube still kind of mirrors the movements but it becomes jerky jumping between different positions etc. I need to do more testing but it seems the jerkiness is triggered by either elapsed time of few seconds and/or by rapid change of orientation of the circuit board.
I am using the original code in the SDK, which enables the 9x fusion.
I noticed the 9x fusion library has a number of functions which aren't used in the code. I tried to experiment with explicitly calling the init function and start fusion functions, but none of these seems to make any difference.
Any advice would be much appreciated!!!!
thanks
Miso
- Log in to post comments
phpbb Topic ID
15456
Re: Re: 9 axis fusion
Verify that you are using the Python application within the 5.1 download, along with the 5.1 firmware on the device, there was an update to the protocol which may cause this sort of error when mis-matching.
Re: Re: 9 axis fusion
I am using the correct version of the python script, so I don't think the problem is here.
After some more testing, I can see the jerky movement is correlated to compass calibration.
1) After the board is reset, the compass data at the initial sensor orientation reads: 30,-10, 28. Whenever I return the sensor back to the initial orientation, I get the same compass reading. This is good!
2) After 10-15 seconds, if I continue moving the sensor, the cube on the screen goes jerky and at the same time, I no longer get the same compass reading at the initial orientation. The new reading will be: -5, -25, -36. I have been trying to move the sensor in the figure 8 slowly after startup, it makes no difference.
3) If I comment out a call to inv_enable_vector_compas_cal(), the issue as per point 2 doesn't happen. However I see the cube drifting. Presumable because compass isn't calibrated.
4) If I only comment out inv_init_9x_fusion() and inv_enable_9x_sensor_fusion(). The compass reading still changes as per point 2, however the cube doesn't go jerky. But I can see a drift. Presumably this is because I am now running a 6x fusion which doesn't use compass data
So I am stuck. I want to eliminate the drift by using 9x fusion, however it seems the compass calibration is not working.
I am using the standard code from MotionFit_With_eMPL511_Release. I am using MSP430F5438 and the standard Invensense eval board which contains (MPU6050 and AK8975). I am displaying the compass data from eMPL-client.py, by pressing 'c' key. I thought maybe the self-test will correct the biases, when pressing 't' I get a "Pass", however it doesn't fix the jerkiness.
Please help.
thanks
Miso
Re: Re: 9 axis fusion
Let's define "jerky." When you use the 9 axis sensor fusion, every ~10 seconds the compass bias calibration algorithm may update the orientation, causing a bit of a jump in absolute heading reflecting the bias change. This corrects for changes in the environment, moving the device indoors / outdoors, etc. Also, you may see a jitter in the compass data. This would be seen as a small (0-2 degree) vibration around 10 hz in the orientation data. Is this what you are experiencing?