msarto / AVario

AVario
https://play.google.com/store/apps/details?id=org.avario
11 stars 6 forks source link

use sensor fusion to improve vario responsiveness #2

Open maks opened 9 years ago

maks commented 9 years ago

The sensor-fusion approach of using AHRS taken for the hardware vario described here by Hari Nair seems like it would be a good match for improving on the Kalman filter used currently for detemining sink/rise based on the pressure sensor. His pdf has detailed notes. It is interesting though that in the end, the vario module that he buitl and that works well (as per the video linked on that page) is based on the MS5611 and not the Bosch BMP-180 that he used in his initial prototype and that is used in many phones such as the Galaxy Nexus.

Still I think this is an approach worth investigating, so I'm planning to get a chance to work on this in a couple of weeks.

msarto commented 9 years ago

I've tested the same thing (if I understand correctly) with the AVario - and this could be applied to any type of filter. But the filter correction using the accelerometer variance was not that spectacular.

However what was interesting is that you could figure out very fast that you hit a termal (to start beep) or a sink. And that is only from the accelerometer. So this could be investigated and I'm planning to do so once I'll return from vacation.

Feel free to explore anything with AVario and I would be very happy if you would share the thoughts with me.

PS: Search play for "G-sensor logger" and watch the Z axis graph when you play it like a variometer :) It is quite interesting....

Cheers, Mihai

maks commented 9 years ago

Thanks Mihai, I should have asked first if you had already tried it. Yes what I had in mind was using it to lower the latency of the vario functionality as on my Galaxy Nexus with the Bosch BMP-180 sensor, it seems quite noisy and its that precise, so I found I needed to have the "sensitivity" setting up quite high (35 or higher) to prevent false positive readings with it just lying flat on my desk. Searching around it looks like the xperia go also uses that sensor so I think this could be be applicable to a number of devices. Likewise my Nexus5 has the BMP-280 sensor and its rated to the same relative accuracy of +/-0.12hPa.

Though I also wonder if this is a case of un real world testing, since I have only done basic testing lifting the phones up and down in my arms and not taken them flying where the "Lift Start" and Sink Start settings could be made less sensitive (currently have them at 0.2 and 1.5 m/s respectively) and still be useful for real flying conditions.

Mihai would be interested to hear your experiences, as maybe this work is not worth the effort for real flying usage?

lshachar commented 7 years ago

This project implemented the kalman filter for barometer + 9dof sensor: prunkdump/arduino-variometer a video on youtube proves that it's a good implementation, with fast response. I messed around just today with programming android, and got to a stage where I can read said barometric + 9dof sensors in my program, only when I called quits for the day I found this project, and this post... The task of porting the Arduino code should be fairly easy - to a programmer much more capable than I am! most of the heavy lifting is already done by the OS (getting the sensors data), and an open source solution written in C is already out there.