I have been working on an improved altitude estimator for a while here but have been having issues with implementation.
The theory works fine but as seen above in the FFT of the accelerometer data, there is a significant ammount of vibration/noise in the sub 50Hz range. This is due to out of balance props etc. Needless to say, this proves to be very detrimental to estimating altitude and velocity changes when these vibrations are an order of magnitude greater than the actual accelerations felt by climbing and descending. You cant really low pass filter or band pass filter this because you need everything below 60 Hz or so.
So here is what I need from you guys:
Flight data that includes the following:
- dt in ms between samples
- phi,theta,psi
- barometric altitude
- sonar altitude (if available)
- ax,ay,az
make sure you notate units etc. The more information on the data the better. Thanks for the help and I will post the results. I'm really hoping to get some data from guys with slick clean vibe free quads.
Thanks
Beall
Comments
back on track - the mini flies.
but - way too heavy: 384 gramm.
now can i look how to get the flightdata after the neccessary diet...
aua - i just fried my one of motor outputs ...
need to modifiy the code that channel 6 acts like channel 1.
revision 1.4 of the mega board is required when using turnigy plush esc's!
maybe - maybe ... i get it working
one esc died - i have to wait until i have the replacement in.
then i can collect some data - if it flies :)
At the beginning of this thread I mention how to capture some data with ArduCopterNG..there were some mistakes in that.
For #1 - this line is fine if you're using the version of ArduCopterNG from subversion (not from download area)
Log_Write_Sensor(AN[0], AN[1], AN[2], AN[3], AN[4], AN[5], press_baro_altitude);but if you're using the download version you need to use this line:
Log_Write_Sensor(AN[0], AN[1], AN[2], AN[3], AN[4], AN[5], press_altitude);
Also for #2, this line:
Log_Write_Attitude(roll,pitch,yaw);
should be changed to:
Log_Write_Attitude(ToDeg(roll),ToDeg(pitch),ToDeg(yaw));
All,
Keep in mind that, even if there is no noise or vibration and even if you have an ideal anti-aliasing filter, there is still a good reason to oversample: it improves the effective resolution of the A/D.
Best regards,
Bill
geir: I would be happy to share details of my work, but this thread should not be hijacked. PM me, or if there is other interest, I could start another thread.
Ryan,
Here is a link to a posting that you might find interesting, reporting the results of tests that Peter Hollands conducted at a sampling rate of 32,000 samples per second.
Besides rejecting vibration, the higher sampling rate has also dramatically improved the accuracy of attitude estimation and acceleration measurements which are key factors in dead reckoning computations.
Best regards,
Bill
John:
No, it is a design of my own built around an ARM Cortex M3 uC.
Bill:
That quad video was awesome! Loved the way that sucker just launches into those waypoints!
Just curious- are you using the same hardware (APM and shield) that Arducopter is using and just tweaked the software, or are you using something else?
John
-
1
-
2
-
3
of 3 Next