This should be interesting

Hi Bill,
Your notch filter changes seem to be very effective. I would like to use it on my

a. 4 servo heli and
b. 600 size heli.

I am flying the 600 size heli using 3.4.6. Can you please provide firmware for 3.4.6. I am attaching my changes needed to add support for 4 servos in 3.4.6 stream. Only 4 files have changed AP_MotorsHeli.h, AP_MotorsHeli_Single.cpp, AP_MotorsHeli_Single.h and version.h. If you cannot create binary then please provide me the source code and I will build it myself.

Thanks for your help.
Sunit
Tradheli_3.4.6_four_servo_supp.zip (12.4 KB)

Sunit,
Glad to hear you had good results with the notch. I recently updated it to work on just the gyro signal and not the error. I am away from home right now but I will try to give you the link to my source code tonight when I get a chance.
Bill

Sunit,
Here is the link to my repository for version 3.4.6 that has the notch filter on the gyro signal. There are a few other changes I made to the code which include attitude error limiting, leaky attitude for Acro when speed is less than 1 m/s and swashplate behavior for different states. You can clone my repository and add your 4 servo changes or just extract my notch source code. If you want to learn more about the other changes let me know and I will get you a link to my write up on that software version. https://github.com/bnsgeyer/Copter3_4/commits/Copter-3.4
I would be interested in hearing more about your results. Please let me know how this works for you.

Bill,
I think you might be interested in this.
I just finished setting up a Basecam SBGC gimbal controller (Alexmos) on my custom made gimbal.

It has notch filter function with 3 filters for each axis (for 3 different freq) and adjustable gain and bandwidth.
Its lowpass filters are also separated into signal fiters and D-term filters.
It is not open-source sadly

Looks like a solution to low D-gain problem in helisā€¦or is D-term not needed in the first place?
But a flexible notch filter sounds great.

Hi Bill,
Thanks for these changes. I will try it and let you know about my progress. I hurt my foot yesterday, so I do not think that I will be able to fly for next 2 weeks. My 4 servo heli is a big 800 size electric, so it would be interesting to see how it goes.

Got a question
Has anyone experienced vibration problem caused by disturbed air from main rotor?
I had high vibration reading problem which was completely eliminated by just mouning it beneath the frame instead of on top.
Now Iā€™m deciding whether I should mount the camera in front on hang underneath for less vibration.

Pitt, I donā€™t know about your timed-rotor helicopter. But two-blade rotors can exhibit vibration at various stages of cyclic pitch, particularly in banked turns. And especially if they are being run too slow (low headspeed). I donā€™t know if it is the disturbed air from the lift pulse of the blade, or simply the noise. But I sort of think that in most cases it is the noise, or sound waves, causing high vibrations. The ā€œbarkā€ from helicopter blades is considerably more pronouced than the bumble-bee type ā€œbuzzā€ of fast-turning multi-rotor blades.

I have always had better results mounting the camera underneath vs in front or off to the side. Especially in high-speed flight. The camera in front screws up the sleek aerodynamics of the canopy/cowling and causes its own problems with wind load on a quite blunt suface - underneath not so much. The Trex 800 ā€œTrekkerā€ with that big contraption hanging out in front was probably one of the worst-designed unmanned flying camera platforms known to mankind - and probably why it wasnā€™t very successful in the sales dept.

Solid mounted camera works by far the best on helicopters at high speed. Gimbals become totally worthless at flight speeds over about 35-40 mph because they simply canā€™t take the wind load flying upwind at airspeeds of 60+ mph.

1 Like

How are you finding the Basecam? Are you using the 32bit?
Iā€™ve been working on a Storm32NT gimbal, but itā€™s frankly a pain to work with and Iā€™m ready to toss it in the bin, as I canā€™t get the serial connection (or RC mode switching) to work reliably in the field.
Itā€™ll work on the bench and then freak out when I try it ā€˜for realā€™ā€¦not to mention that the tuning is a pain.
Hereā€™s a vid from tonight. It was supposed to be soft-follow in the yaw (was on the bench anyway), but it decided to ignore that.


The heli could be tuned a little better (changed behaviour with weight of the new landing gear/camera/battery mount), but I suspect some of the vibration is also from the gimbal.
Also, I love auto-landings :smiley:

Iā€™m using a licensed variance of 32bit version from iFlight. Itā€™s basically a 32bit SBGC + built in buzzer + encoders.

Setting it up can be overwhelming for most people but Automatic tuning/calibration saved me alot of work. Encoders make thing even easier as well.

Iā€™m now trying to mount it properly on my heli to see if itā€™s going to vibrate like crazy or not.

Most gimbals and controllers should work in hovering situations and at low speeds, which is what gimbals are really made for. I got an off-the-shelf Walkera G2D to work really good. The problem comes in when you start going faster. The gain to the servo motors has to increase to compensate for the wind load on the camera. So it starts to shake violently when the helicopter makes a turn to an upwind leg of the flight. And it wasnā€™t vibration in the helicopter - just the servo motors shaking.

Since most of my imagery work is done at higher speed, and the pitch changes of a helicopter are not a lot in forward flight compared to multiā€™s, I finally tried just solid mounting the camera (with a rubber cushioned mount), and had instant quite excellent results. Iā€™ve never gone back to the gimbal.

This is a photo of the 30 degree fixed mount. You can hopefully see the rubber bushings in the mounting points of the camera holder. And I added a rubber damper ring to the upper bracket. This works quite well on both the piston helicopters (lots of vibration) and the electric.

New photo by Chris & Kristin Olson

Just figured I would inject a quick note here. So the other day I had a spare few minutes and deceided to charge a couple packs. When I hooked them up I figured what the heck and used the paralell harness instead of series so it was 6s vs 12s. Some quick math came out to 1100rpm at the full 4.2 volts under ideal conditions. Actual headspeed was just south of 1000rpm and it flew great, landing headspeed was right around 900. Had to apply a degree or so more pitch to hover but generally I was astonished at how well it flew and the Pixhawk 2.1 seemed to be happy as a clam flying around in stabilize mode. Granted I will not be flying on 6s at that low of a headspeed, but i just really wanted to see what flight time I came back with and also how the Pixhawk handled such a drop in headspeed without any parameter changes. I had the heli in the air roughly 18min and probably could have flown quite a bit longer but was starting to get sick of flyingā€¦ lol. Packs were roughly 3.85v at rest after landing, so roughly 50% of capacity.
Interesting test I guess for sure. Ive flown plenty of helis LHS before, but usually with a 7s pack and then only 1 pack and its always on my lighter 3D helis, not my heavy aerial pigs like this trex 800 conversion. Neat stuff I guess?
Back to the task at hand, hopefully getting my first longer auto mission in this weekend with much faster forward flight speed. My short auto tests havent shown me much yet as they were short, and very slow. I guess it told me whether it was going to blow up or run away on me or not?
Tim

Tim, did you adjust your throttle setting after switching down to 6S? I run my Trex 500DFC on 4S with a 6S motor and gearing. And get normal headspeed around 2,100-2,200 rpm. Just that on 6S I ran the throttle setting at 50%. On 4S I run it at 85%.

Chris,
Yeah, forgot that bitā€¦ I did change PWM out to 100% on RSC, so I guess I did change a parameter in MP before arming and spooling up. I should have said, ā€œI did not change and PID tuningā€ parameters. My bad. :confused:
I donā€™t know how useful that low of a headspeed would be? I did not try the Loiter controller or auto so I have no idea if it would even fly well at high speed. Maybe got up to 35-45mph in FF.
Tim

It all depends on the disc loading. It would likely work fine for general UAV use at lower flight speeds. Then when you want to fly fast, ramp 'er up.

You can use RSC mode 1 too, and have a couple different idleups with the flip of a switch for different payloads or flight speeds. I set up a heli that way and it works fine using the governor (on a piston engine). Donā€™t know why it wouldnā€™t work on electric too.

Sunit,
Sorry to hear about your foot. Hopefully youā€™ll be better soon. Look forward to see how the notch works for you.

Hello Everyone,
Just wanted to get a quick update out while its fresh in my mindā€¦ So I have not had the time I would like to invest into my project here. That being said, I received a tuning method from Leonard and it piqued my interest so when I had a couple hours I charged up some packs and started over. I set Bills notch at the frequencies I knew to be a problem, 5 & 7hz pitch and roll respectively. Went ahead and set D term to .004 which is four times what I had previously, added in P term to .09 and set I term to .09 as well. It flies great, much more natural feeling. I would say it feels more like a fly bar heli now with a lot less of the robotic FBL feeling. I did not get a chance to try and FFF yet, but itā€™s on the list and loiter & altitude hold both work great. It was somewhat windy that day and it seemed to hold its position quite well. I will have to look at the parameter set to see where VFF is but I know it is much lower than I had previously had it. Movements are much more fluid and direct with little to no bounce-back now.
I think possibly the I term being up at .13-.15 was possibly adding to my oscillation issues? ACCEL and GRYO filters are at 15hz I believe which is lower than I had been running them. I do know that with the I term matching the P term I was able to run far more D term than I ever have before and that awful bounce on my tail upon elevator jabs is gone.
I have to download the flight logs and take a look at the data, I will post it as well for anyone interested. So as it sits now, I have about 4 different sets of parameters that all fly well enough to get the job done in loiter, altitude hold and stabilize with three out of the four being tested and confirmed in short auto missions as well. I have not gotten a chance to test these new parameters in auto, but I will before I start digging into frequency sweeps with Bills newest firmware.
I have been using my other frames for any aerial work I need to do so it has allowed me to keep on testing different approaches with the Pixhawk and I am becoming quite happy with the flight performance as of late. I am starting to think less and less that I wish it flew like my Spirit Pro or my Vbar etc. The gap is surely closing. :slight_smile:
Tim

1 Like

Hi Tim,
Can I get a copy of Leonardā€™s tuning method
Thanks
Doug

My take on tuning:
Adjust all linearisation terms based on measurement or experience.
RC_FEEL to 25
Gyro filt to 5 to 10 (depending on noise profile)
Accel filt to 5
D term filters set to half Gyro filter.
FF up until the desired rate is approximately matching the measured rate and the PID P and I terms are moving with and against the FF term.
Increase D term until oscillations are seen on the aircraft or in the logs, divide by two.
Increase P term until oscillations are seen in the log and divide by two.
Set I = P and observe I term response time.
Increase I term if needed to achieve a response time of the 1 to 2 second mark.
Increase angle P with ATC_RATE_FF_ENAB set to 0 until I see overshoot. Back off until I donā€™t see overshoot.
Then I adjust the input shaping parameters to feel (They tend to stay the same for a given class of aircraft).

Setting ATC_RATE_FF_ENAB set to 0 means the rate command is only controlled through the Angle feedback loop.
D gain is only going to be usable if you have set up your filters, mechanical and digital, to reject the majority of the noise.
I always check the mix of PID outputs to see how much useful information is there and how much noise is getting through.

1 Like

Tim, what made you decide to stick with 15 hz for your Accel and Gyro filter cut off frequencyā€™s rather than the 5 Hz that Leonard suggested? My thoughts are the instability frequencies that generally affect the helicopter are around 5 Hz which I donā€™t suspect the Accel and gyro filter will help that much when set to a 5hz cutoff freq.
To follow up on Timā€™s post on Leonardā€™s method. The important part in using Leonards tuning method is to iterate in adjusting the ACCEL_MAX parameter and the feedforward gain until the aircraft responds to your liking. For a given ACCEL_MAX value, compare the Rate.X and the Rate.Xdes parameters in the log (X being the axis your tuning) and increase the FF gain until they are the same magnitude. If the aircraft is too fast for your liking when FF gain is set where the Rate.X and Rate.Xdes match then decrease the ACCEL_MAX and retune the FF until and do that until you get the response you like. I

I went with 15hz on a whim mostly. I had less than stellar results going with 5 and 10hz accel and gyro filters that time before. Thinking about it i wondered if it narrowed the noise profile and kind of piled up at 4-5hz where I am having difficulty with instabilities? In lieu of that i deceided to try lowering the filters less to see how it behaved?
I really did not spend a ton of time on this method, I was just kind of thinking about Leonards alternate method in the back of my mind and curiosity got the best of me along with a couple hours of free time.
Tim