Trad Heli Wiki Tuning Update

Yes, the AHRS (Altitude Heading Reference System) actual attitude information is found in ATT Pitch, desPitch, etc…

I see Bill already answered this…

Thanks. I have to start the process over. Somehow my actual vs desired graphs are way off. I need to pull the logs each time I make a change to see if I have unintended consequences.

Dave, is the desired vs actual off in dynamic flight, or hover? In hover mine are normally “off” some. In dynamic flight they are right on. If they are off in dynamic flight by the same amount all the time it indicates a problem with the AHRS trim. Bill and I have been having a discussion on that and I don’t necessarily agree with adjusting AHRS trim to stop the heli from drifting. I like to leave AHRS trim values at what is actual frame angle and adjust servo trims to fine tune swash level to prevent drifting.

If they are off by actual seeming to bounce around different from desired, and not tracking it at all, then it indicates a problem with the commanded rate. Flybar helis use only rate control and will track perfectly in dynamic flight. So getting the rate right with the VFF is pretty important. I think a lot of folks feel the heli gets too snappy as VFF is increased to where it actually matches desired rate using aggressive stick inputs. So I consider that to be a common mistake, setting VFF too “soft” and then the heli doesn’t respond fast enough to control requests either from the pilot or autopilot.

On the other hand, if in dynamic flight the actual seems to sort of track but varies on either side of desired (appears “sloppy”) it is indication that I gain is too low for dynamic flight. Even flybar heli’s like some rate I. Seeing a BIN log would help to see what you have.

Chris and Bill, thank you for your help.

That makes lots of sense. I can tune the VFF parameters so that it actually responds nicely in flight, and matches up pretty closely on the graph which I am pitching or rolling hard, but seem to be quite a bit off in hover. Attached are the files from this morning.

My values are tiny, by the way. My ATC_PIT_VFF = 0.08. At 0.15 it is really wild. At 0.03 it becomes sluggish.

Files from this morning (no wind)

10-16-2017 0826.param (13.6 KB)
2017-10-16 08-21-52.bin (908 KB)

Also, with my ATC_RAT_PIT_D and RLL_D at 0.001, the heli does sporadically wobble. The only way I can keep it from happening is to set it to 0.

For anyone else who sees this, I am tuning a micro heli with a PixRacer…

Quick notice: @ChrisOlson ‘s wiki update is out (http://ardupilot.org/copter/docs/traditional-helicopter-tuning.html#traditional-helicopter-tuning)
It’s a great contribution, but the wiki is a ‘living’ document, so new PR’s always welcome :slight_smile:

1 Like

Dave, yes I agree that the rate, and response looks pretty good. Your rate commands are falling short though when you really hammer on the cyclic. Keep in mind micro’s are notorious for being extremely quick and responsive. I can snap my little MCPx in like three complete tumbles before you can even blink and it darts around like a house fly. I used to terrorize the cat with it in the living room until I crashed it into the lamp shade one day and got banned from flying it in the house (wife problem).

A bigger helicopter isn’t quite that nimble. So the starting setting of .15 on the VFF was probably pretty close to how those little micros were designed to handle. However, taming it down a little by setting the VFF lower is not going to hurt much on a little heli like that, except it may get a little “loose” in the wind with the rate cranked down.

However, you are carrying zero I gain in hover. So you can’t really expect it to track desired vs actual attitude in hover. Loiter flight mode would tell more than Stabilize, as stabilize is pretty much a manual flight mode that has a self-leveling feature.

Remember that helicopters are different from multi-rotors in that helicopters carry no I gain in hover unless you have the ILMI params set to a value that prevents all the I gain from leaking off. The helicopter has to be moving at 5 m/s for more than 2 seconds for the I gain to “kick in” and stop leaking off. So you would need to fly the heli manually in figure 8’s (or some such), or fly it with an auto mission to see how well the attitude is going to track. And fly it at least 12-15 mph to make sure the leak stops.

Since this is a micro and micro’s are notorious for really snapping handling I’d set I gain at least .15, and set the ILMI to maybe .05 or .06. The I gain can store up the error and cause the heli to want to tip on the ground or during takeoff. If you’re familiar with most FBL units it’s a no-no to start making stick inputs on the ground during spoolup because they’ll flip right over. ArduPilot goes one better and that’s the reason the integrator has a leak in it - to prevent that in Stabilize. In Acro, however, it’s just like a FBL unit - move the cyclic around and it stores up the commands and even with the stick centered the heli is going to try to achieve the attitude of the “ghost aircraft” where ever you last left it at when you moved the cyclic.

So turning on the ILMI prevents all the I gain from leaking off in hover, just be aware if you set it too high you got somewhat the same thing you got in Acro with rate-mode only control. And if the heli is tipped or something the integrator error can build up to the point where you have the ILMI set to.

I gain of .15 should be enough for a slow speed (~12 mph) flight to see how it tracks. But most heli’s like way more than that in high speed flight. Typically in the low to mid 0.3’s.

So basically, I don’t see where you need to start over at all. You’re just not done tuning it yet.

I also don’t know why you have your yaw accel set to 720 deg/s/s
ATC_ACCEL_Y_MAX,72000

That baby should do some SERIOUS piro’s!

  1. Until 30 minutes ago, I had no idea that my DIYD account had migrated to here, and that I was using two different accounts. I thought I was going crazy.
  2. This https://www.rcgroups.com/forums/showthread.php?2879132-Taigen-Panzer-III-with-FPV-and-OSD#post37430238 is banned at my house for shooting my wife with the airsoft BB turret while she ran around in her night gown. I didn’t do any property damage though.

As far as rates, if I understand you correctly, it is okay if the P.des overshoots the P because it is a micro? At 0.15 it does overshoot it. I was trying to get the graphs to line up when I was yanking and banking.

As far as the piro rate, it’s still sluggish at 72000. Does RC_FEEL affect this as well? If I increase RC_FEEL to 75, will it increase the piro rate?

Thanks again!

No, it shouldn’t overshoot. You’re the first I’ve seen fly a ArduPilot-based system on a micro, which is really cool. And being they’re snappy little things it probably doesn’t take much change to get a big response.

I forgot you have a DDFP tail too. So that would make sense. You’re probably at the limit of thrust on the tail for piro speed one direction. And at the limit of torque reaction the other way.

At any rate it’s pretty cool to see a Pixracer on a micro heli! Even the weight of the GPS/compass unit on the tail boom has to be a big load that a micro was never designed to carry :grinning:

It’s nice to know I’m not the only one banned from stuff in the house too. In my case it wasn’t the helicopter that tipped over the lamp. It was the cat in hot pursuit that tipped it over. When my wife arrived on the scene the cat was sitting innocently on the sofa and the helicopter was crashed on the floor. So the helicopter got blamed.

1 Like

Dave,
As far as I understand the function of RC_FEEL, it is intended to provide more of an initial response (acceleration) than rates. So it would make the response feel more crisp/snappy initially. From what I remember of increasing this parameter more than 50, it makes the aircraft more jittery. You can experiment with it but you really want to match the desired and actual rates using VFF.
Chris might have more to add with his experience.

Bill

Thanks, Bill.

I will try it and let you know. I do like the piro rate to be quick, but I’m no 3D guy. More than anything I like to be able to get the tail turned about if I get into trouble.

Another question. My ATC_RAT_PIT_D (and RLL_D) are at .001 but I do get a little bit of jitter on a hard roll. At 0.002 it is a constant fast wagging. Should I set it at 0, or try .0005? Will it recognize a value at 4 decimal places?

At any rate it’s pretty cool to see a Pixracer on a micro heli! Even the weight of the GPS/compass unit on the tail boom has to be a big load that a micro was never designed to carry :grinning:

I have it stripped down as far as I am comfortable, and it is (almost) balanced:

I also added a RMRC 25mW FPV camera/transmitter to the nose, which helped with balance, and the video is pretty amazing.

I really hope that Randy and the devs push out the support for the mRobotics micro GPS and compass.. It is supported in Plane and works in the master branch for copter, but hasn’t been released as stable yet. :crossed_fingers:

A big thanks to you and Bill for investing so much time in a project with no tangible value, except to make (we) nerds laugh. I’m having a blast with this.

Yes you can enter values for ATC_RAT_XXX_D to the 4th decimal place. Since it appears that your gain values are lower than gains for 500 and larger size helis, it probably is worth going to 4 decimal places. I think any D gain can be valuable even if it seems small.

I think so too. If it wags hard at .002, shows a bit of a tendency to wag at .001, the actual point where it started to wag is probably more closer to .001 and cutting that in half should work well.

I’ve never played much with RC_FEEL. For the most part I leave it at 50 and adjust the other parameters to my liking. A long time ago I set it to the extremes to see what it does and it seemed to make the heli act like it was flying thru some thick medium at a low setting. I don’t like excessively sensitive, and don’t like excessively slow either. So 50 has pretty much always worked for me. With a micro it might make sense to play with it a bit and see if it makes it more like a big one with a lower setting.

I like Dave’s project here. They don’t all have to have a practical purpose and a micro with a Pixracer is just plain cool and fun. Generally a 450 is about as small as you can go with a full-size Pixhawk. With ArduPilot running on so many boards now it’s cool to see some of the micro controllers like Pixracer on a heli. I got a Pixhawk Mini on my 696 and I like that controller too for heli’s. It’s basically a PixFalcon with updated sensors in it but the remote servo rail makes it nice for installation on a heli to keep servo wiring away from radios. And it’s about 1/3 the size of a full-size Pixhawk and fits nicely on the FBL unit tray. Very robust as far as handling vibration too.

Excellent doc. I do have a suggestion. When it talks of trimming it does not mention that there is a cool way to do so using channel 7. The CH7_OPT can be set to SAVE_TRIM. Then the roll/pitch trim can be used to get the heli to hover. Later channel 7 can be used to transfer the trim values to the AHRX_X/Y. Of course the user then needs to undo the trims in the radio.

I apologize for getting off topic, but I saw in another build that FrSky makes an SBUS to PWM converter that gives you four extra servo outputs, which would be ideal for the Pixracer. It’s also $12, and I think would be ideal for adding a gimbal or some other functionality to a a Pixracer.

Personally I don’t like to use the AHRS trims to trim the heli, even though that’s the accepted way to do it. I like to leave the AHRS trim indicating true frame angle and use the hover roll trim and tweak the servo trims instead. If the AHRS trim is set to represent actual mainshaft vertical the hover roll trim takes care of roll drift. A few small tweaks to the elevator servo trim takes care of pitch (usually less than 5pwm).

Thanks for the tip. I didn’t realize this feature existed. I will have to try it out and then modify the wiki accordingly.

I recently used the new Tuning Guide to setup a TREX 700X, and I’ve got it flying extremely well, thanks again for everyone that helped get this updated!

My only question, and I can’t seem to find this anywhere, is there a way to specify the collective hover amount so that it will hover with the stick at the midpoint position? It currently hovers just above the midpoint, and I typically use position hold right after takeoff, then switch to Auto after that, and if I lower the collective to the midpoint in position hold mode (to keep it from climbing) before switching to Auto, it rapidly drops being its going to zero degrees pitch for a moment before adding collective to maintain altitude.

Actually, yes there is. And your question made me realize that we forgot to including tuning the IM_COL_STAB params. What these parameters do is form a four-point collective pitch curve in Stabilize flight mode. Your collective pitch range is set by the H_COL_MIN and H_COL_MAX params. Say it is -3 to +12 degrees.

The IM_STAB_COL’s 1 & 4 define your collective pitch range you want to use in Stabilize, i.e. if you set 1 to zero and 4 to 100 it will use the full collective pitch range in Stabilize. If you set them to 100 and 900 respectively, it will use 10% to 90% of the possible collective range for Stabilize.

Since autorotation practice is usually part of flying a helicopter I recommend to set IM_STAB_COL_1 to a value that gives you -2 to -3 degrees of collective pitch. When you start an auto you can then just move the collective to the bottom and add forward cyclic to get headspeed up and establish your autorotation speed. Then feather the blades by moving the collective up a tiny amount and drive the main rotor with the cyclic until you’re ready for the flare. Or if you’re under the “dead man’s curve” you can simply use the collective to drive the main rotor in the descent without having to hunt for the ~-3 degrees you need to drive the rotor. This part is totally optional, it is just what I use for autorotations.

IM_STAB_COL’s 2 & 3 define the mid-stick collective, with 2 being approximately 40% stick position, and 3 being approximately 60% stick position.

So if your helicopter likes to to hover at 60% collective, then set IM_STAB_COL_2 to 500 and IM_STAB_COL_3 to 700. Or if you want the collective pitch curve to be a bit flatter at mid-stick, then set them to 550 and 650 respectively.

Also, in Mission Planner, there is a box at the bottom of the “Heli Setup” tab that allows you to set it up.You use Stab 1…Stab 4 boxes to input the values Chris was telling you about (if you’re more of a visual guy).