Compare this to the video from “In the deep mid winter…”
If you’ve watched the video I posted yesterday, you’ll have seen greater horizontal drift than previous videos with floppy props. The drift was the same across several flights I ran on the frosty lawn, and later when I flew Zoe indoors, the drift was the same again.
That points strongly to an imbalance of noise / vibration between the 4 motors and props, so I spent some time balancing the props, sand papering the underside of the heavier blade of each prop, determined with one of these:
Sure enough, flights with the balanced props showed a lot less drift; my speculation is that unless all four props are perfectly balanced, then there will be drift towards the average distribution of the jitter of all the props; I don’t believe this vibration is fixable in code, but I’m yet to completely understand what’s going on, and therefore reduce the drift further.
The floppy props suffer from this much less as they are injection moulded so they are built of the same material throughout and are innately balanced.
Update: I’ve just done another quick batch of balancing, and the CF props now work to the same quality of flight as the floppies; the focus this time was different: the previous balancing left the underside of one blade of the prop matt while the other was still glossy, so I roughened up both undersides – at the same time, I found a couple of the props had a rough trailing edge which would have disturbed the airflow across the top. With both addressed, I now feel I can take her to the shows with the CF props rather than the easily damaged floppies.
OK, pushing my luck this time with the title of the post, but I spent too much time either side of the millenium watching Buffy The Vampire Slayer, and I have the full DVD set, so I wanted to involve Sarah Michelle Geller in here somehow.
Anyway, I mentioned previously I’ve balanced my props, but I’ve done it again since to much higher tolerances with a Dremel coarse buffing bit (geddit?) and a new maglev balancer – the old one had minor damage and the results were variable.
Anyhow, with that I did see a couple of internal flights with nigh on zero drift with the accelerometer low pass filter set to 2 (92Hz). But I also still saw occasional drift in the front-left direction leading to a minor scratch on a table leg, and a damaged blade when it hit the metal log ‘basket’ in front of the fire. Having ruled out the props, it’s time to check the motors; if there is still real noise, then the motors are at fault. Roll the sequence…
This is a test case 1 flight (sudo python ./qc.py -h 220 –tc 1): spin each blade separately, and log the accelerometer readings for each; a sequence of 5s each for front left, front right, back left and finally back right blades..
Based upon the orange and blue X and Y accelerometer readings, back right’s the noisiest, followed by front left, back left and finally front right which is interesting / odd as it’s front right with the damaged prop.
I don’t think there’s much to deduce from this single run other than the new diagnostics I’ve added to test case one are worthwhile.
Yet more indoor testing, indirectly GERMS related, more aimed at investigating drift against the accelerometer dlpf setting.
Speculatively, the net is that
- alpf of 3 or less (>= 41Hz) means there is no vertical drift, but there is horizontal drift because real X- and Y-axis noise is not being filtered out and the motion processing thinks there’s X- / Y-axis acceleration when there isn’t.*
- alpf of 4 or higher (<= 20Hz) gives no horizontal drift, but there is vertical drift because real Z-axis acceleration is being filtered out as noise meaning the motion processing thinks there’s less acceleration than there is.*
Again speculative, I think X- and Y- axis noise was due to unbalanced props leading to asymmetric noise which when integrated leads to non-zero drift velocity: if one of the props has slight damage, this will generate the assymeteric noise very well.
My props do have nicks and muck on them, so I cleaned them up, and tried alpf 3 again, but the drift still remained – to some extent expected as the cleaned props still had nicks in them. So out came a set of unflown props. Balanced as best I can, I tried again at alpf 3. Some vertical drift had appeared unexpectedly, so I tried alpf 2, and it was perfect. So that’s what I’ll be sticking with.
The only down side of this is that the noise getting through at alpf 2 means my germs idea in its basic form is a no go. It’s shelved for the moment as it’s no longer necessary for my short flights, and instead, I’ll see how far I can extend the complementary filter to see how long a zero drift flight can be achieved.
*To be more precise, it the integration of the acceleration (i.e. the velocites) that are wrong. The Z-axis velocity is greater than zero in reality but zero according to the motion processing due to the acceleration that had been filtered out. In contrast, the X- and Y- velocities are zero according to motion processing, but drifting in reality as the dlpf is letting through asymmetric noise.
I took Phoebe to Cheltenham on Wednesday to check out the new location for the Cotswold Raspberry Jam (tickets still available but going fast).
Yesterday (Thursday), I took her out for a few more ‘confidence building’ test flights, and she was a changed quad – she climbed too fast and continued to climb during hover and she drifted significantly. Oh sh1t – we have the perfect location to show her off, but somehow she was no longer fit to be shown.
Today (Friday), she’s back to behaving normally again so I’m concerned her accelerometer had drifted in transit to Cheltenham – while carrying the case, her Y axis was pointing down, sensing gravity and her Z axis was not unlike normal – that matches the drift I was seeing. I hope that’s not the problem as that would ruin the chance of an indoor flight at the Jam – hopefully the weather will be good on the day, so at least an outdoor flight should still be possible.
Anyway, while trying to work out what was going wrong, I reviewed a couple of things I’d not done for a while.
The first is prop balancing – using my Dremel to lightly strim the underside of the props so that they have a matt surface, and they balance well on one of the maglev prop balancers. The matt surface allows the air to flow over the props smoother which leads to better more efficient air-flow, and reduced turbulence resulting is greater lift. For that reason, I used P1000 wet and dry sandpaper to matt and smooth both top and underside of the props.
The other is (controversially) to re-add 0g calibration but only on the X and Y axis – the primary directions of drift – in such a way it can be done indoors from a relatively flat surface prior to demo flights, but also can be disabled easily without the risk of coding errors with a destructive resultant flight. Calibration takes half a second, and results are stored to file, and reloaded each flight; if the calibration is not possible, then the calibration file settings can be set to 0 to disable it, thus dropping back to Phoebe’s performance from the last few days.
I don’t think either of these were related to her travel sickness, though now done, there’s no point in undoing them again!
to quote Vyvyan from the Young Ones.
So I’ve contradicted everything I’d previously said and balanced my blades. Only took about 5 minutes per blade courtesy of a 10 year old Dremmel drill, and a buffing attachment. With carbon blades, essentially all you’re doing is skimming some of the gloss finish off the underside of the heavier blade as per standard beliefs. However that in itself does raise a different concern – aircraft wings are deliberately matt to improve airflow by preventing the air ‘sticking’ to a glossy surface increasing the size of the boundary layer and hence drag. All my ‘balanced’ blades now have 3 gloss surfaces and one matt leading to unequal drag between the blade pair on a single propeller and hence another potential noise source! I just hope I never get bored enough to actually ‘matt finish’ the whole of each propeller and then rebalance them – that could be terminal!
I did do a couple of test flights this morning prior to the buffing, and there was a variety of subtle problem, all of which had accelerometer readings at its heart. This affects both vertical take-off speed, and critically, the measurement of tilt angles.
As a quick reminder, measuring angles is a combination of integrating the gyro for short term changes + calculating Euler angles from the accelerometer for long term stability of measurement. Both the gyro and accelerometer outputs pass through a digital low pass filter in the MPU6050, and finally the complementary filter merges the results together.
The accelerometer is noisy due to the rotation of the motors, and this morning’s couple of quick tests did show the noise clearly in the accelerometer diagnostics and the resultant calculated angles. However, I must make it absolutely clear that I’ve not balanced the blades through belief this is the correct fix, but there’s no point spoiling tomorrow’s testing of the complementary filter’s tau versus the MPU6050 dlpf by not ruling out the impossible first, is there? 😉
P.S. – it’s the same matt surface idea that’s been taken to the extreme with golf balls and their dimples – the turbulent boundary layer around dimples reduce drag of the ball making it fly faster and straighter, as wikipedia so eruditely explains
With new blades comes the question of whether to balance them? Balancing is the process of ensuring each blade of a propeller has the same angular inertia (weight distribution along its length). Balancing blades is stated as mandatory for reduction of noise, but no corresponding proof of necessity is ever presented; belief alone supports the theory. Personally, I’d rather be a heretic until proven wrong.
Balancing involves suspending the propeller axis between 2 fixed points such that if the blades are not equal in angular inertia, the propeller rolls on its axis towards the heavier side.
Then either the underside of the heavier blade is lightly sanded, or the lighter side has some tape added to the leading edge, and the test is repeated until there’s no difference in angular intertia, and the propeller does not rotate from the position it was place at.
I have no doubt it is possible to achieve a high quality balance – there are balances like the one pictured which suspend the propeller central axis very well aligned to the balancing tool central axle. The two ends of the axle are sharp points. The axel is shorter than the frame it’s suspended between – strong neodymium magnets set into the frame are used to suspend the axel. Even with very light carbon blades, this provides a very sensitive and accurate method of balancing the propeller blades angular inertia.
But I have interlinked concerns as to the validity of the process
- what’s the distribution of mass along the length of the blade – it’s possible to balance the angular intertia while having very different mass distribution along each blade – imagine a long thin blade and a short fat blade, inertially balanced but absolutely no guarantee of equal mass nor mass balanced along the length?
- Even with the blades angular inertia and mass statically balanced, what about the efficiency of the aerofoils in motion? Once you start adding tape or sanding, the aerodynamics of the blade changes – probably only subtly, but a change nonetheless, meaning one blade produces more lift than the other introducing noise that the original blade probably did not possess.
- The balancing happens per propeller, but each of a quads 4 propellers could have different mass, angular inertia and lift – while the PIDs can cope with that, it could lead to yaw.
So for the moment, I’m going to leave the new carbon blades alone, assuming that the manufacturing process is sufficiently accurate – I’ll only proceed with balancing if testing shows an definite requirement.
There also the factor that it’s boring to do, and carbon blades have much lower angular intertia anyway compared to plastic or wooden ones, so I’ll see if I can get away with not bothering!
As the new test rig is working, I’m going to swap the quad blades from the slightly damaged set back to nigh-on perfect ones. Nigh-on because they need balancing. So I thought I’d share with you how I’m doing it, as it’s now taking just a minute or two per blade (compared to when I did my first few, which took up to 20 minutes each and, as it turned out, still weren’t actually balanced as well as they could be).
- a dremel drill (which I already had)
- an abrasive disk for it
- protective eye glasses – seriously – a carbon or metal shard in your eyes is uncomfortable at best, blinding at worst – it’s not worth risking – I just use my Oakleys from skiing and they work perfectly.
- a magnetic prop balancer
The key part is the balancer itself. The axle has sharp ends and is attached by super strong neodymium magnets at both ends; this gives virtually zero friction, and yet makes it simple to remove the blade from the jig for sanding.
Even the subtlest blade imbalance results in the propeller rotating until one blade taps on the work surface. Once you’re sure which blade it is, then you can use the dremel to take a small amount from the underside of the heavier blade. Then wipe it with a slightly damp cloth to remove the dust, dry it, pop it back on the balancer and check again.
You’ll soon develop a gut feel for how much sanding needs doing depending on how quickly one side of the blade hits the floor.
An here’s what you end up with:
One final thought: this time when I attach the new blades to the drone, I’ll be using nut-lock – although the blades have never unscrewed themselves (except when scrapping with the gravel), I’d hate for my first experience of it to be when they are 10m above my head!
Another afterthought: I’ve just balanced the stockpile of 10 blades I’d bought in preparation for many more crashes. They’re all the same as the above picture, all sourced from China originally, although bought from ebay, quadcopters.co.uk and flyduino.net, yet each has subtle differences: some have been pre-balanced – you can spot this as one of the wings has signs of sanding; others have had the axles sanded too to ensure they are completely flat (a good thing). So look carefully at any you have to make sure they are all the same once you’ve done balancing them.
OK, so I’ve ordered another set of blades, due on Wednesday, so between now and then, I need to implement plan C – as Oscar mentions in his comment in the previous post, I should really have done some live testing with just one dimension free: essentially that means (when testing pitch PID gains for example),
- tying both left arms to a heavy object, do the same with the right arms (different heavy object), such that the quad is dangling in free space and can only pitch.
- starting up the quad to hover, and then if it’s stable, nudge the front end and check it returns to stable horizontal hover
- tweak the gains as necessary
- repeat for roll
I’d seen several videos of this being done online (can’t remember where sorry), but they looked like such a faff, I thought I’d do it via gut-feel / hand-holding. Serves me right!
The other thing I need to do before this single dimention test is to add the code which, based upon command line parameters for the drone can either
- calibrate the MPU6050 offsets and save then to file
- do not calibrate MPU6050 offsets and instead read them from file or abort if no file found
I knew I’d need to do it sometime, as it’s needed for take-off from non-horizontal ground – I suspect dangling between two chairs counts as that!
Then there’s the final bit of faff on arrival of the blades: although they claim to be balanced, testing them with a magnetic balancer (near zero friction) always shows this can be refined further with time, patience and some P1000 wet or dry sandpaper.
Here’s goes, wish me luck!
P.S. I’ve just found some Graupner 10 x 5 propss which I’d used in some very early live flights indoors (the ones that hit furniture), and despite the unsuccessful test, only one blade has any damage (a tiny chip on the train edge of the blade); the rest are immaculate. Even better, they are already balanced. This means I can start testing once I’ve made the code changes; I’ve already identified the string and chairs I’ll be using! Only downside now is the kids are on summer holiday, so timeslots for live testing are much reduced.
P.P.S. Between the two crashes I’ve had, I’ve just dug around and found a not-too-damaged set of 4 of the carbon fiber 11 x 5 blades, which means I don’t need to wait for the new blades nor use the Graupners, and nor now do I need to do the coding, as I’ve just finished it. I’ve even identified the “heavy” objects as two garden chairs, so my only remaining problem is finding a time-slot when the kids aren’t around!
So here’s a live run with balanced blades; still noisy, but nowhere as bad as yesterday’s unbalanced run. It seems I’m on the right track. I do suspect some pid tinkering is necessary too, but I need to check the stats in more detail first.
The observant amongst you will have also noticed the different blades. These are lighter and stiffer, so I hope the cause less vibration, and better lift, and survive impacts better. Time will tell. This balancer is very low friction, but it’ll still be more that the maglev ones I have on the way from ebay, so I’ll see whether those will show any further fine tuning I can do.