Is there a way to calibrate accelerometer on C-boards?
Hi,
I have two identical C-boards programmed to calculate and log average RMS every 10 minutes on ZTE Android phone that Eric helped me to set up.
I've noticed that the boards are showing different averages. To test how different they are I've placed them both next to each other on the table with brand new batteries installed for about 8 hours. After I retrieved logs the numbers fluctuated from 571.777- 574.402 on the first and 519.714 -522.156 on the seconf. Also the first one was missing one data point. It is almost 10% difference. Hence the question: is it possible to calibrate boards so they show same range of numbers?
Thank you,
Michael
This discussion has been closed.
Comments
the rate is 12.5.
here is my code:
accModule.setOutputDataRate(12.5f);accModule.setAxisSamplingRange(2); Log.i("tutorial", "programmed"); final float tot=0; mwBoard.removeRoutes();
accModule.routeData()
.fromAxes()
.process(new Rms())
.process("accum_proc", new Accumulator((byte) 8))
.process(new Time(Time.OutputMode.ABSOLUTE, TIMER)) // 600000-10 min debug 5000
.process(new Maths(Maths.Operation.DIVIDE, DIVIDER)) //7500 - 30*12.5=375 debug 62.5
.monitor(new DataSignal.ActivityHandler() {
@Override
public void onSignalActive(Map<String, DataProcessor> processors,
DataSignal.DataToken token) {
processors.get("accum_proc").setState(new Accumulator.State(0));
}
})
.log("acc_stream")
.commit()
Our testers are wearing both sensors now, when I get them back I will post raw numbers.
Could it be related to the board orientation? They weren't flat on the table.
Also do you think I should use High Pass Filter to get a better accuracy by removing gravity?
Thank you Eric, I will try this code and the scheduling piece next week when I get boards back.
Even with these issues we are getting great results supporting our idea and planning to buy few more boards to expand our testing base. Do you know if "Meta Health" will be more accurate and appropriate for our case? Will I have to rewrite my Android app for it? If we decide to buy R-boards instead is there an wristband enclosure? It looks big and power hungry.
Also we discussed this in the different thread but I am still losing log entries, very random and happens on both boards. Hopefully the next firmware update will solve this.
Thank you!
Michael
Thank you VERY much,
Hi Eric,
Thank you for all your help. Here is an example how xyz values look like when I flipped the board:
http://imgur.com/a/UtJIY
I am trying to identify the "energy" of the movement. When a sensor turns I don't want to see 20% spike. I thought RMS is taking care of it. When you said I should use offset from the base numbers did you mean 0 and 0.7 or deltas between values?
Thank again,
Michael
Since you are accelerating the board to turn it, the RMS values during the rotation will change.
Thank you Eric for the quick response.
"you should treat the at rest RMS values as a reference point not as an absolute value" - how do I exactly do that if I want to compare two boxers for example. Horizontal punches will be 20% different from vertical ones for same force. The numbers also will change when they flip sensors on their arms.
I was following your blogs http://projects.mbientlab.com/data-processing-with-metawear/ , YouTube videos and other white papers and they all are using absolute values.
I do understand that the gravity vector will distort results when directed between axis but I didn't expect this to be that significant for the 6 axis accelerometer. I guess I need to use Gyro to compensate. Do you have any code samples?
Thanks again,
Michael